Importar un archivo txt en access

Bueno tengo un archivo txt en la siguiente ruta c:\planos\ac.txt necesito subirlo a una base de datos en access
el código que he usado es el siguiente pero no me funciona no se que sucede me podrían colaborar ahí envío el código que estoy usando
DoCmd.TransferText acImportDelim, "ac", "C:\planos\AC.TXT", ¿False
lo poco que entiendo es que me dice que debo tener un nombre de especificacion pero no se que hacer? Auxilio

1 respuesta

Respuesta
1
También soy de Colombia.
Ahora, no te aconsejo que utilices el transfertext...
Utiliza esta rutina que la puedes colocar en un formulario:
Para crea una variable matriz tipo dimanica en el formulario
**********************************
Dim ArregloDatos(2)
**********************************
Aca se supone que la tabla contendra 3 campos, igual modifica segun tus necesidades....
Ahora suponemos que el archivo texto devuelve los datos en EL ORDEN ESTRICTO de la tabla y están separador por punto y como(para que no tenga problemas con los decimales)..
Aquí la tabla se llama Usuarios, y al importar lo que hago en la función BuscarPalabra, es aque al leer la linea del archivo, separo las palabras (campos), buscando los punto y comas (separadores del archivo)... y las voy agregando a la Matriz (ArregloDatos), para luego verificar si el registro existe con la llave que debe estar en el archivo, si es así, modifico, de lo contrario Inserto.
***************************************
Private Sub IMPORTAR_Click()
Dim MiReg As DAO.Recordset
Dim EntradaDatos As String
On Error GoTo Err_IMPORTAR_Click
Ruta = "C:\planos\AC.TXT"
If Ruta <> "" Then
Close #1
Open Ruta For Input As #1 ' Abre el archivo.
Do While Not EOF(1) ' Busca el fin del archivo.
Line Input #1, EntradaDatos ' Lee la línea de datos.
BuscarPalabras EntradaDatos
Loop
Close #1
MsgBox "Datos importados con exito.", vbInformation, "Respuesta"
End If
Exit_IMPORTAR_Click:
Exit Sub
Err_IMPORTAR_Click:
MsgBox Err.Description
Resume Exit_IMPORTAR_Click
End Sub
Public Sub BuscarPalabras(Linea As String)
Dim ContPalabras As Integer
Dim MiReg As DAO.Recordset
NumPos = 1
AntPos = 1
NuevaLinea = Linea
ContPalabras = 0
While NumPos <> 0
NumPos = InStr(AntPos, NuevaLinea, ";")
If NumPos = 0 Then
HastaPal = Len(Linea)
AntPos = AntPos + 2
Else
HastaPal = NumPos
End If
Palabra = Mid(Linea, AntPos, HastaPal)
Palabra = IIf(NumPos <> 0, Mid(Palabra, 1, Len(Palabra) - 1), Palabra)
ArregloDatos(ContPalabras) = Palabra
ContPalabras = ContPalabras + 1
If NumPos <> 0 Then NuevaLinea = Right(Linea, Len(NuevaLinea) - HastaPal)
AntPos = NumPos + 1
Wend
SQL = "SELECT * FROM USUARIOS WHERE CODUSU = " & ArregloDatos(0) & ";"
Set MiReg = CurrentDb.OpenRecordset(SQL)
If MiReg.RecordCount > 0 Then
SQL = "UPDATE USUARIOS SET USUARIOS.USU = '" & ArregloDatos(1) & "', USUARIOS.ID = '" & ArregloDatos(2) & "' " & _
"WHERE (((USUARIOS.CODUSU)=" & ArregloDatos(0) & "));"
CurrentDb.Execute SQL
Else
SQL = "INSERT INTO USUARIOS (CODUSU,USU,ID) VALUES(" & ArregloDatos(0) & ",'" & ArregloDatos(1) & "'," & _
"'" & ArregloDatos(2) & "');"
CurrentDb.Execute SQL
End If
End Sub
**************************************
Me avisas como te va... sino te sigo ayudando
Att:telemaco

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas