我在Access中是個新手,在實現某些功能時遇到了一些困難,我在其他文章中看到過。 MS-Access: How to open form in same location/size as closed/previous form?打開MS Access表單或在上次關閉時的相同位置報告
我想在上次關閉的位置打開彈出式窗體,並且創建了一個表(sizpos)來存儲位置和大小(左,上,寬,高)的4個屬性)和表單(對象)的名稱和唯一的ID號碼。
我需要一些幫助,找出VBA代碼來存儲基於關閉或卸載事件上的表單名稱的打開表單的屬性。我還需要代碼的幫助來從開放表單或加載事件的表格中檢索信息。
我嘗試使用dlookup
在me.move
並沒有任何成功,但可能沒有正確實施它。
我想出了以下幾乎適用於報告。我只是無法弄清楚如何從正在打開的報告中拉取報告名稱,類似於表單中的me.name
函數。我注意到me.reportname
這些區域?
Private Sub Report_Open(Cancel As Integer)
Dim l As Long
Dim t As Long
l = Nz(DLookup("Left", "SizPos", "Object = 'me.reportname???'"))
t = Nz(DLookup("Top", "SizPos", "Object = 'me.reportname???'"))
Me.Move Left:=l, Top:=t
End Sub
Private Sub Report_Close()
Dim strSQL As String
strSQL = "UPDATE SizPos SET SizPos.Left = " & Me.WindowLeft & ", SizPos.Top = " & Me.WindowTop & " WHERE SizPos.Object = 'me.reportname???';"
CurrentDb.Execute strSQL
End Sub
以下對於窗體非常適用。
Private Sub Form_Open(Cancel As Integer)
Dim l As Long
Dim t As Long
Dim w As Long
Dim h As Long
l = Nz(DLookup("Left", "SizPos", "Object = '" & Me.Name & "'"))
t = Nz(DLookup("Top", "SizPos", "Object = '" & Me.Name & "'"))
w = Nz(DLookup("Width", "SizPos", "Object = '" & Me.Name & "'"))
h = Nz(DLookup("Height", "SizPos", "Object = '" & Me.Name & "'"))
Me.Move Left:=l, Top:=t, Width:=w, Height:=h
End Sub
Private Sub Form_Close()
DoCmd.Save
Dim strSQL As String
strSQL = "UPDATE SizPos SET SizPos.Left = " & Me.WindowLeft & ", SizPos.Top = " & Me.WindowTop & ", SizPos.Width = " & Me.WindowWidth & ", SizPos.Height = " & Me.WindowHeight & " WHERE SizPos.Object = '" & Me.Name & "';"
CurrentDb.Execute strSQL
End Sub
沒有'REPORTNAME財產。使用'Me.Name'來獲取報告的名稱。 'Me.Name'可以在表單或報告中使用。 – HansUp