Ir para conteúdo

Arquivado

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

Emerson Sandro

Selec com where

Recommended Posts

Esse código abaixo gera um arquivo txt tendo como base um tabela em access con o arquivo é puxado de acordo com o código de barra, se eu digito o código de barra direto, ele gera o arquivo normal, mais quando eu tento usar na linha selec uma variavel pra pegar o código de barra dentro de um formulário ele gera o arquivo em branco.

 

Private Sub Form_Load()
Dim strEan1 As String
strEan1 = "7896185932013"

Dim banco As String
Set cn = New ADODB.Connection

strArquivo = "c:\teste\sancol.mdb"
strLocal = App.Path
Set cn = CreateObject("ADODB.Connection")
banco = "Driver={Microsoft Access Driver (*.mdb)};" & _
"Dbq=" & strArquivo & ";" & _
"DefaultDir=" & strLocal & ";" & _
"Uid=Admin;Pwd=;"

cn.Open banco
'__________________________________

Dim rs As ADODB.Recordset

Set rs = CreateObject("ADODB.Recordset")
With rs
.Open "SELECT * FROM vidalink WHERE ean = ‘strEan1’", cn, adOpenKeyset, adLockOptimistic

If .RecordCount = 0 Then
MsgBox "Não existem dados cadastrados no sistema.", vbExclamation, "Erro"
Else
Open App.Path & "\" & "ney.txt" For Output As #1
Do Until rs.EOF
Print #1, rs("ean") & rs("descrição") & rs("laboratório") & rs("preço") & rs("bloqueado") & rs("pmc")

rs.MoveNext
Loop
Close #1
End If
.Close
End With
End Sub

Onde está o meu erro...

 

Emerson Sandro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu erro está nesta linha:

 

.Open "SELECT * FROM vidalink WHERE ean = ‘strEan1’", cn, adOpenKeyset, adLockOptimistic

o certo é:

 

 

.Open "SELECT * FROM vidalink WHERE ean = " & strEan1, cn, adOpenKeyset, adLockOptimistic

A variável strEan1 não pode ficar entre aspas e nem dentro da string do select, pois senão ela é tratada apenas como uma string e não como uma variável.

 

Não sei se fui claro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tambe´m não funcionou, segue abaixo o codigo inteiro:::

 

Dim cn As ADODB.Connection
Private Sub Form_Load()
Dim ean1 As String

ean1 = "7896185932013"
Dim banco As String
Set cn = New ADODB.Connection

strArquivo = "c:\teste\sancol.mdb"
strLocal = App.Path
Set cn = CreateObject("ADODB.Connection")
banco = "Driver={Microsoft Access Driver (*.mdb)};" & _
"Dbq=" & strArquivo & ";" & _
"DefaultDir=" & strLocal & ";" & _
"Uid=Admin;Pwd=;"

cn.Open banco
'__________________________________

Dim rs As ADODB.Recordset

Set rs = CreateObject("ADODB.Recordset")
With rs
.Open "SELECT * FROM vidalink WHERE ean = "& strEan1, cn, adOpenKeyset, adLockOptimistic
If .RecordCount = 0 Then
MsgBox "Não existem dados cadastrados no sistema.", vbExclamation, "Erro"
Else
Open App.Path & "\" & "ney.txt" For Output As #1
Do Until rs.EOF
Print #1, rs("ean") & rs("descrição") & rs("laboratório") & rs("preço") & rs("bloqueado") & rs("pmc")

rs.MoveNext
Loop
Close #1
End If
.Close
End With
End Sub

Emeron Sandro

Compartilhar este post


Link para o post
Compartilhar em outros sites

A variavel é "ean1" ou "strean1" ?

 

No seu código está declarada como ean1. Verifique e teste novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra coisa.

 

Se esse campo ean for texto você necessita das aspas simples.

 

 

sql = "select * from tabela where campotexto = '" & variavel_valor & "'"

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.