MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]Inserindo dados em branco no banco

    avatar
    Robert_2012
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 114
    Registrado : 07/03/2012

    [Resolvido]Inserindo dados em branco no banco Empty Inserindo dados em branco no banco

    Mensagem  Robert_2012 2/4/2012, 14:59

    Caros

    Bom dia

    Tenho o codigo para inserção de dados no banco

    os dados saem de um formulario feito em vba.

    quando um campo do form esta vazio ele me da erro.

    Como posso alterar esse código para que ele não de erro ao gravar no banco, mesmo que o meu form esteja com o campo em branco.

    sql = "INSERT INTO TBEntradas(Processo, Data_Atual, Quantidade, Canal, TipoEntrada, MesAno, UsuarioLogado, DtHrLancado, Status, Desc_Motivo_Contato, Codigo_Assinante, Codigo_CDMS_CRM)"
    sql = sql & " VALUES ("
    sql = sql & " '" & Me.CboProcesso.Value & "'"
    sql = sql & ", '" & Me.DtAtu1.Value & "'"
    sql = sql & ", '" & Me.TxtQuantidade1.Value & "'"
    sql = sql & ", '" & Me.CboCanal.Value & "'"
    sql = sql & ", '" & Me.CbTpe.Value & "'"
    sql = sql & ", '" & Me.txtmesano.Value & "'"
    sql = sql & ", '" & Me.UserLogado.Value & "'"
    sql = sql & ", '" & Now & "'"
    sql = sql & ", '" & Me.CBStatus.Value & "'"
    sql = sql & ", '" & Me.CBMotivo_Contato.Value & "'"
    sql = sql & ", '" & Me.TxtCodAssinante.Value & "'"
    sql = sql & ", '" & Me.TxtCod_CDMS_CRM.Value & "'"
    sql = sql & " )"


    avatar
    Convidad
    Convidado


    [Resolvido]Inserindo dados em branco no banco Empty Re: [Resolvido]Inserindo dados em branco no banco

    Mensagem  Convidad 2/4/2012, 15:09


    Tente usar a função Nz.

    Por exemplo: Nz(Me.CboProcesso.Value)

    Pode usar um parâmetro na função para inserir um valor alternativo caso seja Nulo:
    Nz(Me.CboProcesso.Value, 0) ou Nz(Me.CboProcesso.Value, "Não informado")
    avatar
    Robert_2012
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 114
    Registrado : 07/03/2012

    [Resolvido]Inserindo dados em branco no banco Empty Inserindo dados em branco no banco

    Mensagem  Robert_2012 2/4/2012, 15:16

    Tentei colocar no código conforme informado, mas o VBA do excel não reconhece a função NZ.

    O formulário que utilizo é feito em VBA do excel.

    Teria outra alternativa?
    avatar
    Convidad
    Convidado


    [Resolvido]Inserindo dados em branco no banco Empty Re: [Resolvido]Inserindo dados em branco no banco

    Mensagem  Convidad 2/4/2012, 15:19


    Não sabia que era Excel.
    Deve existir uma função equivalente, mas não sei informar.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Inserindo dados em branco no banco Empty Re: [Resolvido]Inserindo dados em branco no banco

    Mensagem  Alexandre Neves 2/4/2012, 19:51

    Boa tarde,

    Se o valor for nulo, o que pretende que insira?
    avatar
    Robert_2012
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 114
    Registrado : 07/03/2012

    [Resolvido]Inserindo dados em branco no banco Empty Inserindo dados em branco no banco

    Mensagem  Robert_2012 3/4/2012, 13:51

    Bom dia Alexandre,

    Gostaria que ele deixasse o campo em branco mesmo.

    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Inserindo dados em branco no banco Empty Re: [Resolvido]Inserindo dados em branco no banco

    Mensagem  Alexandre Neves 3/4/2012, 19:20

    Boa tarde, Robert

    Tente assim:
    sql = "INSERT INTO TBEntradas(DtHrLancado,"
    If Not IsNull(Me.CboProcesso.Value) Then sql=sql & "Processo,"
    If Not IsNull(Me.DtAtu1.Value) Then sql=sql & "Data_Atual,"
    If Not IsNull(Me.TxtQuantidade1.Value) Then sql=sql & "Quantidade,"
    If Not IsNull(Me.CboCanal.Value) Then sql=sql & "Canal,"
    If Not IsNull(Me.CbTpe.Value) Then sql=sql & "TipoEntrada,"
    If Not IsNull(Me.txtmesano.Value) Then sql=sql & "MesAno,"
    If Not IsNull(Me.UserLogado.Value) Then sql=sql & "UserLogado,"
    If Not IsNull(Me.CBStatus.Value) Then sql=sql & "Status,"
    If Not IsNull(Me.CBMotivo_Contato.Value) Then sql=sql & "Desc_Motivo_Contato,"
    If Not IsNull(Me.TxtCodAssinante.Value) Then sql=sql & "Codigo_Assinante,"
    If Not IsNull(Me.TxtCod_CDMS_CRM.Value) Then sql=sql & "Codigo_CDMS_CRM,"
    sql=sql & ") VALUES (Now(),"
    If Not IsNull(Me.CboProcesso.Value) Then sql = sql & "'" & Me.CboProcesso.Value & "',"
    If Not IsNull(Me.DtAtu1.Value) Then sql=sql & "'" & Me.DtAtu1.Value & "',"
    If Not IsNull(Me.TxtQuantidade1.Value) Then sql=sql & "'" & Me.TxtQuantidade1.Value & "',"
    If Not IsNull(Me.CboCanal.Value) Then sql=sql & "'" & Me.CboCanal.Value & "',"
    If Not IsNull(Me.CbTpe.Value) Then sql=sql & "'" & Me.CbTpe.Value & "',"
    If Not IsNull(Me.txtmesano.Value) Then sql=sql & "'" & Me.txtmesano.Value & "',"
    If Not IsNull(Me.UserLogado.Value) Then sql=sql & "'" & Me.UserLogado.Value & "',"
    If Not IsNull(Me.CBStatus.Value) Then sql=sql & "'" & Me.CBStatus.Value & "',"
    If Not IsNull(Me.CBMotivo_Contato.Value) Then sql=sql & "'" & Me.CBMotivo_Contato.Value & "',"
    If Not IsNull(Me.TxtCodAssinante.Value) Then sql=sql & "'" & Me.TxtCodAssinante.Value & "',"
    If Not IsNull(Me.TxtCod_CDMS_CRM.Value) Then sql=sql & "'" & Me.TxtCod_CDMS_CRM.Value & "',"
    sql=sql & ");"
    avatar
    Robert_2012
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 114
    Registrado : 07/03/2012

    [Resolvido]Inserindo dados em branco no banco Empty Inserindo dados em branco no banco

    Mensagem  Robert_2012 4/4/2012, 12:46

    Alexandre,

    Bom dia

    Esta dando erro de sintaxe na instrução INSERT INTO

    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Inserindo dados em branco no banco Empty Re: [Resolvido]Inserindo dados em branco no banco

    Mensagem  Alexandre Neves 4/4/2012, 16:32

    Boa tarde,

    Se a expressão que indicou funcionar com os campos preenchidos, a que adaptei deve funcionar com campos em branco.
    Deve averiguar onde estará o erro. Parece-me que tem campos tipo data que não utiliza o cardinal (#) para introduzir valor. Pode ser outro erro. Veja, passo-a-passo, onde estará o erro
    avatar
    Robert_2012
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 114
    Registrado : 07/03/2012

    [Resolvido]Inserindo dados em branco no banco Empty Inserindo dados em branco no banco

    Mensagem  Robert_2012 4/4/2012, 18:52

    Boa tarde,

    O código agora esta funcionando da forma abaixo.

    Ele apenas me da erro se eu deixar o campo de quantidade vazio, mas isso não pode acontecer, pois sempre tem que ter uma quantidade.

    O campo Quantidade esta definido na tabela como número.

    Será que é por isso que da o erro?

    Mas já esta me ajudando muito, pois coloquei um check na hora de gravar para ver se o campo de quantidade esta vazio, se estiver ele para o processamento da macro.


    sql = "INSERT INTO TBEntradas(Processo, Data_Atual, Quantidade, Canal, TipoEntrada, MesAno, UsuarioLogado, DtHrLancado, Desc_Motivo_Contato, Codigo_Assinante, Operador, Empresa)"
    sql = sql & " VALUES ("
    If Not IsNull(Me.CboProcesso.Value) Then sql = sql & " '" & Me.CboProcesso.Value & "'"
    If Not IsNull(Me.DtAtu1.Value) Then sql = sql & ", '" & Me.DtAtu1.Value & "'"
    If Not IsNull(Me.TxtQuantidade1.Value) Then sql = sql & ", '" & Me.TxtQuantidade1.Value & "'"
    If Not IsNull(Me.CboCanal.Value) Then sql = sql & ", '" & Me.CboCanal.Value & "'"
    If Not IsNull(Me.CbTpe.Value) Then sql = sql & ", '" & Me.CbTpe.Value & "'"
    If Not IsNull(Me.txtmesano.Value) Then sql = sql & ", '" & Me.txtmesano.Value & "'"
    If Not IsNull(Me.UserLogado.Value) Then sql = sql & ", '" & Me.UserLogado.Value & "'"
    sql = sql & ", '" & Now & "'"
    If Not IsNull(Me.CBMotivo_Contato.Value) Then sql = sql & ", '" & Me.CBMotivo_Contato.Value & "'"
    If Not IsNull(Me.TxtCodAssinante.Value) Then sql = sql & ", '" & Me.TxtCodAssinante.Value & "'"
    sql = sql & ", '" & Rsusuario & "'"
    sql = sql & ", '" & Rsusuario1 & "'"
    sql = sql & " )"
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Inserindo dados em branco no banco Empty Re: [Resolvido]Inserindo dados em branco no banco

    Mensagem  Alexandre Neves 4/4/2012, 19:14

    Estranho o código aceitar falta dos parâmetros nulos.
    Mas, se funciona, utilize
    sql = "INSERT INTO TBEntradas(Processo, Data_Atual, Quantidade, Canal, TipoEntrada, MesAno, UsuarioLogado, DtHrLancado, Desc_Motivo_Contato, Codigo_Assinante, Operador, Empresa)"
    sql = sql & " VALUES ("
    If Not IsNull(Me.CboProcesso.Value) Then sql = sql & " '" & Me.CboProcesso.Value & "'"
    If Not IsNull(Me.DtAtu1.Value) Then sql = sql & ", '" & Me.DtAtu1.Value & "'"
    If Not IsNull(Me.TxtQuantidade1.Value) Then sql = sql & ", " & Me.TxtQuantidade1.Value
    If Not IsNull(Me.CboCanal.Value) Then sql = sql & ", '" & Me.CboCanal.Value & "'"
    If Not IsNull(Me.CbTpe.Value) Then sql = sql & ", '" & Me.CbTpe.Value & "'"
    If Not IsNull(Me.txtmesano.Value) Then sql = sql & ", '" & Me.txtmesano.Value & "'"
    If Not IsNull(Me.UserLogado.Value) Then sql = sql & ", '" & Me.UserLogado.Value & "'"
    sql = sql & ", '" & Now & "'"
    If Not IsNull(Me.CBMotivo_Contato.Value) Then sql = sql & ", '" & Me.CBMotivo_Contato.Value & "'"
    If Not IsNull(Me.TxtCodAssinante.Value) Then sql = sql & ", '" & Me.TxtCodAssinante.Value & "'"
    sql = sql & ", '" & Rsusuario & "'"
    sql = sql & ", '" & Rsusuario1 & "'"
    sql = sql & " )"
    avatar
    Robert_2012
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 114
    Registrado : 07/03/2012

    [Resolvido]Inserindo dados em branco no banco Empty Re: [Resolvido]Inserindo dados em branco no banco

    Mensagem  Robert_2012 4/4/2012, 19:47

    Ok

    Agora deu certo, muito obrigado pela Ajuda.

    Conteúdo patrocinado


    [Resolvido]Inserindo dados em branco no banco Empty Re: [Resolvido]Inserindo dados em branco no banco

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 23:24