Access - Problema con Loop

 
Vista:
sin imagen de perfil

Problema con Loop

Publicado por Miguel (29 intervenciones) el 16/10/2014 11:15:32
Hola, estoy trabajando con código VBA y algo debo hacer mal pero no logro ver el error. Copio abajo la parte del código. En general lo que hace el código es coger unos datos de excel y copiarlos donde debe de una tabla.
Con la instrucción lFilaPHs = TBL("Id_phs_desm") quiero guardar una id que está en la tabla y luego con el where los comparo con id_phs_desm de la otra tabla. El problema es que parece que sólo hace lo que tiene que hacer con el primer valor de id_phs_desm de la tabla TBL, en vez de hacerlo para todos los valores de uno en uno.

lFilas = 1
Do Until ObjExcel.Range("A" & lFilas).Value = ""
lFilas = lFilas + 1

If ObjExcel.Range("A" & lFilas).Value = "" Then
Exit Sub
End If

sPHS = ObjExcel.Range("A" & lFilas)
If sPHS = "PHS_111" Then
aa = aa
End If

sSet = ObjExcel.Range("B" & lFilas)
sDenominacion = ObjExcel.Range("C" & lFilas)
sEHPVB = ObjExcel.Range("D" & lFilas)
sEHPVm = ObjExcel.Range("E" & lFilas)
sDecEHPV = ObjExcel.Range("F" & lFilas)
sControl = ObjExcel.Range("G" & lFilas)
sAnalista = ObjExcel.Range("H" & lFilas)

TBL.MoveFirst
sExiste = False
lFilaPHSNuevo = 0
Do Until TBL.EOF
sFuenteControl = obtenerVacios(TBL("fuen"))
If sFuenteControl <> "" Then
If InStr(1, sFuenteControl, "#") > 0 Then
sPHS_control = Replace(Mid(sFuenteControl, 1, InStr(1, sFuenteControl, "#") - 1), " ", "")
Else
sPHS_control = sFuenteControl
End If
If sPHS_control = sPHS Then
sExiste = True
lFilaPHs = TBL("Id_phs_desm")
If sEHPVB <> "" And sEHPVB <> obtenerVacios(TBL1("EHPVB")) Then
'Actualizar la tabla Todosmodelos
sql = "Update Todosmodelos SET EHPVB ='" & sEHPVB & "' WHERE (Id_PHS_Desm =" & lFilaPHs & ");"
db.Execute (sql)
End If
If sEHPVm <> "" And sEHPVm <> obtenerVacios(TBL1("EHPVm")) Then
'Actualizar la tabla Todosmodelos
sql = "Update Todosmodelos SET EHPVm ='" & sEHPVm & "' WHERE (Id_PHS_Desm =" & lFilaPHs & ");"
db.Execute (sql)
End If
If sDecEHPV <> "" And sDecEHPV <> obtenerVacios(TBL1("DecEHPV")) Then
'Actualizar la tabla Todosmodelos
sql = "Update Todosmodelos SET DecEHPV ='" & sDecEHPV & "' WHERE (Id_PHS_Desm =" & lFilaPHs & ");"
db.Execute (sql)
End If
If sControl <> "" And sControl <> obtenerVacios(TBL1("control")) Then
'Actualizar la tabla Todosmodelos
sql = "Update Todosmodelos SET control ='" & sControl & "' WHERE (Id_PHS_Desm =" & lFilaPHs & ");"
db.Execute (sql)
End If
If sAnalista <> "" And sAnalista <> obtenerVacios(TBL1("ANALISTA")) Then
'Actualizar la tabla Todosmodelos
sql = "Update Todosmodelos SET ANALISTA ='" & sAnalista & "' WHERE (Id_PHS_Desm =" & lFilaPHs & ");"
db.Execute (sql)
End If
Loop
Exit Do
Else
lFilaPHSContado = lFilaPHSContado + 1
End If
End If
TBL.MoveNext
Loop
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

Problema con Loop

Publicado por JOSE (830 intervenciones) el 27/10/2014 10:11:48
TE DA ERROR EN el do -loop pero revisa los if por si alguno no se cierra
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