ディレクトリから画像を取得するテーブルに基づいて4つの画像コントロールを更新するアクセスレポートがあります。このレポートではレコードごとにページが生成されますが、イメージコントロールはページ1以降は変更されません(他のすべてのページで同じイメージが表示されます)。念のため、コードはWindows XPでうまくいきましたが、現在はWindows 7 OS(どちらもOffice 07を使用しています)では動作しません。コードは次のとおりです。DAOアクセスレコードセットが更新されない
Private Sub Report_Current()
UpdateImages
End Sub
Private Sub Report_Load()
UpdateImages
End Sub
Private Sub Report_Page()
UpdateImages
End Sub
Private Sub UpdateImages()
On Error GoTo errHandler
Dim RS As DAO.Recordset
Set RS = CurrentDb.OpenRecordset("SELECT Image_Loc, Image_Name FROM HH_Media WHERE InspectionID = " & CInt(Me.InspectionID.Value) & " ORDER BY MediaID ASC")
If Not RS.BOF And Not RS.EOF Then
Dim i As Integer
For i = 1 To 4
If Not RS.EOF Then
Dim pictureCtrl As Image
Set pictureCtrl = GetControl("Image" & i)
Dim strImage As String
strImage = RS.Fields("Image_Loc").Value & "\" & RS.Fields("Image_Name").Value
If Not pictureCtrl Is Nothing Then
If FileExists(strImage) Then
pictureCtrl.Picture = strImage
SetLabel "lblImage" & i, RS.Fields("Image_Name").Value
Else
pictureCtrl.Picture = ""
SetLabel "lblImage" & i, "Does not exist"
End If
End If
RS.MoveNext
Else
Exit For
End If
Next
End If
RS.Close
Set RS = Nothing
Exit Sub
errHandler:
MsgBox "An error occurred while updating the form display." & vbNewLine & Err.Description, vbApplicationModal + vbCritical + vbDefaultButton1 + vbOKOnly, Me.Name
Resume Next
End Sub
イメージは、表内で参照されているディレクトリに存在します。何が欠けているのアイデア?私は、[セクション] _formatイベント私はいつも使用し、いくつかの動的なコンテンツを実行する必要があるときはいつでも
は
私は分かりませんが、マイクロソフトが新リリースのさまざまなAPI機能を無作為に削除したようです。 Access 2000から2007に更新したとき、FileDialogとRecordSet.RecordCountが存在しなくなったため、多数の機能が壊れていました。 – McGarnagle
ページ1の後にUpdateImagesが呼び出されていることを確認してください - ページイベントが発生しないことがあります... –
@DJ。UpdateImageプロシージャを4回だけ押すようです。ページごとにイベントを発生させるにはどうすればよいですか? – artwork21