Macro en Excel con Access
Hola conectado quiero pedirte el favor de que me digas de que manera puedo yo consultar o actualizar los registros que tengo en una base de datos en Access mediante una Macro que tengo desarrollada en Excel, pues resulta que tengo el siguiente código y no me lo deja actualizar para una base de datos que tiene 60 registros, solo funciona para 50 y este código no fue desarrollado por mi sino por alguien que salio de una empresa y es muy difícil contactarlo, agradezco de antemano la ayuda que usted me pueda brindar, es urgente
Private Sub cmdQuery_Click()
Dim rs1 As Recordset
Dim sEncuesta As String
Dim iUsuario As Integer
Dim iCampos As Integer
Dim iFila As Variant
Set bd1 = OpenDatabase(ThisWorkbook.Path & "\encuesta.mdb")
Set rs1 = bd1.OpenRecordset("select * from HB1 order by area", dbOpenDynaset)
''Set rs1 = bd1.OpenRecordset("SELECT AREA,P1,COUNT(P1) FROM HB1 GROUP BY AREA,P1", dbOpenDynaset)
iFila = 2
With rs1
' Do While Not .EOF
For i = 0 To 51 '61
If i < 26 Then '30
Range(Chr(Asc("A") + i) & iFila) = IIf(IsNull(.Fields(i).Value), "No contestado", .Fields(i).Value)
Else
Range("A" & (Chr(39 + i)) & iFila) = IIf(IsNull(.Fields(i).Value), "No contestado", .Fields(i).Value)
End If
Next
Range("BJ" & iFila) = IIf(IsNull(.Fields(61).Value), "No contestado", .Fields(51).Value)
Range("BK" & iFila) = IIf(IsNull(.Fields(62).Value), "No contestado", .Fields(52).Value)
Range("BL" & iFila) = IIf(IsNull(.Fields(63).Value), "No contestado", .Fields(53).Value)
'' Range("E" & iFila) = IIf(IsNull(.Fields(1).Value), "No contestado", .Fields(1).Value)
iFila = iFila + 1
.MoveNext
'Loop
End With
Rem
MsgBox "ök"
End Sub
Att: Hernán Camilo Martinez
Private Sub cmdQuery_Click()
Dim rs1 As Recordset
Dim sEncuesta As String
Dim iUsuario As Integer
Dim iCampos As Integer
Dim iFila As Variant
Set bd1 = OpenDatabase(ThisWorkbook.Path & "\encuesta.mdb")
Set rs1 = bd1.OpenRecordset("select * from HB1 order by area", dbOpenDynaset)
''Set rs1 = bd1.OpenRecordset("SELECT AREA,P1,COUNT(P1) FROM HB1 GROUP BY AREA,P1", dbOpenDynaset)
iFila = 2
With rs1
' Do While Not .EOF
For i = 0 To 51 '61
If i < 26 Then '30
Range(Chr(Asc("A") + i) & iFila) = IIf(IsNull(.Fields(i).Value), "No contestado", .Fields(i).Value)
Else
Range("A" & (Chr(39 + i)) & iFila) = IIf(IsNull(.Fields(i).Value), "No contestado", .Fields(i).Value)
End If
Next
Range("BJ" & iFila) = IIf(IsNull(.Fields(61).Value), "No contestado", .Fields(51).Value)
Range("BK" & iFila) = IIf(IsNull(.Fields(62).Value), "No contestado", .Fields(52).Value)
Range("BL" & iFila) = IIf(IsNull(.Fields(63).Value), "No contestado", .Fields(53).Value)
'' Range("E" & iFila) = IIf(IsNull(.Fields(1).Value), "No contestado", .Fields(1).Value)
iFila = iFila + 1
.MoveNext
'Loop
End With
Rem
MsgBox "ök"
End Sub
Att: Hernán Camilo Martinez
Respuesta de conectado
-1