Foros del Web » Programación para mayores de 30 ;) » Programación General »

Error De Sintaxis

Estas en el tema de Error De Sintaxis en el foro de Programación General en Foros del Web. 'ES UNA CLASE Q PERMITE EL ACCESO A DATOS Y TENGO UN PROBLEMA EN EL METODO 'INSERTAR , ME SALE UN MENSAJE QUE DICE ERROR ...
  #1 (permalink)  
Antiguo 04/09/2004, 12:33
Avatar de jocks  
Fecha de Ingreso: marzo-2004
Mensajes: 174
Antigüedad: 20 años, 1 mes
Puntos: 0
Error De Sintaxis

'ES UNA CLASE Q PERMITE EL ACCESO A DATOS Y TENGO UN PROBLEMA EN EL METODO 'INSERTAR , ME SALE UN MENSAJE QUE DICE ERROR DE SINTAXIS EN INSERT INTO 'CUSTOMER , LO HE CHEQUEADO TODO BIEN Y NO SE PORQUE SALE ESE MENSAJE,HABER SI 'LE PUEDES DAR UNA OJEADA PES BROTHER Y ME AVISAS------GRAX

Private mCon As ADODB.Connection
Private mFilas As ADODB.Recordset
Private mCOMM As ADODB.Command
Private mEnvoice As Long
Private mName As String
Private mStreet As String
Private mCity As String
Private mPhone As Long
Private mCell As Long
Private mDate As Date
Private mDelivery As Date
Private mMake As String
Private mModel As String
Private mSerial As String
Private mServiceR As String
Private mEstimate As Currency
Private mPaid As Date
Private mWarranty As Integer
Private mBack As Date
Private mCharge As Currency
Public Property Get ENVOICE() As Long
ENVOICE = mEnvoice
End Property
Public Property Get NAME() As String
NAME = mName
End Property
Public Property Get STREET() As String
STREET = mStreet
End Property
Public Property Get CITY() As String
CITY = mCity
End Property
Public Property Get PHONE() As Long
PHONE = mPhone
End Property
Public Property Get CELL() As Long
CELL = mCell
End Property
Public Property Get DATEX() As Date
DATEX = mDate
End Property
Public Property Get DELIVERY() As Date
DELIVERY = mDelivery
End Property
Public Property Get MAKE() As String
MAKE = mMake
End Property
Public Property Get MODEL() As String
MODEL = mModel
End Property
Public Property Get SERIAL() As String
SERIAL = mSerial
End Property
Public Property Get SERVICER() As String
SERVICER = mServiceR
End Property
Public Property Get ESTIMATE() As Currency
ESTIMATE = mEstimate
End Property
Public Property Get PAID() As Date
PAID = mPaid
End Property
Public Property Get WARRANTY() As String
WARRANTY = mWarranty
End Property
Public Property Get BACK() As Date
BACK = mBack
End Property
Public Property Get CHARGE() As Currency
CHARGE = mCharge
End Property
Public Property Get Filas() As ADODB.Recordset
Set Filas = mFilas
End Property
Private Sub Class_Initialize()
Set mCon = New ADODB.Connection
mCon.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;" & _
"DATA SOURCE=C:\Documents and Settings\Joseph\Mis documentos\Javier\JJ.MDB"
mCon.Open
End Sub
Public Sub mostrar()
Set mFilas = New ADODB.Recordset
With mFilas
.ActiveConnection = mCon
.CursorLocation = adUseClient
.Source = "Select * from CUSTOMER "
.Open
End With

If Not mFilas.EOF Then
mEnvoice = mFilas.Fields("Envoice")
mName = mFilas.Fields("Name")
mStreet = mFilas.Fields("Street")
mCity = mFilas.Fields("City")
mPhone = mFilas.Fields("Phone")
mCell = mFilas.Fields("Cell")
mDate = mFilas.Fields("Date")
mDelivery = mFilas.Fields("Delivery")
mMake = mFilas.Fields("Make")
mModel = mFilas.Fields("Model")
mSerial = mFilas.Fields("Serial")
mServiceR = mFilas.Fields("ServiceR")
mEstimate = mFilas.Fields("Estimate")
mPaid = mFilas.Fields("Paid")
mWarranty = mFilas.Fields("Warranty")
mBack = mFilas.Fields("Back")
mCharge = mFilas.Fields("Charge")
End If
End Sub
Public Sub insertar_newCustomer(eEnv As Long, nNam As String, sStr As String, cCit As String, pPho As Long, _
cCel As Long, dDat As Date, dDeliv As Date, mMak As String, mMod As String, sSer As String, sSR As String, _
sEst As Currency, sPa As Date, sWarr As Integer, sBac As Date, sChar As Currency)

