Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Problema if


henrique-albano

Question

Boa tarde,

estou tentando a tarde inteira resolver isto, mas esta dificil, sou novato nesta area de VBA em access, então se eu disser alguma besteira me desculpem,

seguinte:

no código abaixo eu quero que na hora que a pessoa digite um código de barras ou faça a leitura pelo leitor de barcode ele já entre na tela de atualização de estoque,

o problema esta em: If cb.Value = Form!cb!Tab_Produtos­­_Fornecedor2_add Then

nesta linha eu quero dizer que Se o codigo digitado (campo cb) for igual a qualquer linha da coluna cb da tabela do fornecedor 2

For verdadeiro executa o resto do codigo, porém não esta certo essa linha de codigo

quando eu digito um código verdadeiro e clico no botão cns retorna a mensagem:

"O procedimento Property Let não foi definido e o procedimento Property Let não retornou um objeto "

Private Sub cns_Click()

If cb.Value = Form!cb!Tab_Produtos­­_Fornecedor2_add Then

DoCmd.OpenForm "Tab_Produtos­­_Fornecedor2_add", , "cb", "cb=" & cb

Else

MsgBox "Produto não cadastrado, Contate o Administrador", vbExclamation, Estoque

End If

End Sub

Desde já agradeço

Edited by henrique-albano
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

O que vem a ser isso Form!cb!Tab_Produtos­­_Fornecedor2_add? Se você quer comparar esse dado com uma tabela tem que fazer uma select

Tenta criar um módulo de Classe chamado Fornecedor

Daí usa algo assim:

Option Compare Database
Option Explicit

Private conn As ADODB.Connection
Private cmd As ADODB.Command
Private prm As ADODB.Parameter
Private rs As ADODB.Recordset

Private Sub Class_Initialize()

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

End Sub

Private Sub Class_Terminate()

cmd.ActiveConnection.Close

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

End Sub

Public Function buscaFornecedor(Optional ByVal valor As String) As Boolean

BuscaFornecedor = False

If valor = "" Or IsEmpty(valor) Or IsNull(valor) Then
GoTo Sair
End If

'Troque campoFornecedor pelo nome do campo onde tem o fornecedor
'Troque tabelaFornecedor pelo nome da tabela de fornecedores
cmd.CommandText = "SELECT campoFornecedor FROM tabelaFornecedor WHERE campoFornecedor = @Fornecedor"

'Troque o 50 em Size:=50 pelo tamanho do campo na tabela de fornecedores
Set prm = cmd.CreateParameter(Name:="@Fornecedor", Type:=adVarChar, Size:=50, Direction:=adParamInput, value:=valor)
cmd.Parameters.Append prm

On Error GoTo Erro

cmd.ActiveConnection.BeginTrans
Set rs = cmd.Execute
cmd.ActiveConnection.CommitTrans

'Se retornou algum valor na busca então o fornecedor existe
If Not(rs.BOF And rs.EOF) Then
buscaFornecedor = True
End If

Sair:
    Exit Sub
    
Erro:
    cmd.ActiveConnection.RollbackTrans
    Resume Sair

End Sub
Aí chama assim:
Private Sub cns_Click()

Dim fornec As Fornecedor
Set fornec = New Fornecedor

If fornec.buscaFornecedor(cb.Value) Then
DoCmd.OpenForm "Tab_Produtos­­_Fornecedor2_add", , "cb", "cb=" & cb
Else
MsgBox "Produto não cadastrado, Contate o Administrador", vbExclamation, Estoque
End If

End Sub

PS: Não testei

Link to comment
Share on other sites

  • 0

Iceguy,

desculpe a demora para resposta

Form!cb!Tab_Produtos­­_Fornecedor2_add

isto era para indicar o Formulario Tab_Produtos­­_Fornecedor2_add na coluna cb

:blush:

Bem Iceguy, obrigado pela tua dica, não consegui executar este codigo que você me passou, porém fiz de outra forma, minha intenção era que o usuario procurasse um produto e se este produto não estivesse cadastrado retornaria uma msgem de alerta, fiz isto de uma outra forma e deu ceto, mas mesmo assim Obrigado pela tua dica!

Abraços

Edited by henrique-albano
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...