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

(Resolvido) recuperar um valor baseado em SQL


Humm

Pergunta

4 respostass a esta questão

Posts Recomendados

  • 0
algo que a primeira vista parece ser tão facil.. tá muito dificil!!

pior que não consigo achar nenhum exemplo!

Faz o seguinte:

Dim Db As Database, Rs As Recordset, Sql As String

Set Db = CurrentDb

Set Rs = Db.OpenRecordset("CONSULTA SQL")

Me.valorunitário = Rs.Fields(COLUNA)

*O valor em coluna deve ser o número correspondente ao campo, começando do 0 (zero), ou seja, se for a primeira coluna da consulta que você quer pegar então Rs.Fields(0), caso seja o segundo, Rs.Fields(1) e assim por diante.

*Esse código sempre buscará a primeira linha da consulta, caso você queira navegar pelas linha utilize o Move,

ex.:

Rs.MoveFirst (vai pra primeira linha)

Rs.MoveLast (vai pra última linha)

Rs.MoveNext (vai para a próxima linha)

Rs.MovePrevious (vai para a linha anterior)

Espero que tenha ajudado em algo

Link para o comentário
Compartilhar em outros sites

  • 0
algo que a primeira vista parece ser tão facil.. tá muito dificil!!

pior que não consigo achar nenhum exemplo!

Faz o seguinte:

Dim Db As Database, Rs As Recordset, Sql As String

Set Db = CurrentDb

Set Rs = Db.OpenRecordset("CONSULTA SQL")

Me.valorunitário = Rs.Fields(COLUNA)

*O valor em coluna deve ser o número correspondente ao campo, começando do 0 (zero), ou seja, se for a primeira coluna da consulta que você quer pegar então Rs.Fields(0), caso seja o segundo, Rs.Fields(1) e assim por diante.

*Esse código sempre buscará a primeira linha da consulta, caso você queira navegar pelas linha utilize o Move,

ex.:

Rs.MoveFirst (vai pra primeira linha)

Rs.MoveLast (vai pra última linha)

Rs.MoveNext (vai para a próxima linha)

Rs.MovePrevious (vai para a linha anterior)

Espero que tenha ajudado em algo

ahhhhh acho que é exatamente isso que eu quero!!! assim que eu estiver la no trabalho, vou testar..

fico muito grato amigo.. procurei isso na internet mas não tava achando nada..

você sabe me dizer se, eu usando desta maneira em SQL, é mais leve do que usar dlookup? pois eu tenho certeza que li em algum lugar que o uso de dlookups deixa os forms muito pesados..

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

muito bem,.. fiz assim

Private Sub ref_BeforeUpdate(Cancel As Integer)
    Dim Db As DAO.Database, Rs As Recordset, Sql As String
    Set Db = CurrentDb
    Set Rs = Db.OpenRecordset("SELECT tabela3.valoru, tabela3.referencia FROM " _
    & "Tabela3 WHERE tabela3.referencia = [Forms]![form1]![Tabela2 subformulário]" _
    & ".[Form]![ref]")
    
    Me.valoru = Rs.Fields(0)

End Sub
acontece que ta retornando um erro muito esquisito..
erro em tempo de execução: '3161' parâmetros insuficientes. eram esperados 1.
não faço ideia deste erro.. já ate tentei ao invez do sql, colocar o nome da consulta pré criada, mas da o mesmo erro. alguém sabe do que se trata? abraços EDIT: Consegui!!
Private Sub ref_beforeUpdate(Cancel As Integer)
    
    Dim Db As DAO.Database, Rs As DAO.Recordset, Sql As String
    Set Db = CurrentDb
    pref = Me.ref
    Set Rs = Db.OpenRecordset("SELECT * FROM Tabela3 WHERE referencia =" & pref)
    
    Me.valoru = Rs.Fields(2)
    Set Db = Nothing
    Set Rs = Nothing
    

End Sub

faltava o DAO. antes do Recordset tb. além do mais, ao invez de forms!blablabla usei uma variavel.

abraços

Editado por Humm
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,4k
×
×
  • Criar Novo...