ERRO AO GRAVAR COM ADO
Tenho uma rotina que deve gravar vários tipos de dados em uma conexão com access.
If professor.Value = 1 Then
cmd.Parameters.Item(22).Value = True
Else
cmd.Parameters.Item(22).Value = False
End If
no final da tipo de dados incompátivel com a expressão do critério
If professor.Value = 1 Then
cmd.Parameters.Item(22).Value = True
Else
cmd.Parameters.Item(22).Value = False
End If
no final da tipo de dados incompátivel com a expressão do critério
Tenho que perguntar: Item(22) está definido como Boolean na tabela do Access? Se sim, tem que nos passar mais detalhes do código.
está sim
On Error GoTo ok
If (Trim(txtnome.Text) = [Ô][Ô]) Then
MsgBox [Ô]O campo [Ô][Ô]Nome[Ô][Ô] é de preenchimento obrigatório[Ô], vbExclamation, [Ô]Atenção[Ô]
txtnome.SetFocus
Exit Sub
End If
If (Trim(txtcpf.Text) = [Ô][Ô]) Then
MsgBox [Ô]O campo [Ô][Ô]CPF[Ô][Ô] é de preenchimento obrigatório[Ô], vbExclamation, [Ô]Atenção[Ô]
txtcpf.SetFocus
Exit Sub
End If
If (Trim(cmbDistrito.Text) = [Ô][Ô]) Then
MsgBox [Ô]O campo [Ô][Ô]Distrito[Ô][Ô] é de preenchimento obrigatório[Ô], vbExclamation, [Ô]Atenção[Ô]
cmbDistrito.SetFocus
Exit Sub
End If
If Not IsNumeric(txtnumero.Text) Then
txtnumero.Text = 0
End If
If ValuesChanged Then
Dim cmd As New ADODB.Command
Dim sql As String
Dim timestamp As Date
cmd.ActiveConnection = adoConn
timestamp = Now
If inserting Then
sql = [Ô]INSERT INTO voluntarios (nome,cpf,ativo,criacao,idcriador,data,endereco,numero,complemento,bairro,cep,cidade,telefone,email,celular,telefone2,titulo,zona,secao,iddistrito,profissao,idreligiao,idsexo,professor) VALUES (?,?,true,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)[Ô]
Else
sql = [Ô]UPDATE voluntarios SET nome=?,cpf=?,edicao=?,ideditor=?,data=?,endereco=?,numero=?,complemento=?,bairro=?,cep=?,cidade=?,telefone=?,email=?,celular=?,telefone2=?,titulo=?,zona=?,secao=?,iddistrito=?,profissao=?,idreligiao=?,idsexo=?,professor=? WHERE id=?[Ô]
End If
cmd.CommandText = sql
cmd.Parameters.Refresh
cmd.Parameters.Item(0).Value = txtnome.Text
cmd.Parameters.Item(1).Value = txtcpf.Text
cmd.Parameters.Item(2).Value = timestamp
cmd.Parameters.Item(3).Value = Val(getIdUsuario)
cmd.Parameters.Item(4).Value = txtdata.Text
cmd.Parameters.Item(5).Value = txtendereco.Text
cmd.Parameters.Item(6).Value = txtnumero.Text
cmd.Parameters.Item(7).Value = txtcomplemento.Text
cmd.Parameters.Item(8).Value = txtbairro.Text
cmd.Parameters.Item(9).Value = txtcep.Text
cmd.Parameters.Item(10).Value = txtcidade.Text
cmd.Parameters.Item(11).Value = txttelefone.Text
cmd.Parameters.Item(12).Value = txtEmail.Text
cmd.Parameters.Item(13).Value = txtCelular.Text
cmd.Parameters.Item(14).Value = txtTelefone2.Text
cmd.Parameters.Item(15).Value = txtTitulo.Text
cmd.Parameters.Item(16).Value = txtZona.Text
cmd.Parameters.Item(17).Value = txtSecao.Text
If cmbDistrito.ListIndex < 0 Then
If inserting Then
cmd.Parameters.Item(18).Value = 0
Else
cmd.Parameters.Item(18).Value = cmbDistrito.Tag
End If
Else
cmd.Parameters.Item(18).Value = cmbDistrito.ItemData(cmbDistrito.ListIndex)
End If
cmd.Parameters.Item(19).Value = txtprofissao.Text
If cmbReligiao.ListIndex < 0 Then
If inserting Then
cmd.Parameters.Item(20).Value = 0
Else
cmd.Parameters.Item(20).Value = cmbReligiao.Tag
End If
Else
cmd.Parameters.Item(20).Value = cmbReligiao.ItemData(cmbReligiao.ListIndex)
End If
If cmbSexo.ListIndex < 0 Then
If inserting Then
cmd.Parameters.Item(21).Value = 0
Else
cmd.Parameters.Item(21).Value = cmbSexo.Tag
End If
Else
cmd.Parameters.Item(21).Value = cmbSexo.ItemData(cmbSexo.ListIndex)
End If
If professor.Value = 1 Then
cmd.Parameters.Item(22).Value = True
Else
cmd.Parameters.Item(22).Value = False
End If
If Not inserting Then
cmd.Parameters.Item(23).Value = idReg
End If
adoConn.BeginTrans
cmd.Execute
adoConn.CommitTrans
MsgBox [Ô]Operação realizada com Sucesso[Ô], vbInformation, [Ô]Detalhes do Serviço[Ô]
End If
dataSaved = True
Unload Me
Exit Sub
ok:
ErrorMessage Err.Source, Erl, Err.number, Err.description, False
On Error GoTo ok
If (Trim(txtnome.Text) = [Ô][Ô]) Then
MsgBox [Ô]O campo [Ô][Ô]Nome[Ô][Ô] é de preenchimento obrigatório[Ô], vbExclamation, [Ô]Atenção[Ô]
txtnome.SetFocus
Exit Sub
End If
If (Trim(txtcpf.Text) = [Ô][Ô]) Then
MsgBox [Ô]O campo [Ô][Ô]CPF[Ô][Ô] é de preenchimento obrigatório[Ô], vbExclamation, [Ô]Atenção[Ô]
txtcpf.SetFocus
Exit Sub
End If
If (Trim(cmbDistrito.Text) = [Ô][Ô]) Then
MsgBox [Ô]O campo [Ô][Ô]Distrito[Ô][Ô] é de preenchimento obrigatório[Ô], vbExclamation, [Ô]Atenção[Ô]
cmbDistrito.SetFocus
Exit Sub
End If
If Not IsNumeric(txtnumero.Text) Then
txtnumero.Text = 0
End If
If ValuesChanged Then
Dim cmd As New ADODB.Command
Dim sql As String
Dim timestamp As Date
cmd.ActiveConnection = adoConn
timestamp = Now
If inserting Then
sql = [Ô]INSERT INTO voluntarios (nome,cpf,ativo,criacao,idcriador,data,endereco,numero,complemento,bairro,cep,cidade,telefone,email,celular,telefone2,titulo,zona,secao,iddistrito,profissao,idreligiao,idsexo,professor) VALUES (?,?,true,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)[Ô]
Else
sql = [Ô]UPDATE voluntarios SET nome=?,cpf=?,edicao=?,ideditor=?,data=?,endereco=?,numero=?,complemento=?,bairro=?,cep=?,cidade=?,telefone=?,email=?,celular=?,telefone2=?,titulo=?,zona=?,secao=?,iddistrito=?,profissao=?,idreligiao=?,idsexo=?,professor=? WHERE id=?[Ô]
End If
cmd.CommandText = sql
cmd.Parameters.Refresh
cmd.Parameters.Item(0).Value = txtnome.Text
cmd.Parameters.Item(1).Value = txtcpf.Text
cmd.Parameters.Item(2).Value = timestamp
cmd.Parameters.Item(3).Value = Val(getIdUsuario)
cmd.Parameters.Item(4).Value = txtdata.Text
cmd.Parameters.Item(5).Value = txtendereco.Text
cmd.Parameters.Item(6).Value = txtnumero.Text
cmd.Parameters.Item(7).Value = txtcomplemento.Text
cmd.Parameters.Item(8).Value = txtbairro.Text
cmd.Parameters.Item(9).Value = txtcep.Text
cmd.Parameters.Item(10).Value = txtcidade.Text
cmd.Parameters.Item(11).Value = txttelefone.Text
cmd.Parameters.Item(12).Value = txtEmail.Text
cmd.Parameters.Item(13).Value = txtCelular.Text
cmd.Parameters.Item(14).Value = txtTelefone2.Text
cmd.Parameters.Item(15).Value = txtTitulo.Text
cmd.Parameters.Item(16).Value = txtZona.Text
cmd.Parameters.Item(17).Value = txtSecao.Text
If cmbDistrito.ListIndex < 0 Then
If inserting Then
cmd.Parameters.Item(18).Value = 0
Else
cmd.Parameters.Item(18).Value = cmbDistrito.Tag
End If
Else
cmd.Parameters.Item(18).Value = cmbDistrito.ItemData(cmbDistrito.ListIndex)
End If
cmd.Parameters.Item(19).Value = txtprofissao.Text
If cmbReligiao.ListIndex < 0 Then
If inserting Then
cmd.Parameters.Item(20).Value = 0
Else
cmd.Parameters.Item(20).Value = cmbReligiao.Tag
End If
Else
cmd.Parameters.Item(20).Value = cmbReligiao.ItemData(cmbReligiao.ListIndex)
End If
If cmbSexo.ListIndex < 0 Then
If inserting Then
cmd.Parameters.Item(21).Value = 0
Else
cmd.Parameters.Item(21).Value = cmbSexo.Tag
End If
Else
cmd.Parameters.Item(21).Value = cmbSexo.ItemData(cmbSexo.ListIndex)
End If
If professor.Value = 1 Then
cmd.Parameters.Item(22).Value = True
Else
cmd.Parameters.Item(22).Value = False
End If
If Not inserting Then
cmd.Parameters.Item(23).Value = idReg
End If
adoConn.BeginTrans
cmd.Execute
adoConn.CommitTrans
MsgBox [Ô]Operação realizada com Sucesso[Ô], vbInformation, [Ô]Detalhes do Serviço[Ô]
End If
dataSaved = True
Unload Me
Exit Sub
ok:
ErrorMessage Err.Source, Erl, Err.number, Err.description, False
tente assim
If professor.Value = 1 Then
cmd.Parameters.Item(22).Value = 1
Else
cmd.Parameters.Item(22).Value = 0
End If
If professor.Value = 1 Then
cmd.Parameters.Item(22).Value = 1
Else
cmd.Parameters.Item(22).Value = 0
End If
nada feito
tente -1 para true
If professor.Value = 1 Then
cmd.Parameters.Item(22).Value = -1
Else
cmd.Parameters.Item(22).Value = 0
End If
If professor.Value = 1 Then
cmd.Parameters.Item(22).Value = -1
Else
cmd.Parameters.Item(22).Value = 0
End If
bom este código é direto no access ou em vb6
tem certeza que o problema é nesta parte do código
tem certeza que o problema é nesta parte do código
Tópico encerrado , respostas não são mais permitidas