Usuário com melhor resposta
como inserir o valor de uma combobox em um comando select no vba? esse comando tem que ser lido apos um like, ele definira qual estado foi escolhido para gerar um codigo.

Pergunta
-
ola, boa tarde
como faço no vba do excel, para que um combobox retorne o valor na minha caixa de select, já tentei de muitas formas, mas ate agora nenhuma deu certo, o oque preciso é que apos eu escolher um estado no combobox ele salve isso e jogue no select para encontrar no meu banco de dados, eu consegui fazer ele retornar o valor código de um estado,mas não de todos, agradeço se alguém puder ajudar, deixo o código abaixo.
Set rs = DB.OpenRecordset("select [code] from [estado] where [estados] like ('" & combobox1 & "') ")
Private Sub UserForm_initialize()
Dim cnConexao As New ADODB.Connection
Dim rsProjeto As New ADODB.Recordset
Set cnConexao = New ADODB.Connection
Set rsProjeto = New ADODB.Recordset
Dim jsProjeto As New ADODB.Recordset
Set jsProjeto = New ADODB.Recordset
Dim Arquivo As String
Arquivo = ActiveWorkbook.Path & "\pessoa.accdb"
cnConexao.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Arquivo)
Dim DB As Database
Set DB = OpenDatabase(Arquivo)
Set js = DB.OpenRecordset("select [estados] from [estado]")
Do While Not js.EOF
Me.combobox1.AddItem js.Fields(0) & ""
estadosx = (js.Fields(0) & "")
js.MoveNext
Loop
Set rs = DB.OpenRecordset("select [code] from [estado] where [estados] like ('" & combobox1 & "') ")
Do While Not rs.EOF
Me.ComboBox2.AddItem rs.Fields(0) & ""
codigoestado = (rs.Fields(0) & "")
rs.MoveNext
Loop
DB.Close
Set DB = Nothing
End Subaqui é onde esta o meu problema (coloquei o código todo pra vocês entenderem a pegunta), só com o like não ta dando, não consegui fazer um "like for values ('" & combobox1 & "') ")", ele nao puxa o estado para fazer a verificação, aí não gera o código.
Set rs = DB.OpenRecordset("select [code] from [estado] where [estados] like ('" & combobox1 & "') ")
desde já agradeço pela ajuda, tenham um ótimo dia.
- Movido welington jr quinta-feira, 9 de novembro de 2017 20:50 forum certo
Respostas
-
'se houver item selecionado na combobox if combobox1.listindex >=0 then Set rs = DB.OpenRecordset("select [code] from [estado] where [estados] like ('" & combobox1.value & "') ") end if
Anderson Diniz diniabr2011@gmail.com
- Sugerido como Resposta AndersonFDiniz2 sexta-feira, 10 de novembro de 2017 09:38
- Marcado como Resposta fantomas97 sexta-feira, 10 de novembro de 2017 19:13
-
Infelizmente não entendo de sql. A parte da combo, creio que está correta. Talvez você consiga a resposta em um fórum de SQL
Anderson Diniz diniabr2011@gmail.com
- Marcado como Resposta fantomas97 sexta-feira, 10 de novembro de 2017 13:40
-
Não sei se você está utilizando intervalos nomeados. No Excel já tive problemas e passei a substituir o intervalo nomeado pelo endereço da célula ou do intervalo de células.
Anderson Diniz diniabr2011@gmail.com
- Marcado como Resposta fantomas97 sexta-feira, 10 de novembro de 2017 15:00
Todas as Respostas
-
'se houver item selecionado na combobox if combobox1.listindex >=0 then Set rs = DB.OpenRecordset("select [code] from [estado] where [estados] like ('" & combobox1.value & "') ") end if
Anderson Diniz diniabr2011@gmail.com
- Sugerido como Resposta AndersonFDiniz2 sexta-feira, 10 de novembro de 2017 09:38
- Marcado como Resposta fantomas97 sexta-feira, 10 de novembro de 2017 19:13
-
-
Infelizmente não entendo de sql. A parte da combo, creio que está correta. Talvez você consiga a resposta em um fórum de SQL
Anderson Diniz diniabr2011@gmail.com
- Marcado como Resposta fantomas97 sexta-feira, 10 de novembro de 2017 13:40
-
-
-
-
Não sei se você está utilizando intervalos nomeados. No Excel já tive problemas e passei a substituir o intervalo nomeado pelo endereço da célula ou do intervalo de células.
Anderson Diniz diniabr2011@gmail.com
- Marcado como Resposta fantomas97 sexta-feira, 10 de novembro de 2017 15:00
-
-
-
-
Amém. Deus abençoe. Que legal!!! Como ficou o código?
Anderson Diniz diniabr2011@gmail.com
- Editado AndersonFDiniz2 sexta-feira, 10 de novembro de 2017 19:25
-
Set rsProjeto = New ADODB.Recordset
Dim jsProjeto As New ADODB.Recordset
Set jsProjeto = New ADODB.Recordset
Dim Arquivo As String
Arquivo = ActiveWorkbook.Path & "\pessoa.accdb"
cnConexao.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Arquivo)
Dim DB As Database
Set DB = OpenDatabase(Arquivo)
If estado.ListIndex >= 0 Then
Set rs = DB.OpenRecordset("SELECT [code] FROM [estado] WHERE [estados] like ('" & estado.Value & "') ")
Do While Not rs.EOF
codigoestado = (rs.Fields(0) & "")
rs.MoveNext
Loop
DB.Close
Set DB = Nothing
End If
ficou assim amigo, obrigado pela resposta.