Carlos Sergio
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 18/04/2009 15:30 hs
Estou tantando preencher um listview no entando quando o cursor percorre a rodina no loop ele entende que a tabela esta vazia, mas na relidade não esta. Na depuração quando o cursor chega linha If .RecordCount > 0 Then ao invez dele ir para a linha seguinte ele ja pula direto para o else, como se não houvesse registros nas tabelas. alguém sabe porque isso ocorre? With rsTemp str_sql = "SELECT TB_Det_Pesc_Pescador.Codigo_Det_Pesc_pescador, " str_sql = str_sql & " TB_Det_Pesc_Pescador.Codigo_Pescaria, " str_sql = str_sql & " TB_Det_Pesc_Pescador.Codigo_Pescador , " str_sql = str_sql & " Pescadores.Nome FROM Pescaria INNER JOIN " str_sql = str_sql & " (Pescadores INNER JOIN TB_Det_Pesc_Pescador ON " str_sql = str_sql & " Pescadores.Codigo_Pescador = " str_sql = str_sql & " TB_Det_Pesc_Pescador.Codigo_Pescador) " str_sql = str_sql & " ON Pescaria.Codigo_Pescaria = " str_sql = str_sql & " TB_Det_Pesc_Pescador.Codigo_Pescaria " str_sql = str_sql & " WHERE TB_Det_Pesc_Pescador.Codigo_Pescaria = " & Text1(0).Text .Open str_sql, Banco.conexao, adOpenKeyset, adLockOptimistic If .RecordCount > 0 Then lvwPescador.ListItems.Clear Do While Not .EOF Set LISTA = lvwPescador.ListItems.Add(, , !codigo_pescador) LISTA.SubItems(1) = !Nome .MoveNext Loop Else lvwPescador.ListItems.Clear End If
|
|
|
|
|
Postada em 18/04/2009 22:54 hs
Carlos Sergio, primeiro vc tem que abrir o banco para depois usar o select Exemplo, o que eu faço, crio um módulo Sub AbreBanco() Dim sPath As String Set db = New ADODB.Connection sPath = App.Path & "mercado.mdb" db.Open "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & sPath '& ";Jet OLEDB:Database Password=alv2209" BancoAberto = True End Sub
no load do form
abrebanco
e onde eu quiser fazer a busca Sql = "select v.coditem,v.quant,v.valorunitario,i.descricao from vendaitens v " & _ "inner join itens i on i.codbarras = v.coditem " & _ "Where v.codvenda = " & Val(LblNVenda.Caption) & " and v.nvenda = " & Posicao & " and v.ncaixa = " & Val(NCaixa) & " and v.data = #" & Format(Date, "MM/DD/YYYY") & "#" Set Banco = db.Execute(Sql)
No seu caso vc esta abrindo sem setar a conexão com o banco Espero ter entendido a sua dúvida e poder ter te ajudado da melhor forma
Abraço e que DEUS te abençõe, espero poder ter te ajudado  Eu sou o Senhor, o DEUS de vocês; eu os seguro pela mão e lhes digo; Não fiquem com medo, pois eu os ajudo Isaias 41:13
|
|
|
Treze
|
SÃO VICENTE SP - BRASIL
|
|
Postada em 18/04/2009 22:56 hs
TENTE ESTA PEQUENA ALTERAÇÃO NESTE TRECHO DO CÓDIGO If Not (.EOF = True And .BOF = True) Then lvwPescador.ListItems.Clear Do While Not .EOF Set LISTA = lvwPescador.ListItems.Add(, , !codigo_pescador) LISTA.SubItems(1) = !Nome .MoveNext Loop Else lvwPescador.ListItems.Clear End If
|
|
|
APW
|
S.J.RIO PRETO SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 19/04/2009 11:47 hs
eu uso esta minha funçãozinha pra preencher tanto listview ou combo não tem erro... (é só colocar num modulo geral)
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 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
|
|
|
LCRamos
|
GOIANIA GO - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 21/04/2009 01:36 hs
Se nada resolver, abra o Access e compacte o BD, pode estar com erro. vlu//
|
|
|
|