Galera, bom dia!
Estou precisando criar formulário no Access, através de VBA. Fazendo a pesquisa, eu até consegui, só que conforme o exemplo abaixo, ele cria, porém os controles eu tenho que dizer um a um qual será a posição deles.
Porém, eu preciso, é como se fossemos no assistente de criação de formulários, escolher a tabela, os campos, o tipo do formulário (tabela, colunas, etc) e quando damos o "OK" ele além de criar o formulário, coloca TODOS os campos que foram selecionamos.
Preciso disso, via VBA, alguém pode me ajudar?
Vejam o código abaixo:
Sub NewControls()
Dim frm As Form
Dim ctlLabel As Control, Ctl As Control
Dim intDataX As Integer, intDataY As Integer
Dim intLabelX As Integer, intLabelY As Integer
'Crie um novo formulário com a tabela Pedidos como sua fonte de registro.
Set frm = CreateForm
frm.RecordSource = "Tb_Clientes"
' Defina valores de posicionamento para novos controles.
intLabelX = 1000
intLabelY = 100
intDataX = 1000
intDataY = 100
' Crie uma caixa de Listagem de tamanho padrão não acoplada na seção de detalhes.
'Parâmetros:
'Nome do Form aberto
'tipo do controle
'seção (cabeçalho,detalhe do rodapé
'Nome do controle Pai
'Origem dos dados
'posição do controle a esquerda
'posição da margem superior
Set Ctl = CreateControl(frm.Name, acListBox, acDetail, , "", intDataX, intDataY)
Ctl.Name = "LstEscritor"
Ctl.RowSource = "Tb_Escritor"
Ctl.ColumnCount = 2
Ctl.ColumnWidths = "0;1"
' Crie um controle de rótulo filho para a caixa de texto.
Set ctlLabel = CreateControl(frm.Name, acLabel, acDetail, Ctl.Name, "Código do Autor", intLabelX, intLabelY)
ctlLabel.Name = "Rot_CodAutor"
DoCmd.Restore
DoCmd.Save acForm, frm.Name
DoCmd.Close
DoCmd.Rename "FrmLivro", acForm, "Formulário1"
End Sub
Estou precisando criar formulário no Access, através de VBA. Fazendo a pesquisa, eu até consegui, só que conforme o exemplo abaixo, ele cria, porém os controles eu tenho que dizer um a um qual será a posição deles.
Porém, eu preciso, é como se fossemos no assistente de criação de formulários, escolher a tabela, os campos, o tipo do formulário (tabela, colunas, etc) e quando damos o "OK" ele além de criar o formulário, coloca TODOS os campos que foram selecionamos.
Preciso disso, via VBA, alguém pode me ajudar?
Vejam o código abaixo:
Sub NewControls()
Dim frm As Form
Dim ctlLabel As Control, Ctl As Control
Dim intDataX As Integer, intDataY As Integer
Dim intLabelX As Integer, intLabelY As Integer
'Crie um novo formulário com a tabela Pedidos como sua fonte de registro.
Set frm = CreateForm
frm.RecordSource = "Tb_Clientes"
' Defina valores de posicionamento para novos controles.
intLabelX = 1000
intLabelY = 100
intDataX = 1000
intDataY = 100
' Crie uma caixa de Listagem de tamanho padrão não acoplada na seção de detalhes.
'Parâmetros:
'Nome do Form aberto
'tipo do controle
'seção (cabeçalho,detalhe do rodapé
'Nome do controle Pai
'Origem dos dados
'posição do controle a esquerda
'posição da margem superior
Set Ctl = CreateControl(frm.Name, acListBox, acDetail, , "", intDataX, intDataY)
Ctl.Name = "LstEscritor"
Ctl.RowSource = "Tb_Escritor"
Ctl.ColumnCount = 2
Ctl.ColumnWidths = "0;1"
' Crie um controle de rótulo filho para a caixa de texto.
Set ctlLabel = CreateControl(frm.Name, acLabel, acDetail, Ctl.Name, "Código do Autor", intLabelX, intLabelY)
ctlLabel.Name = "Rot_CodAutor"
DoCmd.Restore
DoCmd.Save acForm, frm.Name
DoCmd.Close
DoCmd.Rename "FrmLivro", acForm, "Formulário1"
End Sub