Ik begin met te vermelden dat ik uitgebreid de search heb gebruikt (Zowel GoT als Google). Ook heb ik de Help functie van Microsoft gebruikt. Ik kom er helaas niet uit.
Wat ik graag zou willen:
Ik wil meerdere excel files uitlezen en de inhoud daarvan in één database zetten. De Excel files hebben allemaal dezelfde layout (Dezelfde informatie staat dus altijd op dezelfde plek).
Hoe ik denk dat het moet:
Ik heb met het zoeken op GoT en Google al uitgevonden dat ik met VBA in Access aan de slag moet. Ik heb aardig wat programmeer ervaring in Delphi, maar VBA heb ik helaas nooit mee gewerkt.
Ik heb nu als script (Ja, dit is gecopy\paste uit dit topic) het volgende:
Het eerste deel van het programma werkt (Main) Dit heb ik getest dmv een MsgBox met een counter:
Hier kreeg ik mooi: "1" en "2" uit, dus dat werkte
De tweede Sub werkt echter niet, en ik snap helaas ook niet waarom. Ik krijg de volgende error bij het volgende stukje code:
Run-time Error 424:
Object Required
Als ik dan op Debug klik zie ik dat het fout gaat bij het volgende stukje code:
Workbooks.Open (MyDir & MyFile)
Wat ik vraag
Mijn vraag aan jullie is of iemand weet hoe ik dit script werkend kan krijgen, of dat dat probleem misschien op een andere manier op te lossen is.
Wat ik graag zou willen:
Ik wil meerdere excel files uitlezen en de inhoud daarvan in één database zetten. De Excel files hebben allemaal dezelfde layout (Dezelfde informatie staat dus altijd op dezelfde plek).
Hoe ik denk dat het moet:
Ik heb met het zoeken op GoT en Google al uitgevonden dat ik met VBA in Access aan de slag moet. Ik heb aardig wat programmeer ervaring in Delphi, maar VBA heb ik helaas nooit mee gewerkt.
Ik heb nu als script (Ja, dit is gecopy\paste uit dit topic) het volgende:
code:
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
| Sub Main()
Dim MyFile As String
Dim MyDir As String
Dim Sheets As Variant
MyDir = "C:\Temp2\"
MyFile = Dir(MyDir & "*.xls")
Do While MyFile <> ""
MyFile = Dir()
GoSub Lees_Excel
Loop
Exit Sub
Lees_Excel:
Workbooks.Open (MyDir & MyFile)
SheetName = ActiveSheet.Name
BeginRij = 1
EindRij = Sheets(SheetName).Range(a65535).End9xlUp.Row
Kolom = 2 'Ik ga er vanuit dat het antwoord in kolom B staat
For Rij = BeginRij To EindRij
Antwoord = Sheets(SheetName).Cells(Rij, Kolom)
GoSub Schrijf_Access
Next Rij
Return
Schrijf_Access:
CurrentDb.Execute ("INSERT INTO Test (een, twee, drie) VALUES (Rij, Antwoord, MyFile);")
Return
End Sub |
Het eerste deel van het programma werkt (Main) Dit heb ik getest dmv een MsgBox met een counter:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| Sub Main() Dim MyFile As String Dim MyDir As String Dim Teller As Integer teller = 1 MyDir = "C:\Temp2\" MyFile = Dir(MyDir & "*.xls") Do While MyFile <> "" MsgBox (Teller) Teller = Teller + 1 MyFile = Dir() End Sub |
Hier kreeg ik mooi: "1" en "2" uit, dus dat werkte
De tweede Sub werkt echter niet, en ik snap helaas ook niet waarom. Ik krijg de volgende error bij het volgende stukje code:
Run-time Error 424:
Object Required
Als ik dan op Debug klik zie ik dat het fout gaat bij het volgende stukje code:
Workbooks.Open (MyDir & MyFile)
Wat ik vraag
Mijn vraag aan jullie is of iemand weet hoe ik dit script werkend kan krijgen, of dat dat probleem misschien op een andere manier op te lossen is.