Sayın mesudi
Sizin sorunuzla ilgili bulabildiğim tek kodu aşağıya ekliyorum. Bu kodda formun koordinatları veriliyor. Siz bunu rapora uyarlarsınız. Deneme şansım olmadı, inşallah çalışıyordur.
Formun boyutlarını veren kod:
Kod:
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function InflateRect Lib "user32" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long
Private Sub Form_Load()
Dim R As RECT
'initialize the rectangle
R.Right = 100
R.Bottom = 200
R.Top = 20
R.Left = 30
'increase the width and height of the specified rectangle
InflateRect R, 60, 50
'show the result
MsgBox "New rectangle's co-ordinates: (" + CStr(R.Left) + "," + CStr(R.Top) + ")-(" + CStr(R.Right) + "," + CStr(R.Bottom) + ")."
End Sub
Mutlaka raporun tam ekran mı simge durumunda mı yoksa normal mi olduğunu veren bir api de mevcuttur ama sanırım bulamadım. Bir de ne işe yarayacağını söyleseniz belki başka öneriler gelebilir.
Bu arada raporun açık mı kapalı mı olduğunu veren kodlar eminim sizde mevcuttur, bizim online
Kod Bankasında da var. Ama yine de hazır bulmuşken yapıştırayım dedim
))
Kod:
If SysCmd(acSysCmdGetObjectState, acForm, "Form1") <> 0 Then
MsgBox "Form açık."
Else
MsgBox "Form kapalı."
End If
Örnek, Form1 adlı formun açık olup olmadığını araştırıyor. Raporlar için "acForm" deyimini "acReport" olarak değiştirmelisiniz.
ALTERNATİF YÖNTEM:
Kod:
If CurrentProject.AllForms("AFormu").IsLoaded = True Then
...
End If
If CurrentProject.AllForms("BFormu").IsLoaded = True Then
...
End If
ALTERNATİF 2:
Kod:
Kod:
Private Function isFormLoaded(strFormName As String)
isFormLoaded = SysCmd(SYSCMD_GETOBJECTSTATE, A_FORM, strFormName)
End Function
isimli fonksiyonu ekleyip, kodun çalışmasını istediğin olaya aşağıdakini yaz
Kod:
Const FRM_A = "FORM1"
Const FRM_B = "FORM2"
Dim strArgs As String
If isFormLoaded(FRM_A) Then
'Form1 açık ise yapılacak işlem.
End If
If isFormLoaded(FRM_B) Then
'Form2 açık ise yapılacak işlem.
End If
İnadına, ille de Accesstr.net...