Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/11/2008, 09:24
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Problemas con consulta desde VB a access 2003

Cita:
Iniciado por mumo2006 Ver Mensaje
Estimados.
Tengo un problema al comparar una consulta hacia una tabla de acces 2003.

Adjunto:

Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim txtsql As String
con.Open ("dsn=bodega")
On Error Resume Next
txtsql = "select * from tb_agendamiento where cod_agend = '" & Text4.Text & "' "

Set rs = con.Execute(txtsql)
If rs.RecordCount > 0 Then
MsgBox "El codigo de agenadmiento (" & Text4.Text & ") ya existe..!"
con.Close

'Exit Sub
Else

txtsql = "INSERT INTO tb_agendamiento (cod_agend,rut_cliente,nom_cliente,dom_cliente,con tacto_cliente,modelo_equipo,simcard,dia_agend,mes_ agend,año_agend,nom_usuario)Values('" & Text4 + "','" & Text6 + "','" & Text1 + "','" & Text3 + "','" & Text5 + "','" + Label9 + "','" + Combo2.Text + "','" + Combo3.Text & "','" + Combo4.Text & "','" + Combo5.Text & "','" + Label22 + "')"
Set rs = con.Execute(txtsql)
End If

El problema no es la conexion, si no que la consulta que al parecer esta mal estructurada. Ya que a la hora de guardar un registro nuevo pero en el cual el codigo de agendamiento es el mismo deberia arrojar el mensaje de que ya existe. En la tabla esta como clave primaria, por no cual no permite duplicidad. Ademas esta en formato texto.
O puede que este mal el formato de condicion en rs.RecordCount?
Que puedo hacer?
Gracias
Hola, pon el tipo de cursor del lado cliente, sino siempre el valor de RecordCount será -1

Dim rs As New ADODB.Recordset
rs.CursorLocation = adUseClient


y elimina la instrucción con.Close porque dará error al hacer el INSERT si la conexión está cerrada.