1

私はAccessVBA開発に不慣れで、以前の2人の開発者が取り組んだAccess2007アプリケーションのデバッグと機能の追加を求められています。

フォームにはデータベースのレコードが表示され、各レコードのボタンが表示されます。ボタンは、適切なパスを使用してファイルを開くことになっています。ただし、ユーザーがボタンをクリックすると、正しいレコードのファイルパスではなく、フォームに表示される最初のレコードのファイルパスが常に使用されます。

コードはブックマークを使用して正しいファイルを開こうとしているように見えますが、上記のように、それは機能していません。ボタンクリックイベントの関連コードは次のとおりです。form.Bookmarkを直接ウィンドウにDebug.Printしようとすると、疑問符が表示されるだけです。

Dim rs As Recordset
Set rs = form.RecordsetClone
rs.Bookmark = form.Bookmark

編集:@Remouのリクエストごとにコードを追加します。ボタンがクリックされたとき:

Private Sub OpenFile_Click()
    Form_FilingProcess.Subform_cmdOpenFile_Click Me
End Sub

どの呼び出し:

Public Sub Subform_cmdOpenFile_Click(frm As Form)
Set rs = frm.RecordsetClone
rs.Bookmark = frm.Bookmark

そして、ファイルを開きます。

4

2 に答える 2

4

ボタンが各レコード用である場合、レコードセットをいじる必要はありません。コントロールの名前を使用してファイルを取得できます。

TheFile=Me.MyControl

フォームとサブフォームの両方があるようです。あなたの答えから、セットアップは次のようなものだと思います。

   |------------------------------|
   |  Main Form                   |
   --------------------------------
    Sub form
   --------------------------------
    Row                     Button
   --------------------------------
    Row                     Button
   --------------------------------

ボタンの名前がOpenFileの場合は、次のことを試してください。

Private Sub OpenFile_Click()
    MsgBox Me.NameOfAContolHere & ""
    'Form_FilingProcess.Subform_cmdOpenFile_Click Me
End Sub

これを使用して、次のようにファイルを操作できます。

Private Sub OpenFile_Click()
    FollowHyperlink Me.NameOfControlWithPathToFile
    'Form_FilingProcess.Subform_cmdOpenFile_Click Me
End Sub
于 2010-07-21T19:57:16.550 に答える
0

サブは次のようになります。

Public Sub Subform_cmdOpenFile_Click(frm As Form) 
  Dim CurrentBookmark as String
  Set rs = frm.RecordsetClone 
  CurrentBookmark = frm.Bookmark
  rs.Bookmark = CurrentBookmark
End Sub

文字列変数をフォームのブックマークの値に設定します。次に、レコードセットのブックマークを文字列変数値に設定します。

Dim rs As Recordset 
dim CurrentBookmark as String

Set rs = Me.RecordsetClone 

CurrentBookmark = Me.Bookmark
rs.Bookmark = CurrentBookmark 

http://msdn.microsoft.com/en-us/library/aa223967(office.11​​).aspx

于 2010-07-21T20:30:07.450 に答える