私は何かもっと挑戦していましたが、私は何の反応もなく、プログラマーへのアクセスが得られたaccessforumsに投稿しました。おそらく私のVBA専門知識の欠如のために私を助けませんでした。 私はPHPやArduinoのようなプログラミングをたくさん行ってきましたが、VBAは新しいものです。何時間ものビデオを見ていましたが、私がやりたいことをかなりカバーしていません。Access 2011にVBAでリンクされたExcelファイルのパスを変更します
失敗した試行を4日間にわたって調査した後、私は自分のアプローチを単純化し、実際のコードでいくつかの「本当の」助けに感謝します。
シナリオ: 私は、それぞれ9個のタブを持つ複数のExcelソースファイルを持っています。 すべてのソースファイルは同じディレクトリにあります(データベースと同じディレクトリにはありません) 1つのソースのみがリンクされています。 ソースファイルの各タブは、Access内のリンクテーブルです。
目的: 私は定期的にソースファイルを切り替えたいと思っています。
方法: 特定のファイルを使用している9枚のシートまたはタブのそれぞれについて、接続ファイルプロパティ(つまり完全なファイルパス)のみを置き換えたいとします。 フォームからフルパスを取得し、イベントに適用する必要があります。フォームの終了時に。
進捗状況: 私は使用するファイル名を入力することができ、問題のファイルへのフルパスを計算するフォームを作成しました。 私はフォーム上にフォームを閉じるためのボタンを持っています。
コード:私はちょうどそれが最初の作業を取得するために、直接などのパスを入力しています上記で
Private Sub Form_Close() Dim dbs As Database Dim tdf As TableDef Dim sfl As String Dim basePath As String Dim sName As String Set dbs = CurrentDb Set sfl = "SourceData_" Set sName = "JoeSmith" Set basePath = "D:\Databases\BOM Consolidator\data_source" ' Loop through all tables in the database. For Each tdf In dbs.TableDefs If InStr(10, tdf.Connect, sfl, 1) > 10 Then tdf.Connect = ";DATABASE=" & basePath & sfl & sName & "\" & dbs Err = 0 On Error Resume Next tdf.RefreshLink ' Relink the table. If Err <> 0 Then End If End If Next tdf End Sub
。 アクセスのヘルプをいただければ幸いです。 がこの投稿私は再起動を試みる前に:( を凍結した。
コードをステップ実行してデバッグして、アクセスがフリーズする場所を把握しようとしましたか? – lokusking