MS Access 2003 - جدول بيانات Excel المدمج على نموذج الوصول
-
23-09-2019 - |
سؤال
دعنا نقول أن لدي جدول بيانات Excel مضمن على نموذج وصول Microsoft. أدعو إطار الكائن
ExcelFrame
وأضيف مربع نص على النموذج المسمى
txtA1
وأضيف زرًا على النموذج المسمى
cmdInsert
أرغب في كتابة "Hello World" في مربع النص ، وانقر فوق الزر واتجه في خلية A1 على جدول البيانات هذا. ما هو VBA الذي أستخدمه لإنجاز هذا؟
شكرًا
المحلول
يمكنك أتمتة Excel ، وكتابة قيمتك إلى ورقة العمل ، ثم تحديث إطار الكائن.
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
تعديل: كان المثال يعتمد على ملف مصنف خارجي هو مرتبط كمصدر لإطار كائن النموذج.
لربط ورقة العمل ، اختر ""إنشاء من الملف"زر الراديو ، تحقق من"وصلة"مربع الاختيار ، وتصفح لتحديد المصنف. هذه هي الطريقة التي فعلت بها مع Access 2007. كما أتذكر ، كان الأمر مشابهًا مع Access 2003.
نصائح أخرى
لم يفت الأوان بعد ، أليس كذلك؟
شريطة أن تكون قد قمت بالفعل بإنشاء كائن Excel (كما في 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"
لاحظ أن هذا الرمز يتطلب إشارة إلى MS Excel في VBA.