Vba Access
Publicado por Ernesto (1 intervención) el 13/01/2017 02:35:51
Saludos.
Tengo un formulario en Excel y deseo hacerle un Backup a una determinada Hoja. Para lo cual lo hago con la siguiente macro desde Excel, pero no se como hacer desde la macro de excel para que siempre me inserte en Access a partir del ultimo registro que encuentra en la BD access. Agradezco la ayuda.
Tengo un formulario en Excel y deseo hacerle un Backup a una determinada Hoja. Para lo cual lo hago con la siguiente macro desde Excel, pero no se como hacer desde la macro de excel para que siempre me inserte en Access a partir del ultimo registro que encuentra en la BD access. Agradezco la ayuda.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Sub BackupDatos()
Dim fila As Long, uf As Long, conta As Long
Dim cn As ADODB.Connection, rs As ADODB.Recordset
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheets("Datos Clientes").Select
Set a = ActiveSheet
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " & "data source=" & ThisWorkbook.Path & "\CLIENTES.accdb;"
rs.Open "Bk_Clientes", cn, adOpenKeyset, adLockOptimistic, adCmdTable
fila = 7
conta = 0
While a.Cells(fila, "B") <> Empty
With rs
.AddNew
.Fields("Nº identificación") = Cells(fila, "B")
.Fields("Nombre_Clientes") = Cells(fila, "C")
.Fields("N_Cuenta") = Cells(fila, "F")
.Fields("Direccion") = Cells(fila, "H")
.Fields("Telefono") = Cells(fila, "I")
/* otros campos*/
.Update
End With
conta = conta + 1
fila = fila + 1
Wend
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
MsgBox ("Se procesaron " & conta & " registros con éxito, se omitieron duplicados"), vbInformation, "AVISO"
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Valora esta pregunta


0