USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Parametro para carregar combo:
Clayton Dias
não registrado
ENUNCIADA !
Postada em 02/05/2009 09:32 hs   
Bom dia.

Estou tentando carregar uma combo em um formulário através de um paremetro no modulo de preogrmação. Porém, ao carregar da erro, não consigo indentificar a falha.
Consegue me ajudar?
Segue a baixo a Sub do modulo onde é indicado o erro.

Public Sub ComboCategorias(NomeCombo As ComboBox)

Dim cnnComando As New ADODB.Command
Dim rsTemp As New ADODB.Recordset
Dim i As Integer



'Executa a consulta EditorasEmOrdemAlfabetica

With cnnComando

    .ActiveConnection = cnnBiblio
    .CommandType = adCmdStoredProc
    .CommandText = "CategoriasEmOrdemAlfabetica"
    Set rsTemp = .Execute
    
    End With
    
    With rsTemp
            'Verifica se existe alguma editoras cadastradas
            If Not (.EOF And .BOF) Then
            'Se existe então posiciona o ponteiro no primeiro registro rs
            .MoveMin
            'Inicializa a variavel i que sera usada como indic para a propriedade itemData:
            i = 0
            While Not .EOF
                    'Adiciona um item a combo com o nome da editora
                    NomeCombo.AddItem !Descrição, i  <<= o erro é indicado nesta linha
                    'Grava na propriedade ItemData desse o codigo da editora
                    NomeCombo.ItemData(i) = !codigo
                    'Vai para o proximo registro
                    .MoveNext
                    
                    'Incremente i:
                    i = i + 1
                Wend
                End If
                End With
                
                
saida:
            Set cnnComando = Nothing
            Set rsTemp = Nothing
            Exit Sub
            


End Sub

_______________________________________________________________________


esse é o procedimento que é colocado no evento Load do frm que contém a combo:


'Chamaa o procedure ComboEditoras e epassa a combo cboEditora como paremetro
ComboEditoras cboEditora

'O Mesmo para CboCategorias
ComboCategorias cboCategoria

'Garante que nenhum item esteja selecionado nas combos:
cboEditora.ListIndex = -1
cboCategoria.ListIndex = -1
   
APW
S.J.RIO PRETO
SP - BRASIL
ENUNCIADA !
Postada em 03/05/2009 01:15 hs         
usa essa função aqui.... ela serve pra combolist ou listbox

------------------------------------------------------------------------
Public Function RefazerComboLista(aCMB As Control, aSQL As String, aCampoDescricao As String, Optional aCampoItemData As String = "")
    'ESTA SUB-ROTINA PREENCHE UM COMBOBOX OU UMA LISTBOX COM OS DADOS RESULTANTES DE UM CONSULTA SQL. EX:
    'RefazerComboLista CMB_Fornecedor, "SELECT FOR_CODFOR, FOR_NOMFOR FROM TAB_CADFOR ORDER BY FOR_NOMFOR", "FOR_NOMFOR", "FOR_CODFOR"
    Dim Tabela As New ADODB.Recordset
    
    aCMB.Clear
    Tabela.CursorLocation = adUseClient
    Tabela.Open aSQL, poConexao, adOpenForwardOnly, adLockReadOnly
    If Tabela.RecordCount > 0 Then
        Tabela.MoveMin
        Do
             aCMB.AddItem UCase(Tabela(aCampoDescricao))
            If aCampoItemData <> "" Then aCMB.ItemData(aCMB.NewIndex) = Val(Tabela(aCampoItemData))
            Tabela.MoveNext
        Loop Until Tabela.EOF
    End If
    Tabela.Close
    Set Tabela = Nothing
End Function



-----------------------------------------
use ela assim... coloque ela em um modulo e depois a chame em seu load do form

refazercombolista fgr_suacombo,"SELECT * FROM SUA TABELA","NOME","CODIGO"

   
Alexandre Patos
Pontos: 2843 Pontos: 2843
PATOS DE MINAS
MG - BRASIL
Postada em 05/05/2009 10:45 hs            
glayton, o erro na sua rotina é simples, ou vc coloca o nome do recordset ou mude o jeito de acessar a coluna da tabela. vc pode fazer rstemp!codigo ou .fields("codigo"), veja o exemplo abaixo, tanto pro codigo quanto pra descricao, fiz um de um jeito e outro de outro ok.
 
While Not .EOF
                    'Adiciona um item a combo com o nome da editora
                    NomeCombo.AddItem rsTemp!Descrição, i  <<= o erro é indicado nesta linha
                    'Grava na propriedade ItemData desse o codigo da editora
                    NomeCombo.ItemData(i) = .fields("codigo")
                    'Vai para o proximo registro
                    .MoveNext
                    
                    'Incremente i:
                    i = i + 1
                Wend

     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página