kaydet ve değişiklikleri kaydet butonu

1 2 3
12/10/2009, 12:14

orcunerkek54

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.
12/10/2009, 14:57

alpeki99

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.
12/10/2009, 16:25

orcunerkek54

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.
14/10/2009, 16:22

orcunerkek54

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
27/10/2009, 20:14

Puletin

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.
30/10/2009, 22:35

orcunerkek54

ilginiz için teşekkürler
1 2 3