CHECKBOX

EDISIMOES 09/01/2012 19:15:15
#392758
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...
NICKOSOFT 10/01/2012 06:54:35
#392766
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
EDISIMOES 10/01/2012 06:57:48
#392767
Os campos estão defnidos como sim/não, ais minha duvida é na instrução SQL.
PEGUDO 10/01/2012 09:31:55
#392781
Cara se vc tem 3 checkboxes no seu form tente fazer este 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
EDISIMOES 11/01/2012 08:58:46
#392922
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
FILMAN 11/01/2012 16:36:40
#392963
Resposta escolhida
Tenta assim

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
EDISIMOES 11/01/2012 20:30:16
#392988
Ola companheiro Filman,
dá o msm ERRO,
obrigado pela ajuda, se tiver mais alguma dica, não despenso.
EDISIMOES 11/01/2012 20:32:22
#392989
Citação:

:
Tenta assim

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





Companheiro deu o msm ERRO, OK, se tiver mais alguma dica.
Mande ai.
FILMAN 12/01/2012 00:39:55
#393003
E assim vê se funciona

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
EDISIMOES 12/01/2012 09:05:59
#393020
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
Tópico encerrado , respostas não são mais permitidas