tüm arkadaşlara ilgilerinden dolayı teşekkürler. metin ve açılır kutularımın veri kaynakları boş neyin nereye kaydedileceğini ben kodla belirtiyorum. Farklı iki tabloya kayıt olduğu için veri kaynağını gösteripte accsess'in kendi kaydet düğmesini kullandığım zaman hata veriyor. veri kaynağı gösterilikken bu kodu kullanınca 2 kere kayıt yapıyor. benim veriyi birkere kaydetmem gerekiyor benzersizlik kontrolü yaparak kayıt ediyorum. değişiklikleri kaydedebilmem içinse önce benzersiz verimi bulmalı sonra onun üzerine kayıt yapmalı. bu şekilde bir kod varmı veya yazılabilirmi. verileri liste kutusundan geri getiriyorum tıkladığımda ilgili kutular doluyor.
Burada ADO kullanmanız normal sonuçta tek kayıt işlemi ile birlikte iki tabloya kaydediyorsunuz. Kayıt işleminden hemen veya çok daha sonra bir kayıtta değişiklik yaptığınız zaman kontrol ettirdiğiniz alan aynı ise problem çıkıyor sanırım yani müşteri kayıt numarası.
Siz kayıt aşamasında bir tane daha IF THEN ELSE kullanın. Burada yapacağınız şey formu açınca müşteri numarasını kontrol ettirmek. Eğer müşteri numarası yazılmışsa zaten bu var olan bir kayıttır-müşteridir dolayısıyla siz sadece müşteri kayıt numarası dışında kalan alanları ADO ile kayıt ettireceksiniz. Eğer müşteri kayıt numarası boş ise demek ki bu yeni bir kayıttır. Bu defa yeni bir kayıt gibi yukarıdaki kodları kullanıp sadece müşteri numarasının daha önceden kullanılıp kullanılmadığını kontrol ettirmiş olacaksınız.
syn alpeki99 sorunum dediğiniz gibi. ancak kodu yerleştireceğim yeri bulamadım. kodu else den önce kullanmayı denedim ama tekrar 2. kayıdı yaptı. hata yaptığım yeri bulamadım ufak bir örnek kod gönderebilirmisiniz.
tüm arkadaşlara teşekkürler.
arkadaşlar günlerdir üzerinde çalışıyorum ama bir türlü beceremedim yardımlarınızı bekliyorum.
iki farklı tabloya kayıt yapıyorum.bunu başardım ancak sil kodunu ve değişiklikleri kaydet kodunu beceremedim yardımsız bercerebileceğimide zannetmiyorum. yardımcı olabilirseniz sevinirim. ufakbir örnek gönderiyorum. herkeze teşekkürler
Kod:
Private Sub Komut22_Click()
If isemr_no & stok_no = DLookup("[verikontrol]", "[tbl_ikmal_istek]", "[verikontrol]=forms![frm_istek_belgesi]!isemr_no & stok_no") Then
MsgBox "BU MALZEME ARAÇTA DAHA ÖNCE KULLANILMIŞ. BİR İŞ EMRİNE AYNI MALZEME İKİ SEFER İSTENEMEZ . LÜTFEN BAŞKA MALZEME GİRİN.", 16, "UYARI"
Undo
Else
MsgBox "KAYIT YAPILIYOR BEKLEYİN"
Dim rs1 As New ADODB.Recordset '1. tablo için
'////////////////////////////////////////
'1. tabloya kayıt başlıyor
rs1.Open "tbl_ikmal_istek", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs1.AddNew
rs1("isemrino") = isemr_no
rs1("malzemeadi") = mlz_adi
rs1("stokno") = stok_no
rs1("isteyenkisi") = ist_pers
rs1("istekmik") = ist_mik
rs1("tarih") = ist_tarih
rs1("kullanılan_birim") = Kul_birim
rs1("unitesi") = unite
rs1("verikontrol") = isemr_no & stok_no
rs1("islem_durumu") = islem_durumu
rs1.Update
rs1.Close
Set rs1 = Nothing
'1. tabloya kayıt bitti
'*****************************************
End If
Dim rs2 As New ADODB.Recordset '2. tablo için
If Me.islem_durumu = "İptal" Then
MsgBox "İslem iptal edildiğinden tbl_malzeme_kayıt tablosuna kayıt yapılamayacak", vbInformation, "DİKKAT"
Undo
Else
'2. tabloya kayıt başlıyor
rs2.Open "tbl_mlz_kayit", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs2.AddNew
rs2("plaka_no") = plaka_no
rs2("isemrino") = isemr_no
rs2("malzeme_adi") = mlz_adi
rs2("stok_no") = stok_no
rs2("fiyati") = fiyati
rs2("tarih") = ist_tarih
rs2.Update
rs2.Close
Set rs2 = Nothing
'2. tablo kayıt bitti
'**************************
End If
MsgBox "kayıt işlemi tamamlandı", 32, "İşlem Sonu"
isemr_no = ""
mlz_adi = ""
stok_no = ""
ist_pers = ""
plaka_no = ""
End Sub
Bu kodu yazarsanız İşlem İptali yapılırsa tbl_Malzeme_kayıt tablosuna kayıt yapılmayacaktır.