MS Access 2003 - Eingebettete Excel-Tabelle auf Access-Formular
-
23-09-2019 - |
Frage
Lassen Sie sich sagen, ich habe eine eingebettete Excel-Tabelle auf einem Formular Microsoft Access. Ich nenne den Objektrahmen
ExcelFrame
und ich fügen Sie ein Textfeld auf dem Formular namens
txtA1
und ich fügen Sie eine Taste auf der genannten Form
cmdInsert
Ich will „Hallo Welt“ in das Textfeld einzugeben, klicken Sie auf die Schaltfläche und habe es in der Zelle A1 erscheint auf dieser Tabelle. Was VBA kann ich dies zu erreichen, verwenden?
Danke
Lösung
Sie können Excel automatisieren, schreiben Sie Ihren Wert in das Arbeitsblatt, dann aktualisieren, um den Objektrahmen.
Private Sub cmdInsert_Click()
Dim strPath As String
Dim oExcel As Object
Dim oSheet As Object
Set oExcel = CreateObject("Excel.Application")
oExcel.Visible = True
strPath = Me.ExcelFrame.SourceDoc
'Debug.Print strPath '
oExcel.Workbooks.Open strPath
Set oSheet = oExcel.ActiveSheet
'Debug.Print oSheet.Name '
oSheet.Range("A1").Value = Me.txtA1
oExcel.ActiveWorkbook.Save
oExcel.Quit
Set oSheet = Nothing
Set oExcel = Nothing
'acOLEUpdate action requires Enabled = True '
'and Locked = False '
Me.ExcelFrame.Enabled = True
Me.ExcelFrame.Locked = False
Me.ExcelFrame.Action = acOLEUpdate
Me.txtA1.SetFocus
Me.ExcelFrame.Enabled = False
Me.ExcelFrame.Locked = True
End Sub
Bearbeiten : Das Beispiel wurde auf einer externen Arbeitsmappe Datei basiert, die ist verbunden als Quelle für den Objektrahmen des Formulars.
ein Arbeitsblatt zu verknüpfen, wählen Sie die " Aus Datei erstellen " Radio-Button, überprüfen Sie die " Link " Kontrollkästchen und durchsuchen Sie die Arbeitsmappe auszuwählen. Das ist die Art, wie ich es tat mit Access 2007. Soweit ich mich erinnere, war es ähnlich mit Access 2003.
Andere Tipps
Es ist nie zu spät, nicht wahr?
Geben Sie, dass Sie bereits das Excel-Objekt erstellt haben (wie im OP):
Dim wb As Excel.Workbook, ws As Excel.Worksheet
Set wb = Me.ExcelFrame.Object
Set ws = wb.Worksheets(1)
ws.range("a1")= "Hello world"
Beachten Sie, dass dieser Code erfordert einen Verweis auf MS Excel in VBA.