Skip to main content

AccessTr.neT


Docmd.openform Hk.

Docmd.openform Hk.

Çözüldü #1
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.


Visual Basic Code
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; 

Visual Basic Code
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?
Cevapla
#2
Visual Basic Code
DoCmd.OpenForm "Frm_Giris", , , , acFormAdd, , Me.Liste85.Column(3)

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

Visual Basic Code
me.[MALZEME KODU] = me.openargs


Örnek uygulama eklersen, örnek üzerinde test edilip net cevap yazılabilir.
"Boş Örnek Eklerim, Yapıp Verirler" demeyin, örneğinizi hazırlayın.
Komplike kod talebiniz var ise İletişim bağlantısından bize ulaşın. 
Cebelleşmezsen Öğrenemezsin. 
Cevapla
#3
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
@benbendedeilem
Cevapla
#4
Muhtemelen örneğinizi eklemeniz istenecektir.
Cevapla
#5
(29/04/2020 13:45)accessman Adlı Kullanıcıdan Alıntı: 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?
Cevapla
#6
Visual Basic Code
DoCmd.OpenForm "Frm_Giris", DataMode:=acAdd, OpenArgs:=Me.Liste85.Column(3) & ";" & Me.Liste85.Column(5)



bu şekilde peşi sıra ekleyip,
 
Visual Basic Code
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?
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da