Olá,
Tenho um formulário contínuo com uma combobox acoplada a uma tabela temporária, que busca os dados da lista de uma consulta.
O que eu quero fazer é com que essa combobox só exiba na lista os valores que ainda não foram selecionados pelas combobox anteriores do formulário, ou seja, que ainda não estejam presentes na tabela temporária. Isso evitaria que fossem inseridos dados repetidos.
Já tenho um código que executa isso, mas é para quando os dados da combo forem em string, só que apesar de a lista da combo mostrar a descrição do que quero selecionar, ela armazena mesmo é o código, e o código é um número, então não está dando certo.
Se alguém puder me ajudar, o código é esse aí abaixo:
Tenho um formulário contínuo com uma combobox acoplada a uma tabela temporária, que busca os dados da lista de uma consulta.
O que eu quero fazer é com que essa combobox só exiba na lista os valores que ainda não foram selecionados pelas combobox anteriores do formulário, ou seja, que ainda não estejam presentes na tabela temporária. Isso evitaria que fossem inseridos dados repetidos.
Já tenho um código que executa isso, mas é para quando os dados da combo forem em string, só que apesar de a lista da combo mostrar a descrição do que quero selecionar, ela armazena mesmo é o código, e o código é um número, então não está dando certo.
Se alguém puder me ajudar, o código é esse aí abaixo:
- Código:
Private Sub comboCodigoTitulo_GotFocus()
Dim rs As DAO.Recordset
Dim strLista$
Dim strSql$
On Error Resume Next
Set rs = Me.RecordsetClone
rs.MoveFirst
Do While Not rs.EOF
strLista = strLista & ",'" & rs!CodTitulo & "'"
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
If strLista = "" Then
strSql = "SELECT idTitulo, descriçaoTitulo FROM conTitulos ORDER BY descriçaoTitulo;"
Else
strSql = "SELECT idTitulo, descriçaoTitulo FROM conTitulos WHERE idTitulo not IN(" & Mid(strLista, 2) & ") ORDER BY descriçaoTitulo;"
End If
Me!comboCodigoTitulo.RowSource = strSql
End Sub