Pasar un campo calculado en access 2003 a un textBox en visual basic 6.0

Estoy reparando mi proyecto de titulación en visual basic 6, la cuestión es que necesito pasar un campo calculado en una consulta desde visual basic a un textBox y me da el siguiente error: 3464 "No coinciden los tipos de datos en la expresión de criterios" te muestro mi código:


[code]strq = "SELECT PLAN_CUENTA.ID_CLAS, COMP_CONTABLE.COD_CTA, Sum(COMP_CONTABLE.DEBE) AS S_DEBE, Sum(COMP_CONTABLE.HABER) AS S_HABER, IIf([ID_CLAS]= 1 Or [ID_CLAS]= 3 ,[S_DEBE]-[S_HABER],[S_HABER]-[S_DEBE]) AS SALDO " _
& " FROM PLAN_CUENTA INNER JOIN COMP_CONTABLE ON PLAN_CUENTA.COD_CTA = COMP_CONTABLE.COD_CTA" _
& " GROUP BY PLAN_CUENTA.ID_CLAS, COMP_CONTABLE.COD_CTA;"
Set rstComp_contable = Cnn.OpenRecordset(strq)
If rstComp_contable.EOF Then
Me.txtSaldo.Text = CDbl(Me.txtDebe.Text) + CDbl(Me.txtHaber.Text)
Else
Me.txtSaldo.Text = rstComp_contable.Fields("SALDO")
t_cta = Trim(Left(Me.txtCodigo.Text, 1))
If (t_cta = "1") Or (t_cta = "3") Then
Me.txtSaldo.Text = CDbl(Me.txtSaldo.Text) + CDbl(Me.txtDebe.Text) - CDbl(Me.txtHaber.Text)
Else
If (t_cta = "2") Or (t_cta = "4") Then
Me.txtSaldo.Text = CDbl(Me.txtSaldo.Text) + CDbl(Me.txtHaber.Text) - CDbl(Me.txtDebe.Text)
End If
End If
End If
EL ERROR OCURRE EN LA LINEA "Me.txtSaldo.Text = rstComp_contable.Fields("SALDO")"
Utilizo dao como manejar de base de datos
Y la base de datos esta hecha en access 2003.

1 respuesta

Respuesta
1

Antes de todo... si me lo permites utiliza ADO para futuros proyectos.

Respecto a tu problema intenta:

txtSaldo= cdbl(rstComp_contable.Fields("SALDO")")

Hice los cambios que me sugieres pero el error persiste 3464, lo que podido encontrar en la web que este error se produce cuando el campo no es parte de la tabla donde hago la consulta, por lo cual se produce el error , en este caso es un campo calculado que utiliza una función (iff) para comprar los campos y luego sumar o restar según corresponda.

Si puedes ayudarme te lo agradecería un montón ya que tengo que entregar mi proyecto en un par de semanas.

Reliza depuracio linea a linea ( f8) y ve el resultado de la variable strq en la ventana inmediato, seguro es la construccion de la instruccion sql

Gracias por tu ayuda el problema era el la sentencia sql al usar la función (iif) los parámetros de evaluación se pasan con comillas simple para no romper la cadeda, es decir escapar el carácter.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas