como inserto valores nulos de tipo cadena a un campo
alguien puede decirme como puedo insertar una cadena de caracteres a un capo en access, lo que pasa es que estoy tomando datos de un archivo de texto este texto es un reporte generado por otra aplicacion un ejemplo de archivo de texto.
No_Huesp Nombre Nalt Procedencia
004110 SANTIAGO, XOCHITL MEX DF MEXICO
004124 FLORES, GREGORIO MEX DF MEXICO
004127 PALACIOS, ENRIQUE MEX
004160 GARCIA, RODRIGO MEX DF MEXICO
4167 FLORES, GARCIELA MEX DFMEXICO
Estos son mis datos tengo que asignarlos a una tabla pero si se fijan en el tercer registro no hay datos cuando quiero asignar el campo Procedencia a la tabla mi programa se detiene y ya no sigue metiendo datos a la tabla, que puedo hacer.
No_Huesp Nombre Nalt Procedencia
004110 SANTIAGO, XOCHITL MEX DF MEXICO
004124 FLORES, GREGORIO MEX DF MEXICO
004127 PALACIOS, ENRIQUE MEX
004160 GARCIA, RODRIGO MEX DF MEXICO
4167 FLORES, GARCIELA MEX DFMEXICO
Estos son mis datos tengo que asignarlos a una tabla pero si se fijan en el tercer registro no hay datos cuando quiero asignar el campo Procedencia a la tabla mi programa se detiene y ya no sigue metiendo datos a la tabla, que puedo hacer.
Hola,
yo lo que haría sería meter un carácter de control (por ejemplo #) entre cada campo en el fichero de texto, quedando así...
004110#SANTIAGO, XOCHITL#MEX#DF MEXICO
004124#FLORES, GREGORIO#MEX#DF MEXICO
004127#PALACIOS, ENRIQUE#MEX
004160#GARCIA, RODRIGO#MEX#DF MEXICO
4167#FLORES, GARCIELA#MEX#DFMEXICO
Tras ello, haría este código...
Private Sub Form_Load()
Dim fso As New FileSystemObject
Dim txtfile, fil1 As File
Dim ts As TextStream
Dim s As String
Dim campos() As String
' Campos de la bd
Dim id, nombre, nat, proc As String
Set fil1 = fso.GetFile("d:prueba.txt")
Set ts = fil1.OpenAsTextStream(ForReading)
Do While Not ts.AtEndOfStream
s = ts.ReadLine
campos = Split(s, "#", -1, vbBinaryCompare)
For i = LBound(campos) To UBound(campos)
id = ""
nombre = ""
nat = ""
proc = ""
Select Case i
Case 0 'No_Huesp
id = campos(i)
Case 1 'Nombre
nombre = campos(i)
Case 2 'Nat
nat = campos(i)
Case 3 'Procedencia
proc = campos(i)
End Select
Next i
' Aki haces el insert en la bd, si no hay datos meterá ""
'strSql = "Insert into tuTabla values('" & id & "','" & nombre & _
"','" & nat & "','" & proc & "')"
'rsRecordSet.Open strSql.............
Loop
ts.Close
End Sub
Salu2
sdemingo
yo lo que haría sería meter un carácter de control (por ejemplo #) entre cada campo en el fichero de texto, quedando así...
004110#SANTIAGO, XOCHITL#MEX#DF MEXICO
004124#FLORES, GREGORIO#MEX#DF MEXICO
004127#PALACIOS, ENRIQUE#MEX
004160#GARCIA, RODRIGO#MEX#DF MEXICO
4167#FLORES, GARCIELA#MEX#DFMEXICO
Tras ello, haría este código...
Private Sub Form_Load()
Dim fso As New FileSystemObject
Dim txtfile, fil1 As File
Dim ts As TextStream
Dim s As String
Dim campos() As String
' Campos de la bd
Dim id, nombre, nat, proc As String
Set fil1 = fso.GetFile("d:prueba.txt")
Set ts = fil1.OpenAsTextStream(ForReading)
Do While Not ts.AtEndOfStream
s = ts.ReadLine
campos = Split(s, "#", -1, vbBinaryCompare)
For i = LBound(campos) To UBound(campos)
id = ""
nombre = ""
nat = ""
proc = ""
Select Case i
Case 0 'No_Huesp
id = campos(i)
Case 1 'Nombre
nombre = campos(i)
Case 2 'Nat
nat = campos(i)
Case 3 'Procedencia
proc = campos(i)
End Select
Next i
' Aki haces el insert en la bd, si no hay datos meterá ""
'strSql = "Insert into tuTabla values('" & id & "','" & nombre & _
"','" & nat & "','" & proc & "')"
'rsRecordSet.Open strSql.............
Loop
ts.Close
End Sub
Salu2
sdemingo
