Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Manipular recordset


Humm

Pergunta

então, tenho uma consulta que já me retorna os valores que quero..

quero um codigo que me de uma msgbox para cada registro dessa consulta.. como fazer?

acho que tem que ser com o for each campo in conjunto

mas ainda não entendi como chegar até ai..

Dim strQ As String
        Dim db As Database
        Dim rs As DAO.Recordset
        
        strQ = "SELECT prod, qtde, preço FROM TIK_ITENS"
        
        Set db = CurrentDb()
        Set rs = db.OpenRecordset(strQ, dbOpenSnapshot)
        
        With rs
        .MoveFirst
            For Each prod In rs
                MsgBox prod & " " & QTDE & " " & preço
                
            Next prod
        End With

não ta dando certo, da erro na linha do set rs

erro em tempo de execucao 3061

parametros insuficientes. eram esperados 1

alguém da um help?

Editado por Humm
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Tenta isso, não testei

Sub TestIt()

Dim conn As ADODB.Connection
Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset

Set conn = CurrentProject.Connection
Set cmd = New ADODB.Connection
cmd.ActiveConnection = conn

cmd.CommandText = "SELECT TI.prod, TI.qtde, TI.preço FROM TIK_ITENS AS TI"
Set rs = cmd.Execute

rs.MoveFirst
Do While Not rs.EOF
    MsgBox rs("prod") & vbNewLine & _
        rs("qtde") & vbNewLine & _
        rs("preço")
        
    rs.MoveNext
Loop
        
cmd.ActiveConnection.Close
rs.Close

Set rs = Nothing
Set cmd = Nothing
Set conn = Nothing

End Sub

Editado por Iceguy
Link para o comentário
Compartilhar em outros sites

  • 0

HEHE... Falha Técnica

Corrigi...

Sub TestIt()

Dim conn As ADODB.Connection
Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset

Set conn = CurrentProject.Connection
Set cmd = New ADODB.Command
cmd.ActiveConnection = conn

cmd.CommandText = "SELECT TI.prod, TI.qtde, TI.preço FROM TIK_ITENS AS TI"
Set rs = cmd.Execute

If rs.EOF And rs.BOF Then
    GoTo Sair
End If

rs.MoveFirst
Do While Not rs.EOF
    MsgBox rs("prod") & vbNewLine & _
        rs("qtde") & vbNewLine & _
        rs("preço")
        
    rs.MoveNext
Loop
        
Sair:
    rs.Close
    cmd.ActiveConnection.Close
    
    Set rs = Nothing
    Set cmd = Nothing
    Set conn = Nothing

End Sub

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...