Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lcamara

Função com recordset.

Recommended Posts

Olá,Acho que estou comendo barriga mas não consigo fazer isso...Tenho um módulo chamado mdlDados.bas e nele a função CEPLer criada da seguinte maneira:"Public Function CEPLer(CEP As String) As ADODB.Recordset"nesta função eu tenho que me conectar no BD e ler um CEP específico.Tenho um Form que tem a seguinte chamada pra essa função:"Dim Volta As ADODB.RecordsetSet Volta = CEPLer("79.081-465")"Acontece que não estou conseguindo trazer os dados chamando a função...Quem puder me ajudar, agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não funcionou... "Compile error: Invalid use of property" na linha da chamada (Volta = CEPLer("79.081-465")).A minha função tá assim:"Public Function CEPLer(CEP As String) As ADODB.Recordset Dim gsCaminho As String gsCaminho = App.Path strConexao = "File Name=" & gsCaminho & "\ADM.udl" Dim cnCEPLer As New ADODB.Connection Dim rsCEPLer As New ADODB.Command cnCEPLer.Open strConexao rsCEPLer.ActiveConnection = cnCEPLer rsCEPLer.CommandText = "SELECT * FROM CEP WHERE CEP = '" & CEP & "' ;" Set CEPLer = rsCEPLer.Execute Set rsCEPLer = Nothing cnCEPLer.CloseEnd Function"e minha chamada tá assim:"Private Sub Command1_Click() Dim Volta As ADODB.Recordset Volta = CEPLer("79.081-465")End Sub"

Compartilhar este post


Link para o post
Compartilhar em outros sites

deixa a chamada assim:

 

Private Sub Command1_Click()   Dim Volta As ADODB.Recordset   set Volta = CEPLer("79.081-465")   if volta.recordcount < 1 then		msgbox "naum encontrou o CEP"   else	   'para você ver todos os retornos do recordset	   Dim i as Integer	   for i = 0 to Volta.Fields.Count - 1		msgbox "campo: " & volta(i).name & " - Valor: " & volta(i).value	   next    end ifEnd Sub"

depois é só pegar o nome que você quer que retorne e passar pra variavel ou função ou sei-la

exemplo, passando pra variavel:

dim teste as stringteste = volta("nomedocampo").value

 

OBS.: acho q vai ter q tirar estas duas últimas linhas da função, testai

Set rsCEPLer = Nothing

cnCEPLer.Close

 

 

 

 

 

falows

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue um outro modo.

 

Public Function CEPLer(CEP As String) As ADODB.RecordsetDim cnCEPLer As New ADODB.ConnectionDim rsCEPLer As New ADODB.RecordsetDim gsCaminho As StringDim SQL_QUERY As StringgsCaminho = App.PathstrConexao = "File Name=" & gsCaminho & "\ADM.udl"cnCEPLer.Open strConexaoSQL_QUERY = "SELECT * FROM CEP WHERE CEP = '" & CEP & "';"With rsCEPLer   .Open SQL_QUERY, cnCEPLer	Set CEPLer = rsCEPLerEnd With'Fechando as Conexoes abertasrsCEPLer.ClosecnCEPLer.CloseSet rsCEPLer = NothingSet cnCEPLer = NothingEnd Function

 

Para chamar a função faça o seguinte

 

Dim BuscaCEP As New RecordsetSet BuscaCEP =  CEPLer("79.081-465")

Após isso basta percorrer o RecordSet BuscaCEP.

With BuscaCEP   If Not .EOF Then  	 While Not .EOF	   !Campo1 = Text1.Text	   !Campo2 = Text2.Text	   .MoveNext	 Wend   else	  MsgBox "Dados não encontrados neste CEP"   End If	End With

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.