ayuda con codigo
Publicado por guillermo javier couceiro (25 intervenciones) el 21/05/2012 15:30:52
Hola amigos, nesecito una ayuda, tome un ejemplo del Sacha de su pagina para importar un archivo txt a mi base de datos, y intentando adaptarlo a la mia, no logro que grabe los registros. Para explicarme mejor, si entro a la tabla, veo que hay una seria de registros creados en todos los campos, pero los mismos estan en blanco.
el codigo es el que le s dejo abajo,. algo le debe faltar para que me grave los mismos, Podran ayudarme?
Gracias
cmdImportar_Click
'* Importa datos de un archivo de texto delimitado
'* uso:
'* ESH 02/11/03 19:20
'*******************************************************************************
Private Sub cmdImportar_Click()
On Error GoTo cmdImportar_Click_TratamientoErrores
Dim strArchivo As String, _
bytArchivo As Byte, _
strLinea As String, _
strDelimitador As String, _
i As Integer, _
rst As Recordset, _
strSQL As String, _
Matriz() As String
DoCmd.Hourglass True
bytArchivo = FreeFile
' establezco el delimitador de texto con el de su código ASCII correspondiente
' esto forzado por la necesidad de poder usar el tabulador (CHR(9) que no
' tiene caracter imprimible
strDelimitador = Chr(ccDelimitador.Column(1))
' tomo el nombre del archivo de texto del formulario
strArchivo = txtRuta
' abro el archivo de texto
Open strArchivo For Input As bytArchivo
' abro el recordset
strSQL = "SELECT * FROM Tabla1"
Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
' extraigo los datos del fichero de texto
Do
' leo una linea de texto del archivo
Line Input #bytArchivo, strLinea
' si la linea está vacia, la ignoro
If strLinea <> "" Then
' en este caso hay cinco campos, luego cuatro delimitadores
' inserto un registro en el recordset
rst.AddNew
' troceo la cadena
Matriz() = Split(strLinea, strDelimitador)
' llevo los distintos "trozos" a sus respectivos campos
For i = 1 To 61
' si el segmento de cadena lleva comillas (Chr(34)), las ignoro
Next i
' guardo el registro
rst.Update
End If
Loop While Not EOF(bytArchivo)
cmdImportar_Click_Salir:
If Not IsEmpty(rst) Then
rst.Close
Set rst = Nothing
End If
Close #bytArchivo
DoCmd.Hourglass False
On Error GoTo 0
Exit Sub
cmdImportar_Click_TratamientoErrores:
MsgBox "Error " & Err.Number & " en proc. cmdImportar_Click de Documento VBA Form_frmImportar (" & Err.Description & ") "
GoTo cmdImportar_Click_Salir
End Sub ' cmdImportar_Click
el codigo es el que le s dejo abajo,. algo le debe faltar para que me grave los mismos, Podran ayudarme?
Gracias
cmdImportar_Click
'* Importa datos de un archivo de texto delimitado
'* uso:
'* ESH 02/11/03 19:20
'*******************************************************************************
Private Sub cmdImportar_Click()
On Error GoTo cmdImportar_Click_TratamientoErrores
Dim strArchivo As String, _
bytArchivo As Byte, _
strLinea As String, _
strDelimitador As String, _
i As Integer, _
rst As Recordset, _
strSQL As String, _
Matriz() As String
DoCmd.Hourglass True
bytArchivo = FreeFile
' establezco el delimitador de texto con el de su código ASCII correspondiente
' esto forzado por la necesidad de poder usar el tabulador (CHR(9) que no
' tiene caracter imprimible
strDelimitador = Chr(ccDelimitador.Column(1))
' tomo el nombre del archivo de texto del formulario
strArchivo = txtRuta
' abro el archivo de texto
Open strArchivo For Input As bytArchivo
' abro el recordset
strSQL = "SELECT * FROM Tabla1"
Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
' extraigo los datos del fichero de texto
Do
' leo una linea de texto del archivo
Line Input #bytArchivo, strLinea
' si la linea está vacia, la ignoro
If strLinea <> "" Then
' en este caso hay cinco campos, luego cuatro delimitadores
' inserto un registro en el recordset
rst.AddNew
' troceo la cadena
Matriz() = Split(strLinea, strDelimitador)
' llevo los distintos "trozos" a sus respectivos campos
For i = 1 To 61
' si el segmento de cadena lleva comillas (Chr(34)), las ignoro
Next i
' guardo el registro
rst.Update
End If
Loop While Not EOF(bytArchivo)
cmdImportar_Click_Salir:
If Not IsEmpty(rst) Then
rst.Close
Set rst = Nothing
End If
Close #bytArchivo
DoCmd.Hourglass False
On Error GoTo 0
Exit Sub
cmdImportar_Click_TratamientoErrores:
MsgBox "Error " & Err.Number & " en proc. cmdImportar_Click de Documento VBA Form_frmImportar (" & Err.Description & ") "
GoTo cmdImportar_Click_Salir
End Sub ' cmdImportar_Click
Valora esta pregunta


0