Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Error argument not optional

Estas en el tema de Error argument not optional en el foro de Visual Basic clásico en Foros del Web. saludos a todos, tengo un codigo que me jala informacion de una base de datos en progrees y la inserta en sql server, solo q ...
  #1 (permalink)  
Antiguo 09/09/2011, 11:29
 
Fecha de Ingreso: junio-2011
Mensajes: 329
Antigüedad: 12 años, 8 meses
Puntos: 2
Error argument not optional

saludos a todos, tengo un codigo que me jala informacion de una base de datos en progrees y la inserta en sql server, solo q me marca este error......

Compiler error: argument not optional

este es mi codigo:


Private Sub Command3_Click()
Dim cn As Object
Dim con As Object
'Dim cfecha As Date


' crea un objeto Connection
Set cn = CreateObject("ADODB.Connection")
Set con = CreateObject("ADODB.Connection")

' IMPORTANTE: Cadena de conexión a usar
cn.ConnectionString = "Driver={Progress Openedge 10.1A Driver};DSN=PROGRESS;DB=pace;UID=sysprogress;PWD=p assword;HOST=192.168.10.248;PORT=2580;"


con.ConnectionString = "Provider=SQLOLEDB;Data Source=" & _
"192.168.10.4; user id=sa; password=Stm01;"

'Provider=SQLOLEDB;Initial Catalog=Inventarios;Data Source=" & _
' "192.168.10.3; user id=sa; password=3845;"

' verifica que los parámetros no estén vacios
supid = "ord_0." & """sup-id"""
origqty = "oritem_0." & """orig-qty"""

' fech = "Format(ord_0.cdate, " & """mm/dd/yyyy"")"

SQL = "SELECT ord_0.sid, ord_0.onum, " & supid & ", ord_0.cdate, ord_0.ctime, ord_0.posted, ord_0.comment, ord_0.completed, oritem_0.line, oritem_0.part, oritem_0.pack, oritem_0.pccost, oritem_0.pcost, inv_0.costave, " & origqty & ", oritem_0.totrec, " & origqty & "*oritem_0.pack AS 'PaqOrd', oritem_0.totrec*oritem_0.pack AS 'PaqRec' FROM PUB.inv inv_0, PUB.ord ord_0, PUB.oritem oritem_0 WHERE ord_0.sid = oritem_0.sid AND ord_0.onum = oritem_0.onum AND ((inv_0.sid=1) AND (inv_0.line=oritem_0.line) AND (inv_0.part=oritem_0.part) AND (ord_0.sid = " & sid & ") AND (ord_0.completed>=" & Fechac & ") AND (ord_0.completed < " & Fechaf & ") AND (" & supid & " Not In (1,2,3,4,5,6,7,8,9,10,11,12,14,15,16,17,18,19,20,2 1,50,51))) " 'and ord_0.onum = 31401 AND (inv_0.costave<>0))"


' variable para al rec de ado
Dim rst As Object
Dim rs As Object

' abre la conexión a la base de datos
cn.Open
con.Open

'SQL.Connection = con


' crea un nuevo objeto recordset
Set rst = CreateObject("ADODB.Recordset")
Set rs = CreateObject("ADODB.Recordset")

' Ejecuta el sql para llenar el recordset
rst.Open SQL, cn
' variables para los indices de las filas y columnas
c = 0


' recorre todo el recordset hasta el final
Do While Not rst.EOF

sid = rst.Fields(c)
onum = rst.Fields(c + 1)
supid = rst.Fields(c + 2)
cfech = Format(rst.Fields(c + 3), "mm/dd/yyyy")
cfecha = "'" & cfech & "'"
ctime = rst.Fields(c + 4)
poste = Format(rst.Fields(c + 5), "mm/dd/yyyy")
posted = "'" & poste & "'"
comment = rst.Fields(c + 6)
'comment = "intro"
complete = Format(rst.Fields(c + 7), "mm/dd/yyyy")
completed = "'" & complete & "'"
Line = rst.Fields(c + 8) //AQUI MARCA EL ERROR
part = rst.Fields(c + 9)
pack = rst.Fields(c + 10)
pccost = rst.Fields(c + 11)
pcost = rst.Fields(c + 12)
CostAve = rst.Fields(c + 13)
origqty = rst.Fields(c + 14)
totrec = rst.Fields(c + 15)
PaqOrd = rst.Fields(c + 16)
PaqRec = rst.Fields(c + 17)
'QP = rst.Fields(c + 18)

SQ1 = "INSERT INTO [Compras].[dbo].[Respcompras]([sid],[onum],[supid],[cdate],[ctime],[posted],[comment],[completed],[line],[part],[pack],[pccost],[pcost],[costave],[origqty],[totrec],[PaqOrd],[PaqRec]) Values (" & sid & ", " & onum & " ,'" & supid & "', " & cfecha & ", '" & ctime & "', " & posted & ",'" & comment & "', " & completed & ",'" & Line & "', '" & part & "', " & pack & ", " & pccost & ", " & pcost & ", " & CostAve & ", " & origqty & ", " & totrec & ", " & PaqOrd & ", " & PaqRec & ")"

'SQL1.ExecuteNonQuery , con
rs.Open SQ1, con
' Siguiente registro
rst.MoveNext

Loop
' cierra y descarga las referencias
On Error Resume Next
rst.Close
cn.Close
rs.Close
con.Close
Set cn = Nothing
Set rst = Nothing
Set con = Nothing
Set rs = Nothing

ME PUEDEN AYUDAR CON ESTO...?..saludos y gracias
  #2 (permalink)  
Antiguo 13/09/2011, 09:04
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 6 meses
Puntos: 47
Respuesta: Error argument not optional

Hola!

La palabra LINE es reservada de VB... cambiala por otra cosa, ej.:

LINEA = rst.Fields(c + 8)

Tambien cambia en el SQL1:

SQ1 = "INSERT INTO [Compras].[dbo].[Respcompras]([sid],[onum],[supid],[cdate],[ctime],[posted],[comment],[completed],[line],[part],[pack],[pccost],[pcost],[costave],[origqty],[totrec],[PaqOrd],[PaqRec]) Values (" & sid & ", " & onum & " ,'" & supid & "', " & cfecha & ", '" & ctime & "', " & posted & ",'" & comment & "', " & completed & ",'" _

& LINEA _

& "', '" & part & "', " & pack & ", " & pccost & ", " & pcost & ", " & CostAve & ", " & origqty & ", " & totrec & ", " & PaqOrd & ", " & PaqRec & ")"

Etiquetas: registro, sql
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 08:10.