MS Access 2003の - Accessフォームに埋め込まれたExcelスプレッドシート
-
23-09-2019 - |
質問
レッツは、私は、Microsoft Accessのフォームに埋め込まれたExcelスプレッドシートを持っていると言います。私は、オブジェクトフレームを呼び出す
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
編集:例では、外部ブックファイルに基づいていたの連結のフォームのオブジェクトフレームのソースとして。
「はファイルからの作成」のラジオボタンを選択し、ワークシートをリンクするには、「のリンクの」チェックボックス、およびワークブックを選択するための参照を確認してください。それは私がアクセス2007としてIリコールとそれをやった方法です、それはアクセス2003
と類似していました他のヒント
それは右、遅すぎることはありませんか?
あなたはすでに(OPのように)Excelオブジェクトを作成したことを提供します:
Dim wb As Excel.Workbook, ws As Excel.Worksheet
Set wb = Me.ExcelFrame.Object
Set ws = wb.Worksheets(1)
ws.range("a1")= "Hello world"
このコードは、VBAにMS Excelへの参照が必要であることに注意してください。
所属していません StackOverflow