ebolo | |
| 2007-06-16 15:10 - Respuestas: 16 - Tema nº: 2453151
Hola, ya veo que te lo estás currando .
Bueno, vamos a hacer una cosa, créate la tabla con los campos y me pones de que tipo es cada campo.
Lo que haremos es insertar sólo las líneas con los valores.
El tema de la f., es porque lo que hago es ver dónde está el . para delimitar el nombre del campo, por eso te digo que casi mejor te crees los campos y si quieresponer alguno como fecha pues lo pones, luego ya veremos como lo tratamos.
Para poner un campo con más de 255 caracteres créalo como memo.
... En el campo diagnostico hay dos lineas y la segunda que empieza por MOD SE.... no me la coje.....
¿eso ocurre mucho, puede haber 3 ó 4 líneas ó sólo 2?.
El tema del campo Otros que no tenga valor, lo puedes resolver así:
sustituye lo que tengas por esto
| |
|
|
puzzleman | |
|
Re: Pasar de txt de IBM Assistant Filing a Access (Solucionado) - 2007-06-16 17:38 - Respuesta 12
Hola, lo de los espacios en blanco ya va perfecto. El tipo de datos en principio seria todos texto, puede ser la edad como numero y la fecha como fecha tambien pero tampoco es necesario, aunq mas adelante podria ser util para ordenar por fechas y eso. El campo diagnostico puede tener hasta 2 lineas como maximo y el de otros hasta 3 por lo que no se si llegaran a pasar de 255 caracteres y deberian ser memo.
Lo de f.Entrada no pasa nada porque lo cambio con el editor de texto por otro sin punto y ya esta. Pero he visto que me falla tambien cuando en el texto aparece una coma tambien que me trunca hasta ahi el texto y deja de poner el resto, aunque esto tambien lo puedo cambiar por otro caracter o quitar las comas con el editor de texto reemplazando.
Muchas gracias por todoo! | |
|
|
ebolo | |
|
Re: Pasar de txt de IBM Assistant Filing a Access (Solucionado) - 2007-06-16 18:39 - Respuesta 13
ya vamos coniguiendo algo más.
Te dejo como lo dejado al final. Lee las líneas que no tengan ':' y la añade al campo anterior.
He cambiado 'q' por 'n' para que no me lo varie.
El tema de f. lo he arreglado y te crea el campo como f_; No pueden haber signos de puntuación en el nombre de un campo; si pones una coma la sql te la toma como separador, se vuelve loca y te da error.
El problema lo puedes tener en el campo otros si tiene más de 255 caracteres, que es lo que he puesto a todos los campos. Por eso te decía de crearte a mano los campos y luego añadir las líneas.
TE dejo el código
Private Sub Comando0_Click()
On Error GoTo Err_Comando0_Click
Dim ruta As String, num As Integer, lee As String, n, l As Integer
Dim campo(12) As String, valor(8000), consulta2, consulta1, consulta As String
ruta = "C:\prueba.txt"
num = FreeFile
Open ruta For Input As num
n = 1
While Not EOF(num)
Input #num, lee
If InStr(lee, ":") Then
If n < 12 Then campo(n) = Left$(lee, InStr(lee, ":"))
If InStr(lee, ":") = Len(lee) Then
valor(n) = ""
Else
valor(n) = Right$(lee, Len(lee) - InStr(lee, ":") - 1)
End If
n = n + 1
Else
n = n - 1
valor(n) = valor(n) & " " & lee
n = n + 1
End If
Wend
Close num
consulta = "CREATE TABLE DATOS ("
consulta1 = "INSERT INTO DATOS("
For l = 1 To n - 1
If l < 12 Then
If InStr(campo(l), ".") = 0 Then
campo(l) = Left$(campo(l), Len(campo(l)) - 1) & ".:"
End If
If InStr(Left$(campo(l), InStr(3, campo(l), ".") - 1), ".") Then
Mid$(campo(l), InStr(campo(l), "."), 1) = "_"
End If
consulta = consulta & "[" & Left$(campo(l), InStr(campo(l), ".") - 1) & "] TEXT(255),"
consulta1 = consulta1 & "[" & Left$(campo(l), InStr(campo(l), ".") - 1) & "],"
End If
Next l
consulta = Left$(consulta, Len(consulta) - 1) & ")"
CurrentDb.Execute consulta
consulta1 = Left$(consulta1, Len(consulta1) - 1) & ") VALUES("
For l = 1 To n - 1
consulta2 = consulta2 & "'" & valor(l) & "',"
If l Mod 11 = 0 Then
CurrentDb.Execute consulta1 & Left$(consulta2, Len(consulta2) - 1) & ")"
consulta2 = ""
End If
Next l
Exit_Comando0_Click:
Exit Sub
Err_Comando0_Click:
MsgBox Err.Des-c-r-i-p-tion
Resume Exit_Comando0_Click
End Sub
Te he modificado algunas cosas que habías puesto porque no estaban bien.
SAludos.
| |
|
|
ebolo | |
|
Re: Pasar de txt de IBM Assistant Filing a Access (Solucionado) - 2007-06-16 18:42 - Respuesta 14
he cambiado la 'q' por la 'n' y ahora en varios sitios me pone no en vez de 'n'.
Alucino.
| |
|
|
puzzleman | |
|
Re: Pasar de txt de IBM Assistant Filing a Access (Solucionado) - 2007-06-16 18:59 - Respuesta 15
Eres una maquina! Ya me va perfecto, algun problemilla xq hay algun signo de : en alguna linea extra de OTROS: y se cree q es un campo, pero son pocos casos y lo puedo modificar a mano.
Muchas gracias.
[Mensaje editado por ebolo con fecha: 20-06-2007 17:07:05]. | |
|
|
|