Set mCOMM = New ADODB.Command
With mCOMM
.ActiveConnection = mCon
.CommandType = adCmdText
.CommandText = "INSERT INTO CUSTOMER (Envoice,Name,Street,City,Phone,Cell,Date,Delivery ,Make,Model,Serial,ServiceR,Estimate,Paid,Warranty ,Back,Charge)" & _
" VALUES (" & eEnv & ",'" & nNam & "','" & sStr & "','" & cCit & "'," & pPho & "," & cCel & "," & dDat & "," & dDeliv & ",'" & mMak & "','" & mMod & "','" & sSer & "','" & sSR & "'," & sEst & "," & sPa & "," & sWarr & sBac & sChar & ")"
.Execute
End With

End Sub
__________________
JUST DO IT!!!
nunk hay una segunda oportunidad para una primera buena impresion...
  #2 (permalink)  
Antiguo 04/09/2004, 15:37
Avatar de jrp01  
Fecha de Ingreso: mayo-2004
Ubicación: México
Mensajes: 2.702
Antigüedad: 20 años
Puntos: 0
Por que no haces un punto de interrupcion y checas que es lo que esta mandando el insert. o si no lo posteas aqui para ver que esta mal. y seria util que pusieras de que tipo es cada campo que tienes en tu BD
  #3 (permalink)  
Antiguo 06/09/2004, 13:59
Avatar de jocks  
Fecha de Ingreso: marzo-2004
Mensajes: 174
Antigüedad: 20 años, 1 mes
Puntos: 0
Aun No Entiendo Dond Esta El Error De Sintaxis

Bueno aqui posteo el codigo de la clace q me permite la coneccion a BD :
Private mCon As ADODB.Connection
Private mFilas As ADODB.Recordset
Private mCOMM As ADODB.Command
Private mEnvoice As Long
Private mName As String
Private mStreet As String
Private mCity As String
Private mPhone As Long
Private mCell As Long
Private mDate As Date
Private mDelivery As Date
Private mMake As String
Private mModel As String
Private mSerial As String
Private mServiceR As String
Private mEstimate As Currency
Private mPaid As Date
Private mWarranty As Integer
Private mBack As Date
Private mCharge As Currency
Public Property Get ENVOICE() As Long
ENVOICE = mEnvoice
End Property
Public Property Get NAME() As String
NAME = mName
End Property
Public Property Get STREET() As String
STREET = mStreet
End Property
Public Property Get CITY() As String
CITY = mCity
End Property
Public Property Get PHONE() As Long
PHONE = mPhone
End Property
Public Property Get CELL() As Long
CELL = mCell
End Property
Public Property Get DATEX() As Date
DATEX = mDate
End Property
Public Property Get DELIVERY() As Date
DELIVERY = mDelivery
End Property
Public Property Get MAKE() As String
MAKE = mMake
End Property
Public Property Get MODEL() As String
MODEL = mModel
End Property
Public Property Get SERIAL() As String
SERIAL = mSerial
End Property
Public Property Get SERVICER() As String
SERVICER = mServiceR
End Property
Public Property Get ESTIMATE() As Currency
ESTIMATE = mEstimate
End Property
Public Property Get PAID() As Date
PAID = mPaid
End Property
Public Property Get WARRANTY() As String
WARRANTY = mWarranty
End Property
Public Property Get BACK() As Date
BACK = mBack
End Property
Public Property Get CHARGE() As Currency
CHARGE = mCharge
End Property
Public Property Get Filas() As ADODB.Recordset
Set Filas = mFilas
End Property
Private Sub Class_Initialize()
Set mCon = New ADODB.Connection
mCon.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;" & _
"DATA SOURCE=C:\Documents and Settings\Joseph\Mis documentos\Javier\JJ.MDB"
mCon.Open
End Sub
Public Sub mostrar()
Set mFilas = New ADODB.Recordset
With mFilas
.ActiveConnection = mCon
.CursorLocation = adUseClient
.Source = "Select * from CUSTOMER "
.Open
End With

If Not mFilas.EOF Then
mEnvoice = mFilas.Fields("Envoice")
mName = mFilas.Fields("Name")
mStreet = mFilas.Fields("Street")
mCity = mFilas.Fields("City")
mPhone = mFilas.Fields("Phone")
mCell = mFilas.Fields("Cell")
mDate = mFilas.Fields("Date")
mDelivery = mFilas.Fields("Delivery")
mMake = mFilas.Fields("Make")
mModel = mFilas.Fields("Model")
mSerial = mFilas.Fields("Serial")
mServiceR = mFilas.Fields("ServiceR")
mEstimate = mFilas.Fields("Estimate")
mPaid = mFilas.Fields("Paid")
mWarranty = mFilas.Fields("Warranty")
mBack = mFilas.Fields("Back")
mCharge = mFilas.Fields("Charge")
End If
End Sub
Public Sub insertar_newCustomer(eEnv As Long, nNam As String, sStr As String, cCit As String, pPho As Long, _
cCel As Long, dDat As Date, dDeliv As Date, mMak As String, mMod As String, sSer As String, sSR As String, _
sEst As Currency, sPa As Date, sWarr As Integer, sBac As Date, sChar As Currency)

