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

(Resolvido) Problema if


henrique-albano

Pergunta

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

Editado por henrique-albano
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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

Editado por henrique-albano
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...