Docmd.openform Hk.

1 2
29/04/2020, 13:14

sipuasfaf

Merhaba Arkadaşlar
Liste kutusu üzerinde bulunan bir kayda çift tıklayarak, bu kayıtta bulunan malzemeye ait kod ile birlikte, malzeme ekleme formunu açmak istiyorum. Formu açıyorum, fakat liste kutusundaki o kaydın verileri geliyor. Ben sadece o kayda ait malzeme kodu ile giriş yapmak istiyorum. Denediğim kodlar aşağıdadır.


DoCmd.OpenForm "Frm_Giris", , , "[MALZEME KODU]='" & Me.Liste85.Column(3) & "'"


Bu şekilde giriş formunu, liste kutusundan seçtiğim malzeme ile açabiliyorum. Dediğim gibi bu durumda yeni kayıt olarak değil, liste kusunda kayıtlı olan veriyi açıyor. 

Bir de; 

DoCmd.OpenForm "Frm_Giris", , , "[MALZEME KODU]='" & Me.Liste85.Column(3) & "'", acFormAdd

olarak denedim. Bu şekilde de giriş formunu tamamen boş olarak açıyor. 

Not: Giriş formu yüklendiğinde olayı boştur.

Yardımcı olabilir misiniz?
29/04/2020, 13:43

ozanakkaya

DoCmd.OpenForm "Frm_Giris", , , , acFormAdd, , Me.Liste85.Column(3)

Frm_Giris formunun açıldığında olayına da,

me.[MALZEME KODU] = me.openargs


Örnek uygulama eklersen, örnek üzerinde test edilip net cevap yazılabilir.
29/04/2020, 13:45

accessman

siz yeni kayıt formu açılsın ama metin kutularından birisinde sizin istediğiniz bir veri olsun istiyorsunuz değil mi
bu durumda 
Kod:
If Not IsNull(Me.Liste85.Column(3)) Then
    DoCmd.OpenForm "Frm_Giris", DataMode:=acAdd, OpenArgs:=Me.Liste85.Column(3)
Else
   MsgBox "Liste boş"
End If
ve açılan form load olayına

Kod:
Private Sub Form_Load()
If Me.OpenArgs <> vbNullString Then
   Me.MALZEME KODU = Me.OpenArgs
End If
End Sub
gibi şeyler yazman lazım
29/04/2020, 14:18

SeferŞANLI

Muhtemelen örneğinizi eklemeniz istenecektir.
29/04/2020, 16:35

sipuasfaf

(29/04/2020, 13:45)accessman yazdı: siz yeni kayıt formu açılsın ama metin kutularından birisinde sizin istediğiniz bir veri olsun istiyorsunuz değil mi
bu durumda 
Kod:
If Not IsNull(Me.Liste85.Column(3)) Then
    DoCmd.OpenForm "Frm_Giris", DataMode:=acAdd, OpenArgs:=Me.Liste85.Column(3)
Else
   MsgBox "Liste boş"
End If
ve açılan form load olayına

Kod:
Private Sub Form_Load()
If Me.OpenArgs <> vbNullString Then
   Me.MALZEME KODU = Me.OpenArgs
End If
End Sub
gibi şeyler yazman lazım

Teşekkürler üstad. Bu şekilde sorun çözüldü. Fakat openargs: kısmında birden fazla kriter nasıl belirtebilirim?
29/04/2020, 16:48

sipuasfaf

DoCmd.OpenForm "Frm_Giris", DataMode:=acAdd, OpenArgs:=Me.Liste85.Column(3) & ";" & Me.Liste85.Column(5)



bu şekilde peşi sıra ekleyip,
 
Dim malzeme As String
Dim miktar As String
MsgBox OpenArgs
malzeme = Left(OpenArgs, InStr(OpenArgs, ";") - 1)
miktar = Mid(OpenArgs, InStr(OpenArgs, ";") + 1)
MsgBox "Malzeme kodu=" & malzeme
MsgBox "Malzeme mikarı=" & miktar

Bu şekilde bölerek aldım.Başka bir yolu var mı acaba?
1 2