Set mCOMM = New ADODB.Command
With mCOMM
.ActiveConnection = mCon
.CommandType = adCmdText
.CommandText = "INSERT INTO CUSTOMER (Envoice,Name,Street,City,Phone,Cell,Date,Delivery ,Make,Model,Serial,ServiceR,Estimate,Paid,Warranty ,Back,Charge)" & _
" VALUES (" & eEnv & ",'" & nNam & "','" & sStr & "','" & cCit & "'," & pPho & "," & cCel & "," & dDat & "," & dDeliv & ",'" & mMak & "','" & mMod & "','" & sSer & "','" & sSR & "'," & sEst & "," & sPa & "," & sWarr & "," & sBac & "," & sChar & ")"
.Execute
End With

End Sub

Como dije antes , me envia un error en la sintaxis del insertar , y lo he visto mil veces y ta todo bien .
Bueno los campos con sus respectivo tipo que tengo en la BD son los siguientes :
Envoice numerico
Name texto
Street texto
City texto
Phone numerico
Cell numerico
Date fecha
Delivery fecha
Make texto
Model texto
Serial texto
ServiceR texto
Estimate moneda
Paid fecha
Warranty numerico
Back fecha
Charge moneda

Bueno eso es todo, espero q me den alguna sugerencia o en todo caso alguna ayuda pa resolver este fallo.
__________________
JUST DO IT!!!
nunk hay una segunda oportunidad para una primera buena impresion...
  #4 (permalink)  
Antiguo 06/09/2004, 14:14
Avatar de Thumper  
Fecha de Ingreso: agosto-2004
Ubicación: Jesús María - Lima - Perú
Mensajes: 270
Antigüedad: 19 años, 8 meses
Puntos: 6
bueno seria bueno q copies un registro de tu bd para saber como estan guardados los datos
  #5 (permalink)  
Antiguo 08/09/2004, 14:39
Avatar de jocks  
Fecha de Ingreso: marzo-2004
Mensajes: 174
Antigüedad: 20 años, 1 mes
Puntos: 0
Me parece q el problema esta en las variables DATE

Estuve viendo mi codigo y creo q el problema esta cuando en la parte de VALUES del INSERT empiezo a tomar valor por valor y cuando tomos las variables tipo DATE creo q hay errores , aqui esta :

Public Sub insertar_newCustomer(eEnv As Long, nNam As String, sStr As String, cCit As String, pPho As Long, _
cCel As Long, dDat As Date, dDeliv As Date, mMak As String, mMod As String, sSer As String, sSR As String, _
sEst As Currency, sPa As Date, sWarr As Integer, sBac As Date, sChar As Currency)

Set mCOMM = New ADODB.Command
With mCOMM
.ActiveConnection = mCon
.CommandType = adCmdText
.CommandText = "INSERT INTO CUSTOMER (Envoice,Name,Street,City,Phone,Cell,Date,Delivery ,Make,Model,Serial,ServiceR,Estimate,Paid,Warranty ,Back,Charge)" & _
" VALUES (" & eEnv & ",'" & nNam & "','" & sStr & "','" & cCit & "'," & pPho & "," & cCel & ",'" & Format(CStr(dDat), "dd/mm/yyyy") & "','" & Format(CStr(dDeliv), "dd/mm/yyyy") & "','" & mMak & "','" & mMod & "','" & sSer & "','" & sSR & "'," & sEst & ",'" & Format(CStr(sPa), "dd/mm/yyyy") & "'," & sWarr & ",'" & Format(CStr(sBac), "dd/mm/yyyy") & "'," & sChar & ")"
.Execute
End With
'"insert into.... values(....#" & format(cstr(mdate), "dd/mm/yyyy") &"# ....)"
End Sub

Es esta la forma correcta d atrapar una variable tipo DATE : sEst & ",'" & Format(CStr(sPa), "dd/mm/yyyy") & "'," & sWarr ???



__________________
JUST DO IT!!!
nunk hay una segunda oportunidad para una primera buena impresion...
  #6 (permalink)  
Antiguo 08/09/2004, 15:08
Avatar de jrp01  
Fecha de Ingreso: mayo-2004
Ubicación: México
Mensajes: 2.702
Antigüedad: 20 años
Puntos: 0
En access tienes que poner la fecha entre # para que el insert este asi:
#01/01/2004#

Recuerda que es Mes/Dia/Año

ej. con un dtpicker

fecha="#" & DTPicker1.Month & "/" & DTPicker1.Day & "/" & DTPicker1.Year & "#"

y esa la mandas en el insert

Última edición por jrp01; 08/09/2004 a las 15:14
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:47.