_Rest_ Posted May 31, 2006 at 05:42 PM Report Share #30361 Posted May 31, 2006 at 05:42 PM Boas! A minha dúvida é como é k se vai buscar valores a BD (em access) através de uma combobox. Só consegui com uma datacombo mx depois nao consigo gravar. Este e o comment k ta no código so k nao sabia se dava pa ler: 'rs!num_cliente = DataCombo1.Text aki dá erro tem k ser com combobox como no rs!estado 'só se o erro for por a datacombo tar a ir buskar os dados a outra tabela(Cliente - Nome) mas este 'corresponde a um num_cliente na tabela Chamadas Dim CONDecsis As ADODB.Connection Dim rs As ADODB.Recordset Private Sub Gravar() rs!case_number = txtcase_number.Text rs!num_chamada = txtnum_chamada.Text rs!tipo_produto = txttipo_produto.Text rs!modelo = txtmodelo.Text 'rs!num_cliente = DataCombo1.Text aki dá erro tem k ser com combobox como no rs!estado 'só se o erro for por a datacombo tar a ir buskar os dados a outra tabela(Cliente - Nome) mas este 'corresponde a um num_cliente na tabela Chamadas rs!serial_number = TxtSerial_number.Text rs!observações = txtobservações.Text rs!avaria = txtavaria.Text rs!estado = Combo1.Text rs!localização = txtlocalização.Text End Sub Private Sub LimparText() txtcase_number.Text = "" txtnum_chamada.Text = "" txttipo_produto.Text = "" txtmodelo.Text = "" TxtCliente.Text = "" TxtSerial_number.Text = "" txtobservações.Text = "" txtavaria.Text = "" txtlocalização.Text = "" End Sub Private Sub cmdAdicionar_Click() Set rs = New ADODB.Recordset rs.CursorType = adOpenStatic rs.CursorLocation = adUseClient rs.LockType = adLockPessimistic rs.Source = "SELECT * FROM Chamadas WHERE case_number=" & txtcase_number.Text rs.ActiveConnection = CONDecsis rs.Open If rs.RecordCount = 0 Then rs.AddNew Call Gravar rs.Update Call LimparText Else MsgBox "Case Number ja existente", vbCritical, "Failure" End If End Sub Private Sub Form_Load() Set CONDecsis = New ADODB.Connection CONDecsis.ConnectionString = "Provider=Microsoft.jet.oledb.4.0; Data Source=" & App.Path & "\DB\Decsis.mdb" CONDecsis.Open CONDecsis.CursorLocation = adUseClient End Sub Private Sub txtcase_number_KeyPress(KeyAscii As Integer) If KeyAscii < 49 Or KeyAscii > 57 Then If KeyAscii <> 8 Then KeyAscii = 0 End If If KeyAscii = 13 Then SendKeys "{TAB}" End If End Sub Private Sub txtnum_chamada_KeyPress(KeyAscii As Integer) If KeyAscii < 49 Or KeyAscii > 57 Then If KeyAscii <> 8 Then KeyAscii = 0 End If If KeyAscii = 13 Then SendKeys "{TAB}" End If End Sub Private Sub txttipo_produto_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then SendKeys "{TAB}" End If End Sub Link to comment Share on other sites More sharing options...
vbtipo Posted May 31, 2006 at 07:53 PM Report Share #30393 Posted May 31, 2006 at 07:53 PM Para isso que queres é bastante fácil de fazer por ex: Private sub Combo1_click() rs.close (fechas o recordset anterior) rs.open (nome da tabela que queres) e depois vais adicionando while contador<>rs.recordcount combo1.add rs.field("o nome do campo que queres") rs.recordnext contador=contador+1 wend Basicamente é isto agora apartir desta ideia fazes tu próprio (Nota pús este código aqui sem o testar pode ter alguma falha mas não vai fugir muito disto.) Lema: Se eu não saber de alguma coisa não se preocupem porque tento sempre ajudar alguma coisita, nem que seja, por palpites/sugestões. Link to comment Share on other sites More sharing options...
_Rest_ Posted June 1, 2006 at 11:57 AM Author Report Share #30557 Posted June 1, 2006 at 11:57 AM Obrigado! Meti assim Private Sub Form_Load() Set CONDecsis = New ADODB.Connection CONDecsis.ConnectionString = "Provider=Microsoft.jet.oledb.4.0; Data Source=" & App.Path & "\DB\Decsis.mdb" CONDecsis.Open CONDecsis.CursorLocation = adUseClient Set rs = New ADODB.Recordset rs.CursorType = adOpenStatic rs.CursorLocation = adUseClient rs.LockType = adLockPessimistic rs.Source = "SELECT * FROM Clientes" rs.ActiveConnection = CONDecsis rs.Open While contador <> rs.RecordCount Combo2.AddItem rs!Nome rs.MoveNext contador = contador + 1 Wend contador = 0 rs.close End Sub Mas continuo com o mesmo problema da datacombo. Eu não consigo gravar pk o valor da combo é o nome do cliente e não o num_cliente. Sem mostrar a BD e dificil explicar mx não sei como se posta fotos. Private Sub Gravar() rs!case_number = txtcase_number.Text rs!num_chamada = txtnum_chamada.Text rs!tipo_produto = txttipo_produto.Text rs!modelo = txtmodelo.Text rs!num_cliente = Combo2.Text rs!serial_number = TxtSerial_number.Text rs!observações = txtobservações.Text rs!avaria = txtavaria.Text rs!estado = Combo1.Text rs!localização = txtlocalização.Text End Sub Link to comment Share on other sites More sharing options...
vbtipo Posted June 1, 2006 at 08:20 PM Report Share #30639 Posted June 1, 2006 at 08:20 PM Talvés estejas a tentar gravar dados numa outra tabela que não tenha esses campos. Ps: é estramamente dificil ajudar-te sem ter um ponto exacto da situação, ou seja esse problema pode advir de vários sitios: Pode vir de estar a tentar gravar numa outra tabela completamente diferente. Pode ter a ligação desactivada. Pode a própria base de dados estar mal feita. Pode ser que o vb6 esteja em conflito com a versão da base de dados (do qual duvido). Só vendo que podesse resolver o problema Lema: Se eu não saber de alguma coisa não se preocupem porque tento sempre ajudar alguma coisita, nem que seja, por palpites/sugestões. Link to comment Share on other sites More sharing options...
_Rest_ Posted June 1, 2006 at 08:37 PM Author Report Share #30641 Posted June 1, 2006 at 08:37 PM A BD está bem feita! Como e k posto fotos? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now