Boa noite
Tenho uma combo com algns dados já cadastrados atraves de lista.
Criei um outro campo de texto e um comando para acrescentar novos nomes.
Private Sub btAcrescentar_Click()
'Instrução para mandar o usuário digitar alguma coisa
If Nz(Len(Me.txItem)) = 0 Then
MsgBox "Digite alguma coisa antes de apertar o botão", _
vbExclamation + vbOKOnly + vbDefaultButton1, "Digite algo"
Me.txItem.SetFocus
Exit Sub
End If
'Se o tipo de origem da linha é uma lista de valores
'(originalmente ou definida pelas instruções após o Else abaixo)
If Me.ComboOrigem.RowSourceType = "Value List" Then
'Acrescenta o valor do item digitado à origem da linha
Me.ComboOrigem.RowSource = Me.ComboOrigem.RowSource & ";" & Me.txItem
Exit Sub
'Caso o tipo de origem da linha seja uma SQL
Else
Dim varCol As String 'para conteúdo da lista de valores da
Dim varTitulo As String 'título das colunas
Set dbs = CurrentDb
'Define a origem da lina com uma coluna e do tipo lista de valores
Me.ComboOrigem.ColumnCount = 1 'Define a quantidade de colunas
Me.ComboOrigem.RowSourceType = "Value List" 'Define o tipo de rowsource como Lista de valores
'"Pega" a SQL da origem da linha na variável
varSQL = Me.ComboOrigem.RowSource
'Cria um recorset com a SQL
Set rst = dbs.OpenRecordset(varSQL) 'Cria um recorset a partir da SQL
While Not rst.EOF 'Ciclo pelos registros do recorset
'Constroi a Lista de valores
'O índice 0 (zero) do recordset refere-se à primeira coluna da consulta
'representada pela SQL
If varCol = "" Then
'Atribui à variável o primeiro valor encontrado
varCol = rst(0)
Else
'Atribui à variável o valor já existente na variável, acrescenta
'o separador de lista ( e acrscenta o valor encontrado
varCol = varCol & ";" & rst(0)
End If
rst.MoveNext
Wend
'Acrescenta o valor do Item digitado à variável
varCol = varCol & ";" & Me.txItem
'Preenche o rowsource da caixa de combinação com a lista de valores
Me.ComboOrigem.RowSource = varCol
End If
End Sub
Contudo, além de não rodar, não enontrei nada que pudesse excluir caso fosse necessário.
Haveria algum modo?
Obrigado
Tenho uma combo com algns dados já cadastrados atraves de lista.
Criei um outro campo de texto e um comando para acrescentar novos nomes.
Private Sub btAcrescentar_Click()
'Instrução para mandar o usuário digitar alguma coisa
If Nz(Len(Me.txItem)) = 0 Then
MsgBox "Digite alguma coisa antes de apertar o botão", _
vbExclamation + vbOKOnly + vbDefaultButton1, "Digite algo"
Me.txItem.SetFocus
Exit Sub
End If
'Se o tipo de origem da linha é uma lista de valores
'(originalmente ou definida pelas instruções após o Else abaixo)
If Me.ComboOrigem.RowSourceType = "Value List" Then
'Acrescenta o valor do item digitado à origem da linha
Me.ComboOrigem.RowSource = Me.ComboOrigem.RowSource & ";" & Me.txItem
Exit Sub
'Caso o tipo de origem da linha seja uma SQL
Else
Dim varCol As String 'para conteúdo da lista de valores da
Dim varTitulo As String 'título das colunas
Set dbs = CurrentDb
'Define a origem da lina com uma coluna e do tipo lista de valores
Me.ComboOrigem.ColumnCount = 1 'Define a quantidade de colunas
Me.ComboOrigem.RowSourceType = "Value List" 'Define o tipo de rowsource como Lista de valores
'"Pega" a SQL da origem da linha na variável
varSQL = Me.ComboOrigem.RowSource
'Cria um recorset com a SQL
Set rst = dbs.OpenRecordset(varSQL) 'Cria um recorset a partir da SQL
While Not rst.EOF 'Ciclo pelos registros do recorset
'Constroi a Lista de valores
'O índice 0 (zero) do recordset refere-se à primeira coluna da consulta
'representada pela SQL
If varCol = "" Then
'Atribui à variável o primeiro valor encontrado
varCol = rst(0)
Else
'Atribui à variável o valor já existente na variável, acrescenta
'o separador de lista ( e acrscenta o valor encontrado
varCol = varCol & ";" & rst(0)
End If
rst.MoveNext
Wend
'Acrescenta o valor do Item digitado à variável
varCol = varCol & ";" & Me.txItem
'Preenche o rowsource da caixa de combinação com a lista de valores
Me.ComboOrigem.RowSource = varCol
End If
End Sub
Contudo, além de não rodar, não enontrei nada que pudesse excluir caso fosse necessário.
Haveria algum modo?
Obrigado