COMBOBOX_TEXT

FERRAZ 15/06/2010 13:35:26
#344876
Amigos, fiz muitas pesquisas e nao tive sucesso:

Como posso criar uma query para pegar o campo [Ô]CodGar[Ô] na tabela e preencher uma text no evento click de uma ComboBox, detalhe o campo [Ô]CodGar[Ô] eh um campo numerico e corresponde ao nome selecionado na combobox, tipo NmeGar = joao
CodGar = 1

Meu botao:

Private Sub CboAtend_Click()
Set Conexão = New ADODB.Connection
Conexão.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\SysRestWave\Sistema\MovRest\MovRest.mdb;Jet OLEDB:Database Password=BbVbPassword;[Ô]
Dim SQL As String
SQL = [Ô]SELECT * FROM Garcom WHERE CodGar = 1[Ô] [ô]Assim ele so pega o que eu informo, quero pegar outros da mesma tabela.
Set rs = Conexão.Execute(SQL)

Do While Not rs.EOF
TxtCodAtend.Text = IIf(IsNull(rs!CodGar), [Ô][Ô], rs!CodGar)
rs.MoveNext
Loop

End Sub


Tentei assim mais sem sucesso:

Private Sub CboAtend_Click()
Set Conexão = New ADODB.Connection
Conexão.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\SysRestWave\Sistema\MovRest\MovRest.mdb;Jet OLEDB:Database Password=BbVbPassword;[Ô]
Dim SQL As String

SQL = [Ô]SELECT CodGar,NmeGar FROM Garcom ORDER BY CodGar[Ô]
Set rs = Conexão.Execute(SQL)

Do While Not rs.EOF
TxtCodAtend.Text = IIf(IsNull(rs!CodGar), [Ô][Ô], rs!CodGar) [ô]So retorna o ultimo registro da tabela.
rs.MoveNext
Loop

End Sub



Fico grato a todos os amigos do VbMania.
MORDENTI 15/06/2010 13:44:57
#344877
Falou o movefirst logo abaixo do comentário posta e tenta ai :)BRASIL HJ HEEHEHE


Private Sub CboAtend_Click()
Set Conexão = New ADODB.Connection
Conexão.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\SysRestWave\Sistema\MovRest\MovRest.mdb;Jet OLEDB:Database Password=BbVbPassword;[Ô]
Dim SQL As String

SQL = [Ô]SELECT CodGar,NmeGar FROM Garcom ORDER BY CodGar[Ô]
Set rs = Conexão.Execute(SQL)
[ô]Faltou aqui *************************************
rs.movefirst
Do While Not rs.EOF
TxtCodAtend.Text = IIf(IsNull(rs!CodGar), [Ô][Ô], rs!CodGar) [ô]So retorna o ultimo registro da tabela.
rs.MoveNext
Loop

End Sub
FERRAZ 15/06/2010 13:56:40
#344881
MORDENTI, tem razao estava faltando mesmo MoveFirst, mais mesmo assim, continua retornando apenas o ultimo registro.


Private Sub CboAtend_Click()
Set Conexão = New ADODB.Connection
Conexão.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\SysRestWave\Sistema\MovRest\MovRest.mdb;Jet OLEDB:Database Password=BbVbPassword;[Ô]
Dim SQL As String

SQL = [Ô]SELECT CodGar,NmeGar FROM Garcom ORDER BY CodGar[Ô]
Set rs = Conexão.Execute(SQL)
[ô]Faltou aqui *************************************
rs.MoveFirst <=======================
Do While Not rs.EOF
TxtCodAtend.Text = IIf(IsNull(rs!CodGar), [Ô][Ô], rs!CodGar) [ô]So retorna o ultimo registro da tabela.
rs.MoveNext
Loop


End Sub


Estou tentando mais nao tive sucesso ainda.
MARCELO.TREZE 15/06/2010 14:00:48
#344884
primerio como vc preencheu a combo?




MORDENTI 15/06/2010 14:04:00
#344885
Já sei, coloca a opção do textbox como true para multiline. Tenta e me fala até as 15:00 to aqui.
MSMJUDAS 15/06/2010 14:09:01
#344887
Não precisa de tudo isso não.

SE vc preencheu seu combobox apenas com:

Combo.AddItem Recordset([Ô]DESCRICAO[Ô])
Combo.ItemData(Combo.NewIndex) = Recordsert([Ô]CODIGO[Ô])

Para pegar o CÓDIGO da opção selecionada no combo é só fazer assim:

TxtCodigo.Text = Combo.ItemData(Combo.ListIndex)
FERRAZ 15/06/2010 14:10:04
#344888
Marcelo, estou preenchendo a combobox assim:

SQL = [Ô]SELECT * FROM Garcom[Ô]
Set rs = Conexão.Execute(SQL)

rs.MoveFirst
Do While Not rs.EOF
CboAtend.AddItem rs!NmeGar
rs.MoveNext
Loop

MORDENTI, nao eh preciso deixar o textbox true para multiline, pois eh apenas um caracter, concorda.
MARCELO.TREZE 15/06/2010 14:10:53
#344889
só pra adiantar, primeiro preencha a combo assim

 With Combo1
.AddItem [Ô]Joao[Ô]
.ItemData(.NewIndex) = 1
AddItem [Ô]Pedro[Ô]
.ItemData(.NewIndex) = 2
AddItem [Ô]Joaquim[Ô]
.ItemData(.NewIndex) = 3
AddItem [Ô]Marcelo[Ô]
.ItemData(.NewIndex) = 4
End With


acima apenas um exemplo

agora no seu código

Private Sub CboAtend_Click()
Set Conexão = New ADODB.Connection
Conexão.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\SysRestWave\Sistema\MovRest\MovRest.mdb;Jet OLEDB:Database Password=BbVbPassword;[Ô]
Dim SQL As String
SQL = [Ô]SELECT * FROM Garcom WHERE CodGar = [Ô] & CboAtend.Index

Set rs = Conexão.Execute(SQL)

If (rs.EOF = True And rs BOF = True) then exit Sub

TxtCodAtend.Text = rs!CodGar & [Ô][Ô]

End Sub


e pronto

MARCELO.TREZE 15/06/2010 14:13:10
#344890
preencha seu combo assim

SQL = [Ô]SELECT * FROM Garcom[Ô]
Set rs = Conexão.Execute(SQL)

Do While Not rs.EOF
CboAtend.AddItem rs!NmeGar
CboAtend.ItemData(CboAtend.NewIndex) = rs!CodGar
rs.MoveNext
Loop


pronto e use o código acima citado

FERRAZ 15/06/2010 14:18:31
#344892
MSMJUDAS, eu estou preenchendo a combo de outra forma, mais valeu sua dica.
FERRAZ 15/06/2010 14:30:59
#344896
Marcelo mano, esta me ocorrendo um erro nesta linha aqui veja:

SQL = [Ô]SELECT * FROM Garcom WHERE CodGar = [Ô] & CboAtend.Index 
[ô]Objet Not An Array


Fico grato amigo.
Página 1 de 2 [16 registro(s)]
Tópico encerrado , respostas não são mais permitidas