Nelsonmgj Postado Agosto 30, 2007 Denunciar Share Postado Agosto 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, :) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Macêdo Postado Agosto 30, 2007 Denunciar Share Postado Agosto 30, 2007 (editado) 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 Editado Agosto 30, 2007 por Macêdo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Nelsonmgj Postado Agosto 30, 2007 Autor Denunciar Share Postado Agosto 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Macêdo Postado Agosto 30, 2007 Denunciar Share Postado Agosto 30, 2007 (editado) 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 Editado Agosto 30, 2007 por Macêdo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --nelsonmgj -- Postado Setembro 3, 2007 Denunciar Share Postado Setembro 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, Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Macêdo Postado Setembro 3, 2007 Denunciar Share Postado Setembro 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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --nelsonmgj -- Postado Setembro 3, 2007 Denunciar Share Postado Setembro 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, Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
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 para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.