/ / Access Record aus Excel füllen - Excel, MS-Access, Access-VBA, Record

Access Record von Excel aus füllen - Excel, MS-Access, Access-Vba, Datensatz

Ich erstelle ein Formular in Access 2010, das dies ermöglichtErstellen Sie einen Datensatz für jede Excel-Datei in einem bestimmten Ordner und füllen Sie Felder mit Informationen aus verschiedenen Zellen. Das Makro füllt ein Array mit allen Dateinamen der Excel-Arbeitsmappen (verschiedene alphanumerische Sequenzen), durchsucht diese Dateien und erstellt für jede Excel-Tabelle einen neuen Datensatz.

Private Sub PopulateArray_Click()
Dim strListOfFiles() As String
Dim intCount As Integer
intCount = 0

Dim sFile As String
sFile = Dir$("P:ShareManufacturingPropellerFinalized" & "*.*", vbDirectory Or vbHidden Or vbSystem Or vbReadOnly Or vbArchive)
Do Until sFile = vbNullString
If sFile <> "." Then " relative path meaning this directory
If sFile <> ".." Then " relative path meaning parent directory
ReDim Preserve strListOfFiles(0 To (intCount + 1)) As String
strListOfFiles(intCount) = sFile
intCount = intCount + 1
End If
End If
sFile = Dir$()
Loop

Dim MyDB As DAO.Database
Dim MyRS As DAO.Recordset
Set MyDB = CurrentDb()
Set MyRS = MyDB.OpenRecordset("Record", dbOpenDynaset)

For Index = 0 To UBound(strListOfFiles)
MyRS.AddNew
MyRS![SerialNumber] = ""P:ShareManufacturingPropellerFinalized[" & strListOfFiles(Index) & "]Order Input"!B15"
MyRS.Update
Next
End Sub

Ich habe das meiste davon zum Laufen bekommen, aber das FinaleSchritt hat mich fest. Das Problem tritt am Bit "MyRS! [SerialNumber]" in der For-Schleife auf. Im Moment gibt es nur den (richtigen) Dateipfad in die Zelle aus, nicht den Wert der Zelle selbst.

Antworten:

0 für die Antwort № 1

Natürlich, weil Sie die Arbeitsmappe nicht geöffnet haben. Sie müssen einen Verweis auf die MS Excel-Objektbibliothek einfügen (auf meinem Computer mit MSO 2007 ist der neueste Stand 11.0).

Dann kannst du das benutzen Excel "Namespace" für den Zugriff auf Excel-Objekte wie folgt:

Dim xlApp as Excel.Application
Dim xlWb as Excel.Workbook
Dim cell as Excel.Range

With xlApp
.Visible = true
Set xlWb = .Workbooks.Open(...)
End With

// And so on...

Bearbeiten: Um einen Verweis einzufügen, müssen Sie Alt + F11 eingeben, um in den VBA-Editor und dann in zu gelangen Tools gehen References und überprüfen Sie einfach die Excel-Objektbibliothek.