La Web del Programador: Comunidad de Programadores
 
    Pregunta:  13973 - CONVERSIóN DE ARCHIVO DE TEXTO A MDB
Autor:  alice queen
Hola colegas:
tengo el siguiente problema al leer un archivo de texto y pasarlo a una tabla MBD.

Lo hago de la siguiente manera:

set MiRst = MiDbs.OpendRecordset(\"Archivo\")

Open achivoTxt for Input as #1
Do while EOF()
Line input #1, Milinea

creo una matriz y pongo en cada lugar la cantidad de caracteres que deseo
luego pongo esos campos formateados en un recordset

MiRst.AddNew
For I = 0 TO 10
MiRst.Fields(I) = Matriz (I)
Next
MiRst .Update
Loop

El problema es que cuando el archivo de texto es chico, el proceso se realiza correctamente, pero cuando es muy grande se \"cae\" el el \"Update\" indicando \"que el registro está bloqueado\".

Alguien puede decirme como solucionar esto?, hay algún problema con el largo de los archivos?

Desde ya muchas gracias

  Respuesta:  Oswaldo Monagas
Tal vez este codigo solucione tu problema.

' Inputs:
Save following Data in the app.path and name file Data.txt
ID,Name,Price
1,"Chairs",$40.00
2,"Table",$75.00
3,"Fork",$1.50
4,"Lamp",$15.00
5,"Rug",$35.00
6,"Desk",&150.00
'

Option Explicit
Dim oConn As New ADODB.Connection
Dim oRS As New ADODB.Recordset

Private Sub Form_Load()
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" & App.Path & ";" _
& "Extended Properties='text;FMT=Delimited'"
'-- Use Following connection string if t
'ext file doesn't have a header for field
'names
'oConn.Open "Provider=Microsoft.Jet" _
& ".OLEDB.4.0;Data Source=" & App.Path _
& ";Extended Properties='text;HDR=NO;" _
& "FMT=Delimited'"
Set oRS = oConn.Execute("Select * from Data.txt ")
Dim ofield As ADODB.Field

Do Until oRS.EOF

For Each ofield In oRS.Fields
Debug.Print "Field Name = " & ofield.Name & " Field Value = " & ofield.Value
Next ofield
oRS.MoveNext
Loop
End Sub

Espero que sea de utilidad