Convidado 24/6/2011, 17:16
Bem amigos... resolvi da seguinte maneira:
1 - Criei uma combo carregada via SQL com o nome
2 - Criei uma Cariável para receber o valor da combo
3 - Apliquei a variável na cláusula LIKE
3 - Coloquei o código no ao alterar da combo, carregando a lst com os dados filtrados
Private Sub cboDetento_Change()
On Error GoTo TrataErro
Dim VarNome As String
VarNome = Me.CboDetento.Column(2)
Parametros_de_Inicializacao "SysPen.par"
Dim StrLstDetento As String
Dim NomeBD As String
Dim StrPath As String
Dim dbBanco As Database
Dim VarReg As String
Dim VarUnidade As String
VarReg = RegimeAtual
VarUnidade = UnidadeOrigem
NomeBD = "Syspen_be.accdb"
'String com path para conexão com a base de dados.
StrPath = DirBancoDados & NomeBD ' Conecta ao banco de dados comum
Set dbBanco = OpenDatabase(StrPath)
'lstBox LstDetento
StrLstDetento = "SELECT Detentos.ID, GuiaRemocao.DataRemocao, Detentos.[Nome] & Space (1) & [Sobrenome], Detentos.Nome FROM Detentos " _
& "LEFT JOIN GuiaRemocao ON Detentos.[ID] = GuiaRemocao.[ID_Detento]" _
& "IN '" & StrPath & "'" _
& " WHERE Detentos.[Nome] Like '" & VarNome & "' " _
& " And GuiaRemocao.[DataRemocao] Is Not Null And UnidadeRequisitante='" & VarUnidade & "' And RegimeAtual='" & VarReg & "'" _
& " Order By DataRemocao ASC;"
Me.lstDetento.RowSource = StrLstDetento
Me![lstDetento].ColumnCount = 4
Me![lstDetento].ColumnWidths = "0cm; 2,5cm; 6cm; 0cm "
'Encerra a conexão
dbBanco.Close
Set dbBanco = Nothing
TrataErro:
If err.Number = 91 Then
'Como ao alterar algum dado na combo e ele não contiver na lista, dará erro uso de Null inválido, então pequei o erro e fiz o tratamento para este em específico Else
Resume Next
End If
End Sub
Grato