Problemas con BD.(URGENTE)

Joan
13 de Febrero del 2004
Buenos días a todos, tengo un problmea que me trae loco y no le encuentro sentido alguno.

Estoy traspasando datos de una hoja Excel a una Base de Datos.
Pues bien, la tabla no tiene campos clave ni esta indexada.
Los primeros registros traspasan ordenadamente y respetando el orden tal y como vienen en la hoja excel.
Cuando termina el proceso completo y visualizo la BD me doy cuenta que sobre el primer registro de la hoja excel ha volcado datos que deberían haberse agregado en mitad de la BD

El código es el siguiente

Private Sub pasar_a_bd()
Dim fila As Long
Dim columna As Long
fila = 2
columna = 1
totalAbonados = 0
While xlSheet1.Cells(fila, 1) <> "" ' Evalua cada linea hasta que no encuentra valor en dicha celda
rs.AddNew
rs.Fields("ID").Value = xlSheet1.Cells(fila, 1).Value
rs.Fields("DIRECCIÓN").Value = xlSheet1.Cells(fila, 2).Value
rs.Fields("NUMERO").Value = xlSheet1.Cells(fila, 3).Value
rs.Fields("ESCALERA").Value = xlSheet1.Cells(fila, 4).Value
rs.Fields("ABONADOS").Value = xlSheet1.Cells(fila, 5).Value
rs.Fields("CLASEBLOQUE").Value = "NULL"
totalAbonados = totalAbonados + xlSheet1.Cells(fila, 5).Value
rs.Fields("ORDEN CALLE").Value = xlSheet1.Cells(fila, 6).Value
rs.Fields("INSPECTOR").Value = 0
rs.Fields("TURNO").Value = "NULL"
rs.Fields("DIA").Value = "NULL"
rs.Fields("MARCADO").Value = "NULL"
rs.Fields("RESTANTES").Value = 0

rs.Update
fila = fila + 1 ' me muevo a la siguiente fila del fichero excel
Wend
End Sub

Pues ese es el problema que tengo.

Muchisimas gracias a todos


Baltasar
13 de Febrero del 2004
"sobre el primer registro de la hoja excel ha volcado datos que deberían haberse agregado en mitad de la BD "

Te ha modificado la hoja de excel ???

Cual es el resto del código? (forma de abrir la hoja y la base de datos)

KKnevaro
13 de Febrero del 2004
Dim wkbObj As Workbook \' Declara una variable de objeto.(declaras una variable tipo libro de trabajo)

Set wkbObj = GetObject(nomarchivo) (abres el archivo excel para leer)

For i = 0 To N
matrizDatos(i, 1) = wkbObj.Worksheets(1).Range("E" & i + 2).Value \' de esta forma es mas confiable leer desde excel
\' Después los valores de la columna B llenan la segunda.
matrizDatos(i, 2) = wkbObj.Worksheets(1).Range("L" & i + 2).Value
neto(i) = wkbObj.Worksheets(1).Range("I" & i + 2).Value
Next i

ya compadre por que asi es mas fácil leer desde excel...ah...y pasa lo leido a una matriz bidimencional para mantener el formato de los datos leidos desde las hojas excel, para que no se te cmoplique la gravacion de los datos en la Base de Datos.