none
GAVAR CHECKBOX EM BANCO ACCESS RRS feed

  • Pergunta

  • Caros,

    Estou tentando gravar um checkbox no banco de dados mas esta dando erro.

    Tipo de dados Incompatíveis

    sql = "INSERT INTO Usuarios(Nivel, CPF, Nome, Empresa, Status, Cadastro_Pessoas, Cadastrado_Por, Data_Cadastro)"
        sql = sql & " VALUES ("
        sql = sql & " '" & Me.CBNivel.Value & "'"
        sql = sql & ", '" & UCase(Me.Txt_CPF.Value) & "'"
        sql = sql & ", '" & UCase(Me.Txt_Nome.Value) & "'"
        sql = sql & ", '" & UCase(Me.Txt_Empresa.Value) & "'"
        sql = sql & ", '" & UCase(Me.Txt_Status.Value) & "'"
        sql = sql & ", '" & Me.CheckBox1.Value & "'"
        sql = sql & ", '" & Me.UserLogado.Value & "'"
        sql = sql & ", '" & Now & "'"
        sql = sql & " )"

    Meu campo no banco esta como tipo de dados  Sim/Não


    domingo, 29 de abril de 2018 01:50

Todas as Respostas

  • Experimente criar uma variável para armazenar o valor do checkbox. Algo mais ou menos assim:

        Dim CadPes As Boolean
        
        CadPes = VBA.IIf(CheckBox1.Value, True, False)
        
        Sql = "INSERT INTO Usuarios(Nivel, CPF, Nome, Empresa, Status, Cadastro_Pessoas, Cadastrado_Por, Data_Cadastro)"
        Sql = Sql & " VALUES ("
        Sql = Sql & " '" & Me.CBNivel.Value & "'"
        Sql = Sql & ", '" & UCase(Me.Txt_CPF.Value) & "'"
        Sql = Sql & ", '" & UCase(Me.Txt_Nome.Value) & "'"
        Sql = Sql & ", '" & UCase(Me.Txt_Empresa.Value) & "'"
        Sql = Sql & ", '" & UCase(Me.Txt_Status.Value) & "'"
        Sql = Sql & ", '" & CadPes & "'"
        Sql = Sql & ", '" & Me.UserLogado.Value & "'"
        Sql = Sql & ", '" & Now & "'"
        Sql = Sql & " )"


    Click em propor como resposta se foi util a voce. ricardodm@outlook.com.br

    domingo, 29 de abril de 2018 03:16
  • Ricardo,

    Continua dando a mesma mensagem de erro.

    Tipo de dado incompatível na expressão de critério.

    domingo, 29 de abril de 2018 03:37
  • O campo Data_Cadastro está configurado como no banco, se for data qual o formato?  

    Experimente retirar as aspas simples da variável. 

        Dim CadPes As Boolean
        
        CadPes = VBA.IIf(CheckBox1.Value, True, False)
        
        Sql = "INSERT INTO Usuarios(Nivel, CPF, Nome, Empresa, Status, Cadastro_Pessoas, Cadastrado_Por, Data_Cadastro)"
        Sql = Sql & " VALUES ("
        Sql = Sql & " '" & Me.CBNivel.Value & "'"
        Sql = Sql & ", '" & UCase(Me.Txt_CPF.Value) & "'"
        Sql = Sql & ", '" & UCase(Me.Txt_Nome.Value) & "'"
        Sql = Sql & ", '" & UCase(Me.Txt_Empresa.Value) & "'"
        Sql = Sql & ", '" & UCase(Me.Txt_Status.Value) & "'"
        Sql = Sql & ", " & CadPes & ""
        Sql = Sql & ", '" & Me.UserLogado.Value & "'"
        Sql = Sql & ", '" & Now & "'"
        Sql = Sql & " )"


    Click em propor como resposta se foi util a voce. ricardodm@outlook.com.br


    • Editado Ricardo Vba domingo, 29 de abril de 2018 03:48
    domingo, 29 de abril de 2018 03:43
  • Esta conforme imagem abaixo.

    

    domingo, 29 de abril de 2018 03:52
  • Não sei se será por esta razão, mas:

    O "Value" de Checkbox apenas é "True" ou "False".

    Penso pois que deves utilizar a expressão:

    sql = sql & ", '" & Me.CheckBox1.Caption & "'"


    Marca como resposta se resolver a tua questão.

    M_A_S_L




    • Editado M_A_S_L domingo, 29 de abril de 2018 11:14
    domingo, 29 de abril de 2018 11:11
  • Bom dia

    Ainda não deu certo.

    domingo, 29 de abril de 2018 12:59
  • Rc_Fields, chegou a testar, desta forma, retirando as aspas simples da Checkbox?  

           
        Sql = "INSERT INTO Usuarios(Nivel, CPF, Nome, Empresa, Status, Cadastro_Pessoas, Cadastrado_Por, Data_Cadastro)"
        Sql = Sql & " VALUES ("
        Sql = Sql & " '" & Me.CBNivel.Value & "'"
        Sql = Sql & ", '" & UCase(Me.Txt_CPF.Value) & "'"
        Sql = Sql & ", '" & UCase(Me.Txt_Nome.Value) & "'"
        Sql = Sql & ", '" & UCase(Me.Txt_Empresa.Value) & "'"
        Sql = Sql & ", '" & UCase(Me.Txt_Status.Value) & "'"
        Sql = Sql & ", " & CheckBox1.Value
        Sql = Sql & ", '" & Me.UserLogado.Value & "'"
        Sql = Sql & ", '" & Now & "'"
        Sql = Sql & " )"

    Click em propor como resposta se foi util a voce. ricardodm@outlook.com.br


    • Editado Ricardo Vba domingo, 29 de abril de 2018 13:32
    domingo, 29 de abril de 2018 13:31
  • sim teste mas não deu certo também.
    segunda-feira, 30 de abril de 2018 02:39