Nelsonmgj Posted August 30, 2007 Report Share Posted August 30, 2007 Amigos,Estou com dificuldades para carregar uma combo num form :( . Estou usando o seguinte código:Private Sub Form_Load() Dim cnnComan As New ADODB.Command Dim sel As New ADODB.Recordset Dim vCod As Long Dim i As Integer With F1_Cad_Titu .Height = 1620 .Width = 4950 End With Combo_Titu Cmb_Titu Cmb_Titu.ListIndex = -1 With cnnComan .ActiveConnection = BDbanc .CommandType = adCmdText .CommandText = "select * from Cons_Titu" Set sel = .Execute End With With sel If .EOF And .BOF Then vCod = !Cód_Titu With Cmb_Titu .ListIndex = -1 For i = 0 To (.ListCount - 1) If Cmb_Titu = .ItemData(i) Then .ListIndex = i Exit For End If Next i End With End If End WithEnd SubPoderiam me indicar onde está o erro, pois o form está carregando com duas linhas escrito FALSE :o .Desde já agradeço, :) Quote Link to comment Share on other sites More sharing options...
0 Macêdo Posted August 30, 2007 Report Share Posted August 30, 2007 (edited) Private Sub Form_Load()Dim cnnComan As New ADODB.CommandDim sel As New ADODB.Recordsetwith cnncoman .ActiveConnection = BDbanc .CommandType = adCmdText .CommandText = "select * from Cons_Titu"Set sel = .Execute sel.MoveFirst Do While Not sel .EOF Cmb_titu.AddItem sel !CAMPO ' atenção altere aqui o nome do campo da tabela sel.MoveNext LoopEnd With Edited August 30, 2007 by Macêdo Quote Link to comment Share on other sites More sharing options...
0 Nelsonmgj Posted August 30, 2007 Author Report Share Posted August 30, 2007 Private Sub Form_Load()Dim cnnComan As New ADODB.CommandDim sel As New ADODB.Recordsetwith cnncoman .ActiveConnection = BDbanc .CommandType = adCmdText .CommandText = "select * from Cons_Titu"Set sel = .Execute sel.MoveFirst Do While Not sel .EOF Cmb_titu.AddItem sel !CAMPO ' atenção altere aqui o nome do campo da tabela sel.MoveNext LoopEnd WithAmigão,Aconteceu que a partir do while deu o seguinte erro: "Expected: end of statement".Se puder me ajudar, agradeço. Quote Link to comment Share on other sites More sharing options...
0 Macêdo Posted August 30, 2007 Report Share Posted August 30, 2007 (edited) Amigo já vi onde tá o erro, tem um espaço na linha do Do While assim:do while not sel .eof obs: retire o espaço para ficar assim:do while not sel.eof com certeza o erro é este, já testei aqui e apareceu este erro mesmo quando deixa este espaço entre o nome do recordset e o .eof Edited August 30, 2007 by Macêdo Quote Link to comment Share on other sites More sharing options...
0 Guest --nelsonmgj -- Posted September 3, 2007 Report Share Posted September 3, 2007 Amigo já vi onde tá o erro, tem um espaço na linha do Do While assim:do while not sel .eof obs: retire o espaço para ficar assim:do while not sel.eof com certeza o erro é este, já testei aqui e apareceu este erro mesmo quando deixa este espaço entre o nome do recordset e o .eofObrigado Amigo,E quando temos de carregar várias combos em um Form? Desculpe-me, mas pensei que era só uma questão simples de copiar os comandos, ou pelo menos, não estou conseguindo raciocinar algo que funcione...Desde já agradeço, Quote Link to comment Share on other sites More sharing options...
0 Macêdo Posted September 3, 2007 Report Share Posted September 3, 2007 Bom, para preencher muitas combos eu crio SubProcedimentos para cada combo e ponho o nome da Sub dentro do Form_Load explicando:Para criar SubProcedimentos você escreve dentro da janela de código:Private Sub + o nome do procedimento + os parenteses()exemplo: Private Sub Preenche_combo_TITU ()Dim cnnComan As New ADODB.CommandDim sel As New ADODB.Recordsetwith cnncoman.ActiveConnection = BDbanc.CommandType = adCmdText.CommandText = "select * from Cons_Titu"Set sel = .Executesel.MoveFirstDo While Not sel.EOFCmb_titu.AddItem sel !CAMPO ' atenção altere aqui o nome do campo da tabelasel.MoveNextLoopEnd WithEnd subE então dentro do Form_Load você coloca o Procedimento a ser executado, assim:Private Sub Form_Load()Preenche_combo_TITU end subEntão seguindo este exemplo é só você criar os subprocedimentos para cada combo e por dentro do Form_Load o nome dos mesmos, um abaixo do outro, desta forma quando ocorrer o evento Load do Form ele irá ler o código de preenchimento de todas as combosQualquer duvida tamo aqui...Beleza? Quote Link to comment Share on other sites More sharing options...
0 Guest --nelsonmgj -- Posted September 3, 2007 Report Share Posted September 3, 2007 Obrigado Amigo,Mais simples impossível, eu tentei brigar o quanto pude para deixar tudo em um único procedimento, mas esta solução realmente é mais simples e funcional.Obrigado, Quote Link to comment Share on other sites More sharing options...
Question
Nelsonmgj
Amigos,
Estou com dificuldades para carregar uma combo num form :( . Estou usando o seguinte código:
Private Sub Form_Load()
Dim cnnComan As New ADODB.Command
Dim sel As New ADODB.Recordset
Dim vCod As Long
Dim i As Integer
With F1_Cad_Titu
.Height = 1620
.Width = 4950
End With
Combo_Titu Cmb_Titu
Cmb_Titu.ListIndex = -1
With cnnComan
.ActiveConnection = BDbanc
.CommandType = adCmdText
.CommandText = "select * from Cons_Titu"
Set sel = .Execute
End With
With sel
If .EOF And .BOF Then
vCod = !Cód_Titu
With Cmb_Titu
.ListIndex = -1
For i = 0 To (.ListCount - 1)
If Cmb_Titu = .ItemData(i) Then
.ListIndex = i
Exit For
End If
Next i
End With
End If
End With
End Sub
Poderiam me indicar onde está o erro, pois o form está carregando com duas linhas escrito FALSE :o .
Desde já agradeço, :)
Link to comment
Share on other sites
6 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.