Visual Basic - Problemas con txt

Life is soft - evento anual de software empresarial
 
Vista:

Problemas con txt

Publicado por Maria (31 intervenciones) el 01/06/2006 15:37:36
Hola a todos,

Estoy importando un fichero txt a Acces y quiero controlar que no me introduzca determinada linea que no tiene una columna(no existe).

Este es el código

Private Sub cmdImport_Fich1_Click()

Dim Lineas As Variant, i As Integer, j As Integer, k As Integer
Dim Columnas() As String

Lineas = Split(FileToString(strNombre), vbCrLf)

For i = Val(LBound(Lineas) + 1) To UBound(Lineas)
Columnas = Split(Lineas(i), "| ") ' Separado por espacios

if Columna(4) <> "" >>>>>> AQUI ESTA EL PROBLEMA NO QUIERO QUE ENTRE
>> CUANDO NO EXISTA
For j = LBound(Columnas) To UBound(Columnas)

SI QUERES PASAR A UNA BD QUEDARIA ASI MAS O MENOS

rec.open "Select * from Socios",bd,......
with rec
.addnew
!Codigo = columnas(j)
!Nombre = columnas(j+1)
!Apellido = columnas(j+2)
!Pais = columnas (j+3)
.close

Next j

Next i

Se puede preguntar si la Columna(4) existe???? Ya que realmente hay algunos casos que no existen y me dice que el subindice no existe....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas con txt

Publicado por Matias Freire (421 intervenciones) el 01/06/2006 22:29:46
Yo te diria que hagas:

Private Sub cmdImport_Fich1_Click()

Dim Lineas As Variant, i As Integer, j As Integer, k As Integer
Dim Columnas() As String

Lineas = Split(FileToString(strNombre), vbCrLf)

For i = Val(LBound(Lineas) + 1) To UBound(Lineas)
Columnas = Split(Lineas(i), "| ") ' Separado por espacios

'si el limite de elementos es menor a 3 (o sea, 4 elementos de 0 a 3),
'redimensiono el vector, manteniendo los valores (la opcion Preserve)
'de esta forma, el ultimo elemento quedará vacío
If Ubound(Columnas) < 3 Then
ReDim Preserve Columnas(3)
End If

For j = LBound(Columnas) To UBound(Columnas)
rec.open "Select * from Socios",bd,......
with rec
.addnew
!Codigo = columnas(j)
!Nombre = columnas(j+1)
!Apellido = columnas(j+2)
!Pais = columnas (j+3)
.close
End With
Next j

Next i

Saludos!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar