Visual Basic - Error Createparameter adBoolean

Life is soft - evento anual de software empresarial
   
Vista:

Error Createparameter adBoolean

Publicado por walter (3 intervenciones) el 25/02/2016 20:56:46
Buenas,
estoy aprendiendo a programar en visual basic, tengo el siguiente codigo para inserta una tabla en access 2010 usando parametros, pero cuando ejecuto el codigo me sale un error en tiempo de ejecucion que me dice "No coinciden los tipos de datos en la expresion de criterios"

la tabla en access tiene los siguientes campos
Campo1 Numero Entero largo
Campo2 Texto 255
Campo3 Numero Entero Largo
Campo4 Texto 255
Campo5 Si/No

el codigo que tengo es el siguiente

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Private Sub Command5_Click()
 
Dim icmd As ADODB.Command
Dim iconn As ADODB.Connection
 
Set iconn = New ADODB.Connection
iconn.CursorLocation = adUseClient
iconn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=h:\mibase.accdb; Jet OLEDB:Database Password=noni;"
Set icmd = New ADODB.Command
icmd.CommandText = " INSERT INTO RX (Campo1, Campo2, Campo3, Campo4, Campo5) VALUES (?,?,?,?,?);"
icmd.Parameters.Append icmd.CreateParameter("Campo1", adInteger, adParamInput, 10)
icmd.Parameters.Append icmd.CreateParameter("Campo2", adVarChar, adParamInput, 10)
icmd.Parameters.Append icmd.CreateParameter("Campo3", adInteger, adParamInput, 15)
icmd.Parameters.Append icmd.CreateParameter("Campo4", adVarChar, adParamInput, 15)
icmd.Parameters.Append icmd.CreateParameter("Campo5", adBoolean, adParamInput, 4, True)
 
Set icmd.ActiveConnection = iconn
 
 
For x = 1 To 50
            icmd("Campo1") = x
            icmd("Campo2") = "campito" + Trim(Str(x))
            icmd("Campo3") = x * 50
            icmd("Campo4") = "cuatro" + Trim(Str(x))
            icmd("Campo5") = CBool(True)
 
            icmd.Execute
Next
 
Set icmd.ActiveConnection = Nothing
Set icmd = Nothing
iconn.Close
End Sub

este codigo funciona sin el campo boleano, hice la prueba eliminandolo de la tabla y lo hace a la perfeccion, pero cuando lo vuelvo a agregar al Campo5, el codigo agrega el primer registro y al hacerlo por segunda vez me da el error en tiempo de ejecucion..

Les agradeceria me ayuden con esto..

un saludo a todos..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Error Createparameter adBoolean

Publicado por Paolo Santos (74 intervenciones) el 25/02/2016 21:46:21
si el campo 5 está declarado como booleano, solo enviale true o false, de la siguiente forma:

icmd("Campo5") = True

con eso deberia de reconocer el campo..

saludos.. espero funcione...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Error Createparameter adBoolean

Publicado por walter (3 intervenciones) el 26/02/2016 16:54:20
Hola Paolo
gracias por tu respuesta.

probe lo que me dijiste y sigue sin funcionar, estube averiguando como guarda access los valores logicos y dice que 0 para falso y -1 para verdadero, intente de esa forma y sigue dando error.

un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error Createparameter adBoolean

Publicado por Paolo (74 intervenciones) el 26/02/2016 17:43:11
te doy otra idea, yo para evitar esos problemas de los campos booleanos lo hago de 2 formas, o hago el campo de tipo string de 1 y solo guardo ya sea F para falso y V para verdadero, o lo que seria similar un S para Si y una N para No, o un entero corto para que se guarde 0 (cero) para falso y un 1 (uno) para verdadero, si quieres porque no cambias el tipo de dato de tu campo5 y evita dolores de cabeza.

ojala te ayuda esto..

saludos..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error Createparameter adBoolean

Publicado por walter (3 intervenciones) el 26/02/2016 18:17:21
la verdad que no sabia que los booleanos daban tanto dolores de cabeza, voy a tener en cuenta tu consejo
pero la verdad que desepciona este tipo de problemas

muy agradecido
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error Createparameter adBoolean

Publicado por Paolo (74 intervenciones) el 26/02/2016 18:35:11
pues es solo saberlo manejar un poco, pero yo en lo personal a veces se me complica y mejor opte por esta otra forma pues no me da problemas y me facilita para otras actividades incluso, asi que por eso lo hago asi, pero no te preocupes la idea primordial, digo yo, es ver como nos podemos facilitar la vida a la hora de programar y cada quien tiene sus propias estrategias, y son validas.

asi que a la orden y que bueno que en algo te pude ayudar..


saludos..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar