• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Opgelost Export Excel data naar Access mbv VBA

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

HansFRAP

Gebruiker
Lid geworden
12 jul 2011
Berichten
212
Vraag
Ik heb Excel data wat ik naar een Access database wil 'pompen'
Geheel draait op Win 11 (64 bits) met Off 365

- Ik heb VBA-code gevonden (uit voorgaande rubriek) maar wanneer ik dat gebruik dan krijg ik error op moment er een koppeling wordt gelegd
- In Excel krijg ik een error op: cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\Data\Cursisten_Data.accdb;":
- Moet er nog een verwijzing worden gezet oid???

Hoe op te lossen??



Code:
Sub T1_ADOFromExcelToAccess()
                                                                                ' exports data from the active worksheet to a table in an Access database
                                                                                ' this procedure must be edited before use
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
                                                                                ' connect to the Access database
    Set cn = New ADODB.Connection
        cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _
        "Data Source=D:\Data\Cursisten_Data.accdb;"
                                                                                    ' open a recordset
    Set rs = New ADODB.Recordset
    rs.Open "T_Cursisten", cn, adOpenKeyset, adLockOptimistic, adCmdTable
                                                                                    ' all records in a table
    r = 3                                                                           ' the start row in the worksheet
    Do While Len(Range("A" & r).Formula) > 0
                                                                                    ' repeat until first empty cell in column A
        With rs
            .AddNew                                                                         ' create a new record
                                                                                        ' add values to each field in the record
            .fields("FieldName1") = Range("A" & r).Value
            .fields("FieldName2") = Range("B" & r).Value
            .fields("FieldNameN") = Range("C" & r).Value
                                                                                        ' add more fields if necessary...
            .Update                                                                         ' stores the new record
        End With
        r = r + 1                                                                       ' next row
    Loop
    
    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
End Sub
 
Laatst bewerkt:
Access heeft een uiterst eenvoudige importfunktie voor Excelbestanden.
Ken je die ?
 
Maar je kunt het natuurlijk best vanuit Excel doen. snb is alleen aan het plagen, want hij klooit graag met recordsets :).
Ik vermoed dat je beter de Ace driver kan gebruiken.
Code:
    cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=D:\Data\Cursisten_Data.accdb; Persist Security Info=False;"
Ik heb net een voorbeeldje gemaakt met eigen databases, en dat werkt prima op basis van jouw code.
 
@snb: Ja ik ken de uiterst eenvoudige import functie vanuit Access ☺️
Maar wanneer je Excel data ontvangt dan is het wel zo eenvoudig om in Excel een 'knoppie' te maken.

@OctaFish: Ja deze wijziging werkt ook bij mij.

Achteraf: ACE biedt een 64-bits driver, zodat het kan worden gebruikt op 64-bits machines, terwijl JET dat niet kan!

Kortom: beiden weer bedankt voor de hulp.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan