CHECKBOX
Tenho um banco de dados access, e preciso fazer un insert de tres checkbx, nunca trabalhei com checkbox, alguem poderia me ajudar???
Desdej a agradeço...
Desdej a agradeço...
como estao definidos os campos no BD?
mesmo q esteja em modo texto, vc pode verificar se esta marcado, insere uma valor tipo 1, true, algo q vc determine como marcado, assim como se estiver desmarcado, pode ser 0, false e assim vai....um valor vc tera pra marcado e outro desmarcado
mesmo q esteja em modo texto, vc pode verificar se esta marcado, insere uma valor tipo 1, true, algo q vc determine como marcado, assim como se estiver desmarcado, pode ser 0, false e assim vai....um valor vc tera pra marcado e outro desmarcado
Os campos estão defnidos como sim/não, ais minha duvida é na instrução SQL.
Cara se vc tem 3 checkboxes no seu form tente fazer este exemplo:
a partir daà você pode construir sua string SQL com os valores das variáveis.
exemplo:
Dim Opcao1, Opcao2, Opcao3 As Boolean
For Each Opcao As CheckBox In Me.Controls.OfType(Of CheckBox)
[txt-color=#0000f0]Select Case[/txt-color] Opcao.Name
Case [txt-color=#e80000][Ô]CheckBox1[Ô][/txt-color]
If Opcao.Checked Then Opcao1 = True Else Opcao1 = False
Case [txt-color=#e80000][Ô]CheckBox2[Ô][/txt-color]
If Opcao.Checked Then Opcao2 = True Else Opcao2 = False
Case [txt-color=#e80000][Ô]CheckBox3[Ô][/txt-color]
If Opcao.Checked Then Opcao3 = True Else Opcao3 = False
[txt-color=#0000f0]End Select[/txt-color]
Exit For
a partir daà você pode construir sua string SQL com os valores das variáveis.
exemplo:
Dim strSQL As String = [txt-color=#e80000][Ô]UPDATE tblColaboradores SET PagtoSalario = [Ô][/txt-color] & Opcao1 & [txt-color=#e80000][Ô], Vale = [Ô][/txt-color] & Opcao2 & [txt-color=#e80000][Ô], AuxPassagem = [Ô][/txt-color] & Opcao3
Estou ntentando fazer assim mais da erro de dados incompativeis na expressao de criterios:
Private Sub incluir()
Dim Con As New OleDbConnection
Con.ConnectionString = My.Settings.CNS1
Try
Con.Open()
Catch ex As Exception
MessageBox.Show([Ô]Erro ao tentar acessar conexão com o Banco de Dados.[Ô] & ex.Message)
Return
End Try
Dim Comando As New OleDbCommand
Comando.CommandText = [Ô]INSERT INTO CadMotorista ( Nome, Cidade, TelFixo, TelCel, Observacao, EscAnterior, DataApresentacao, Vencimento_CNH, Contrato, Escalado, 1Safra, NaoPegar )[Ô] & _
[Ô] VALUES ( @Nome, @Cidade, @TelFixo, @TelCel, @Observacao, @EscAnterior, @DataApresentacao, @Vencimento_CNH, @Contrato, @Escalado, @1Safra, @NaoPegar )[Ô]
Comando.Parameters.Clear()
Comando.Parameters.Add([Ô]@Nome[Ô], OleDbType.VarChar, 40).Value = txtNome.Text
Comando.Parameters.Add([Ô]@Cidade[Ô], OleDbType.VarChar, 40).Value = txtCidade.Text
Comando.Parameters.Add([Ô]@TelFixo[Ô], OleDbType.VarChar, 15).Value = mskTelFixo.Text
Comando.Parameters.Add([Ô]@TelCel[Ô], OleDbType.VarChar, 15).Value = mskTelCel.Text
Comando.Parameters.Add([Ô]@Observacao[Ô], OleDbType.VarChar, 255).Value = txtObsrv.Text
Comando.Parameters.Add([Ô]@EscAnterior[Ô], OleDbType.VarChar, 10).Value = txtEscAnt.Text
Comando.Parameters.Add([Ô]@DataApresentacao[Ô], OleDbType.VarChar, 12).Value = dtApresentacao.Text
Comando.Parameters.Add([Ô]@Vencimento_CNH[Ô], OleDbType.VarChar, 12).Value = mskVencCNH.Text
Comando.Parameters.Add([Ô]@Contrato[Ô], OleDbType.VarChar, 10).Value = cmbTipoContr.Text
Comando.Parameters.Add([Ô]@Escalado[Ô], OleDbType.Boolean, 1).Value = CheckBox1.Checked
Comando.Parameters.Add([Ô]@1Safra[Ô], OleDbType.Boolean, 1).Value = CheckBox2.Checked
Comando.Parameters.Add([Ô]@NaoPegar[Ô], OleDbType.Boolean, 1).Value = CheckBox3.Checked
Comando.CommandType = CommandType.Text
Comando.Connection = Con
Dim c As Integer
Try
c = Comando.ExecuteNonQuery
Catch ex As Exception
MessageBox.Show([Ô]Confira se todos os campos estão preenchidos.[Ô] & ex.Message)
Return
End Try
MessageBox.Show(String.Format([Ô]Registro inserido com Sucesso. - {0} registros [Ô], c))
End Sub
Private Sub incluir()
Dim Con As New OleDbConnection
Con.ConnectionString = My.Settings.CNS1
Try
Con.Open()
Catch ex As Exception
MessageBox.Show([Ô]Erro ao tentar acessar conexão com o Banco de Dados.[Ô] & ex.Message)
Return
End Try
Dim Comando As New OleDbCommand
Comando.CommandText = [Ô]INSERT INTO CadMotorista ( Nome, Cidade, TelFixo, TelCel, Observacao, EscAnterior, DataApresentacao, Vencimento_CNH, Contrato, Escalado, 1Safra, NaoPegar )[Ô] & _
[Ô] VALUES ( @Nome, @Cidade, @TelFixo, @TelCel, @Observacao, @EscAnterior, @DataApresentacao, @Vencimento_CNH, @Contrato, @Escalado, @1Safra, @NaoPegar )[Ô]
Comando.Parameters.Clear()
Comando.Parameters.Add([Ô]@Nome[Ô], OleDbType.VarChar, 40).Value = txtNome.Text
Comando.Parameters.Add([Ô]@Cidade[Ô], OleDbType.VarChar, 40).Value = txtCidade.Text
Comando.Parameters.Add([Ô]@TelFixo[Ô], OleDbType.VarChar, 15).Value = mskTelFixo.Text
Comando.Parameters.Add([Ô]@TelCel[Ô], OleDbType.VarChar, 15).Value = mskTelCel.Text
Comando.Parameters.Add([Ô]@Observacao[Ô], OleDbType.VarChar, 255).Value = txtObsrv.Text
Comando.Parameters.Add([Ô]@EscAnterior[Ô], OleDbType.VarChar, 10).Value = txtEscAnt.Text
Comando.Parameters.Add([Ô]@DataApresentacao[Ô], OleDbType.VarChar, 12).Value = dtApresentacao.Text
Comando.Parameters.Add([Ô]@Vencimento_CNH[Ô], OleDbType.VarChar, 12).Value = mskVencCNH.Text
Comando.Parameters.Add([Ô]@Contrato[Ô], OleDbType.VarChar, 10).Value = cmbTipoContr.Text
Comando.Parameters.Add([Ô]@Escalado[Ô], OleDbType.Boolean, 1).Value = CheckBox1.Checked
Comando.Parameters.Add([Ô]@1Safra[Ô], OleDbType.Boolean, 1).Value = CheckBox2.Checked
Comando.Parameters.Add([Ô]@NaoPegar[Ô], OleDbType.Boolean, 1).Value = CheckBox3.Checked
Comando.CommandType = CommandType.Text
Comando.Connection = Con
Dim c As Integer
Try
c = Comando.ExecuteNonQuery
Catch ex As Exception
MessageBox.Show([Ô]Confira se todos os campos estão preenchidos.[Ô] & ex.Message)
Return
End Try
MessageBox.Show(String.Format([Ô]Registro inserido com Sucesso. - {0} registros [Ô], c))
End Sub
Tenta assim
Não me lembro muito bem se esta correto mais espero ter ajudado
Private Sub incluir()
Dim Con As New OleDbConnection
Con.ConnectionString = My.Settings.CNS1
Try
Con.Open()
Catch ex As Exception
MessageBox.Show([Ô]Erro ao tentar acessar conexão com o Banco de Dados.[Ô] & ex.Message)
Return
End Try
Dim CheckEscalado as Boolean
Dim Check1Safra as Boolean
Dim CheckNaoPagar as Boolean
If (CheckBox1.Checked) Then CheckEscalado = True Else CheckEscalado = False
If (CheckBox2.Checked) Then Check1Safra = True Else Check1Safra = False
If (CheckBox3.Checked) Then CheckNaoPagar = True Else CheckNaoPagar = False
Dim Comando As New OleDbCommand
Comando.CommandText = [Ô]INSERT INTO CadMotorista (Nome,Cidade,TelFixo,TelCel,Observacao,EscAnterior,DataApresentacao,[Ô] & _
[Ô]Vencimento_CNH,Contrato,Escalado,1Safra,NaoPegar ) VALUES (@Nome,@Cidade,@TelFixo,[Ô] & _
[Ô]@TelCel,@Observacao,@EscAnterior,@DataApresentacao,@Vencimento_CNH,@Contrato,[Ô] & _
[Ô]@Escalado, @1Safra, @NaoPegar )[Ô]
Comando.Parameters.Clear()
Comando.Parameters.Add([Ô]@Nome[Ô], txtNome.Text)
Comando.Parameters.Add([Ô]@Cidade[Ô], txtCidade.Text)
Comando.Parameters.Add([Ô]@TelFixo[Ô], mskTelFixo.Text)
Comando.Parameters.Add([Ô]@TelCel[Ô], mskTelCel.Text)
Comando.Parameters.Add([Ô]@Observacao[Ô], txtObsrv.Text)
Comando.Parameters.Add([Ô]@EscAnterior[Ô], txtEscAnt.Text)
Comando.Parameters.Add([Ô]@DataApresentacao[Ô], dtApresentacao.Text)
Comando.Parameters.Add([Ô]@Vencimento_CNH[Ô], mskVencCNH.Text)
Comando.Parameters.Add([Ô]@Contrato[Ô], cmbTipoContr.Text)
Comando.Parameters.Add([Ô]@Escalado[Ô], CheckEscalado)
Comando.Parameters.Add([Ô]@1Safra[Ô], Check1Safra)
Comando.Parameters.Add([Ô]@NaoPegar[Ô], CheckNaoPagar)
Comando.CommandType = CommandType.Text
Comando.Connection = Con
Dim c As Integer
Try
c = Comando.ExecuteNonQuery
Catch ex As Exception
MessageBox.Show([Ô]Confira se todos os campos estão preenchidos.[Ô] & ex.Message)
Return
End Try
MessageBox.Show(String.Format([Ô]Registro inserido com Sucesso. - {0} registros [Ô], c))
End Sub
Não me lembro muito bem se esta correto mais espero ter ajudado
Ola companheiro Filman,
dá o msm ERRO,
obrigado pela ajuda, se tiver mais alguma dica, não despenso.
dá o msm ERRO,
obrigado pela ajuda, se tiver mais alguma dica, não despenso.
Citação::
Tenta assimPrivate Sub incluir()
Dim Con As New OleDbConnection
Con.ConnectionString = My.Settings.CNS1
Try
Con.Open()
Catch ex As Exception
MessageBox.Show([Ô]Erro ao tentar acessar conexão com o Banco de Dados.[Ô] & ex.Message)
Return
End Try
Dim CheckEscalado as Boolean
Dim Check1Safra as Boolean
Dim CheckNaoPagar as Boolean
If (CheckBox1.Checked) Then CheckEscalado = True Else CheckEscalado = False
If (CheckBox2.Checked) Then Check1Safra = True Else Check1Safra = False
If (CheckBox3.Checked) Then CheckNaoPagar = True Else CheckNaoPagar = False
Dim Comando As New OleDbCommand
Comando.CommandText = [Ô]INSERT INTO CadMotorista (Nome,Cidade,TelFixo,TelCel,Observacao,EscAnterior,DataApresentacao,[Ô] & _
[Ô]Vencimento_CNH,Contrato,Escalado,1Safra,NaoPegar ) VALUES (@Nome,@Cidade,@TelFixo,[Ô] & _
[Ô]@TelCel,@Observacao,@EscAnterior,@DataApresentacao,@Vencimento_CNH,@Contrato,[Ô] & _
[Ô]@Escalado, @1Safra, @NaoPegar )[Ô]
Comando.Parameters.Clear()
Comando.Parameters.Add([Ô]@Nome[Ô], txtNome.Text)
Comando.Parameters.Add([Ô]@Cidade[Ô], txtCidade.Text)
Comando.Parameters.Add([Ô]@TelFixo[Ô], mskTelFixo.Text)
Comando.Parameters.Add([Ô]@TelCel[Ô], mskTelCel.Text)
Comando.Parameters.Add([Ô]@Observacao[Ô], txtObsrv.Text)
Comando.Parameters.Add([Ô]@EscAnterior[Ô], txtEscAnt.Text)
Comando.Parameters.Add([Ô]@DataApresentacao[Ô], dtApresentacao.Text)
Comando.Parameters.Add([Ô]@Vencimento_CNH[Ô], mskVencCNH.Text)
Comando.Parameters.Add([Ô]@Contrato[Ô], cmbTipoContr.Text)
Comando.Parameters.Add([Ô]@Escalado[Ô], CheckEscalado)
Comando.Parameters.Add([Ô]@1Safra[Ô], Check1Safra)
Comando.Parameters.Add([Ô]@NaoPegar[Ô], CheckNaoPagar)
Comando.CommandType = CommandType.Text
Comando.Connection = Con
Dim c As Integer
Try
c = Comando.ExecuteNonQuery
Catch ex As Exception
MessageBox.Show([Ô]Confira se todos os campos estão preenchidos.[Ô] & ex.Message)
Return
End Try
MessageBox.Show(String.Format([Ô]Registro inserido com Sucesso. - {0} registros [Ô], c))
End Sub
Não me lembro muito bem se esta correto mais espero ter ajudado
Companheiro deu o msm ERRO, OK, se tiver mais alguma dica.
Mande ai.
E assim vê se funciona
Verifica tbm se os campos da tabela correspondem aos que estão sendo atribuidos
espero que dessa vez funcione
Private Sub incluir()
Dim Con As New OleDbConnection
Con.ConnectionString = My.Settings.CNS1
Dim CheckEscalado as Boolean
Dim Check1Safra as Boolean
Dim CheckNaoPagar as Boolean
If (CheckBox1.Checked) Then CheckEscalado = True Else CheckEscalado = False
If (CheckBox2.Checked) Then Check1Safra = True Else Check1Safra = False
If (CheckBox3.Checked) Then CheckNaoPagar = True Else CheckNaoPagar = False
Dim SQL as String
SQL = [Ô]INSERT INTO CadMotorista (Nome,Cidade,TelFixo,TelCel,Observacao,EscAnterior,DataApresentacao,[Ô]
SQL = SQL & [Ô]Vencimento_CNH,Contrato,Escalado,1Safra,NaoPegar) VALUES (@Nome,@Cidade,@TelFixo,[Ô]
SQL = SQL & [Ô]@TelCel,@Observacao,@EscAnterior,@DataApresentacao,@Vencimento_CNH,@Contrato,[Ô]
SQL = SQL & [Ô]@Escalado, @1Safra, @NaoPegar )[Ô]
Dim Comando As New OleDbCommand(SQL, Con)
Comando.Parameters.Add(New OleDbParameter([Ô]@Nome[Ô], txtNome.Text))
Comando.Parameters.Add(New OleDbParameter([Ô]@Cidade[Ô], txtCidade.Text))
Comando.Parameters.Add(New OleDbParameter([Ô]@TelFixo[Ô], mskTelFixo.Text))
Comando.Parameters.Add(New OleDbParameter([Ô]@TelCel[Ô], mskTelCel.Text))
Comando.Parameters.Add(New OleDbParameter([Ô]@Observacao[Ô], txtObsrv.Text))
Comando.Parameters.Add(New OleDbParameter([Ô]@EscAnterior[Ô], txtEscAnt.Text))
Comando.Parameters.Add(New OleDbParameter([Ô]@DataApresentacao[Ô], dtApresentacao.Text))
Comando.Parameters.Add(New OleDbParameter([Ô]@Vencimento_CNH[Ô], mskVencCNH.Text))
Comando.Parameters.Add(New OleDbParameter([Ô]@Contrato[Ô], cmbTipoContr.Text))
Comando.Parameters.Add(New OleDbParameter([Ô]@Escalado[Ô], CheckEscalado))
Comando.Parameters.Add(New OleDbParameter([Ô]@1Safra[Ô], Check1Safra))
Comando.Parameters.Add(New OleDbParameter([Ô]@NaoPegar[Ô], CheckNaoPagar))
Con.Open()
Try
Dim c As Integer = Comando.ExecuteNonQuery()
Catch ex As Exception
MessageBox.Show([Ô]Confira se todos os campos estão preenchidos.[Ô] & ex.Message)
Return
End Try
MessageBox.Show(String.Format([Ô]Registro inserido com Sucesso. - {0} registros [Ô], c))
End Sub
Verifica tbm se os campos da tabela correspondem aos que estão sendo atribuidos
espero que dessa vez funcione
OLA A TODOS, DEPOIS DE RACHAR A CABEÇA NO MEIO, CONSEGUI ASSIM, MAIS MUDEI O FORMATO NO bd, MAIS DEU CERTO, E AGRADEÇO ATODOS DO FORUM.
Private Sub incluir()
Dim Con As New OleDbConnection
Con.ConnectionString = My.Settings.CNS1
Try
Con.Open()
Catch ex As Exception
MessageBox.Show([Ô]Erro ao tentar acessar conexão com o Banco de Dados.[Ô] & ex.Message)
Return
End Try
Dim Comando As New OleDbCommand
Comando.CommandText = [Ô]INSERT INTO CadMotorista ( Nome, Cidade, TelFixo, TelCel, Observacao, EscAnterior, DataApresentacao, Vencimento_CNH, Contrato, Escalado, 1Safra, NaoPegar )[Ô] & _
[Ô] VALUES ( @Nome, @Cidade, @TelFixo, @TelCel, @Observacao, @EscAnterior, @DataApresentacao, @Vencimento_CNH, @Contrato, @Escalado, @1Safra, @NaoPegar )[Ô]
Comando.Parameters.Clear()
Comando.Parameters.Add([Ô]@Nome[Ô], OleDbType.VarChar, 40).Value = txtNome.Text
Comando.Parameters.Add([Ô]@Cidade[Ô], OleDbType.VarChar, 40).Value = txtCidade.Text
Comando.Parameters.Add([Ô]@TelFixo[Ô], OleDbType.VarChar, 15).Value = mskTelFixo.Text
Comando.Parameters.Add([Ô]@TelCel[Ô], OleDbType.VarChar, 15).Value = mskTelCel.Text
Comando.Parameters.Add([Ô]@Observacao[Ô], OleDbType.VarChar, 255).Value = txtObsrv.Text
Comando.Parameters.Add([Ô]@EscAnterior[Ô], OleDbType.VarChar, 10).Value = txtEscAnt.Text
Comando.Parameters.Add([Ô]@DataApresentacao[Ô], OleDbType.VarChar, 12).Value = dtApresentacao.Text
Comando.Parameters.Add([Ô]@Vencimento_CNH[Ô], OleDbType.VarChar, 12).Value = mskVencCNH.Text
Comando.Parameters.Add([Ô]@Contrato[Ô], OleDbType.VarChar, 10).Value = cmbTipoContr.Text
Comando.Parameters.Add([Ô]@Escalado[Ô], OleDbType.Boolean, 1).Value = CheckBox1.Checked
Comando.Parameters.Add([Ô]@1Safra[Ô], OleDbType.Boolean, 1).Value = CheckBox2.Checked
Comando.Parameters.Add([Ô]@NaoPegar[Ô], OleDbType.Boolean, 1).Value = CheckBox3.Checked
Comando.CommandType = CommandType.Text
Comando.Connection = Con
Dim c As Integer
Try
c = Comando.ExecuteNonQuery
Catch ex As Exception
MessageBox.Show([Ô]Confira se todos os campos estão preenchidos.[Ô] & ex.Message)
Return
End Try
MessageBox.Show(String.Format([Ô]Registro inserido com Sucesso. - {0} registros [Ô], c))
End Sub
Private Sub incluir()
Dim Con As New OleDbConnection
Con.ConnectionString = My.Settings.CNS1
Try
Con.Open()
Catch ex As Exception
MessageBox.Show([Ô]Erro ao tentar acessar conexão com o Banco de Dados.[Ô] & ex.Message)
Return
End Try
Dim Comando As New OleDbCommand
Comando.CommandText = [Ô]INSERT INTO CadMotorista ( Nome, Cidade, TelFixo, TelCel, Observacao, EscAnterior, DataApresentacao, Vencimento_CNH, Contrato, Escalado, 1Safra, NaoPegar )[Ô] & _
[Ô] VALUES ( @Nome, @Cidade, @TelFixo, @TelCel, @Observacao, @EscAnterior, @DataApresentacao, @Vencimento_CNH, @Contrato, @Escalado, @1Safra, @NaoPegar )[Ô]
Comando.Parameters.Clear()
Comando.Parameters.Add([Ô]@Nome[Ô], OleDbType.VarChar, 40).Value = txtNome.Text
Comando.Parameters.Add([Ô]@Cidade[Ô], OleDbType.VarChar, 40).Value = txtCidade.Text
Comando.Parameters.Add([Ô]@TelFixo[Ô], OleDbType.VarChar, 15).Value = mskTelFixo.Text
Comando.Parameters.Add([Ô]@TelCel[Ô], OleDbType.VarChar, 15).Value = mskTelCel.Text
Comando.Parameters.Add([Ô]@Observacao[Ô], OleDbType.VarChar, 255).Value = txtObsrv.Text
Comando.Parameters.Add([Ô]@EscAnterior[Ô], OleDbType.VarChar, 10).Value = txtEscAnt.Text
Comando.Parameters.Add([Ô]@DataApresentacao[Ô], OleDbType.VarChar, 12).Value = dtApresentacao.Text
Comando.Parameters.Add([Ô]@Vencimento_CNH[Ô], OleDbType.VarChar, 12).Value = mskVencCNH.Text
Comando.Parameters.Add([Ô]@Contrato[Ô], OleDbType.VarChar, 10).Value = cmbTipoContr.Text
Comando.Parameters.Add([Ô]@Escalado[Ô], OleDbType.Boolean, 1).Value = CheckBox1.Checked
Comando.Parameters.Add([Ô]@1Safra[Ô], OleDbType.Boolean, 1).Value = CheckBox2.Checked
Comando.Parameters.Add([Ô]@NaoPegar[Ô], OleDbType.Boolean, 1).Value = CheckBox3.Checked
Comando.CommandType = CommandType.Text
Comando.Connection = Con
Dim c As Integer
Try
c = Comando.ExecuteNonQuery
Catch ex As Exception
MessageBox.Show([Ô]Confira se todos os campos estão preenchidos.[Ô] & ex.Message)
Return
End Try
MessageBox.Show(String.Format([Ô]Registro inserido com Sucesso. - {0} registros [Ô], c))
End Sub
Tópico encerrado , respostas não são mais permitidas