Formda Yazdıklarımı İstediğim Satır Kadar Çoğaltsın.

08/06/2024, 22:06

Acemi54

Benim formda STOK, SERİ, MALZEME, ADET, AÇIKLAMA Sutunları var ve bunlarla kayıt ekleme yapıyorum. Birde "KaçSatırOlsun" adında metin kutusu var ve kayıtların aynısının kaç satıra ekleneceğini belirliyorum. 
Örneğin 20 satır ekleme yapmasını istiyorum her kayıttan sonra "1 satır eklemek üzeresiniz. " mesajı çıkıyor ve EVET dersem ekleme yapıyor. 
Benim istediğim her satırda   "1 satır eklemek üzeresiniz. " mesajı vermesin istiyorum. 200 satırda ekleyebilirim her seferinde onay istemesin.  İlgili kodu ve örnek uygulamayı gönderiyorum. İlginiz için şimdiden çok teşekkür ederim.
Kod:
Private Sub Komut_Kaydet_Click()
On Error GoTo Err_Komut_Kaydet_Click
Dim EklemeSayisi
EklemeSayisi = 0
For i = 1 To KaçSatırOlsun
    If IsNull(DLookup("STOK", "Tablo1", "STOK=[Forms]![Form1]![KaçSatırOlsun]")) Then
    DoCmd.RunSQL "INSERT INTO Tablo1 ( STOK, SERİ, MALZEME, ADET, AÇIKLAMA)" & _
    "SELECT Metin_STOK, Metin_SERİ, Metin_MALZEME, Metin_ADET, Metin_AÇIKLAMA;"
    EklemeSayisi = EklemeSayisi + 1
Else
    MsgBox "STOK:" & STOK & " mükerrer kayıt.... "
End If
Next
    Me.Tablo1ALT.Requery
    MsgBox "Toplam : " & EklemeSayisi & " kayıt eklediniz."
Exit_Komut9_Click:
Exit Sub
Err_Komut_Kaydet_Click:
End Sub
09/06/2024, 09:47

onur_can

Merhaba
Bunun için sorguyu çalıştırmadan önce uyarıları kapatmanız gerekir, aşağıdaki kodda eklenmiştir.
Kod:
Private Sub Komut_Kaydet_Click()
On Error GoTo Err_Komut_Kaydet_Click
Dim EklemeSayisi
EklemeSayisi = 0
DoCmd.SetWarnings False
For i = 1 To KaçSatırOlsun
    If IsNull(DLookup("STOK", "Tablo1", "STOK=[Forms]![Form1]![KaçSatırOlsun]")) Then
    DoCmd.RunSQL "INSERT INTO Tablo1 ( STOK, SERİ, MALZEME, ADET, AÇIKLAMA)" & _
    "SELECT Metin_STOK, Metin_SERİ, Metin_MALZEME, Metin_ADET, Metin_AÇIKLAMA;"
    EklemeSayisi = EklemeSayisi + 1
    
Else
    MsgBox "STOK:" & STOK & " mükerrer kayıt.... "
End If
Next
EklemeSayisi = 0
DoCmd.SetWarnings True
    Me.Tablo1ALT.Requery
    MsgBox "Toplam : " & EklemeSayisi & " kayıt eklediniz."
Exit_Komut9_Click:
Exit Sub
Err_Komut_Kaydet_Click:
End Sub
09/06/2024, 10:32

Acemi54

(09/06/2024, 09:47)onur_can yazdı: Merhaba
Bunun için sorguyu çalıştırmadan önce uyarıları kapatmanız gerekir, aşağıdaki kodda eklenmiştir.
Kod:
Private Sub Komut_Kaydet_Click()
On Error GoTo Err_Komut_Kaydet_Click
Dim EklemeSayisi
EklemeSayisi = 0
DoCmd.SetWarnings False
For i = 1 To KaçSatırOlsun
    If IsNull(DLookup("STOK", "Tablo1", "STOK=[Forms]![Form1]![KaçSatırOlsun]")) Then
    DoCmd.RunSQL "INSERT INTO Tablo1 ( STOK, SERİ, MALZEME, ADET, AÇIKLAMA)" & _
    "SELECT Metin_STOK, Metin_SERİ, Metin_MALZEME, Metin_ADET, Metin_AÇIKLAMA;"
    EklemeSayisi = EklemeSayisi + 1
   
Else
    MsgBox "STOK:" & STOK & " mükerrer kayıt.... "
End If
Next
EklemeSayisi = 0
DoCmd.SetWarnings True
    Me.Tablo1ALT.Requery
    MsgBox "Toplam : " & EklemeSayisi & " kayıt eklediniz."
Exit_Komut9_Click:
Exit Sub
Err_Komut_Kaydet_Click:
End Sub

Sağolun hocam Allah razı olsun.
11/06/2024, 10:44

atoykan

Sayın @Acemi54
Öğrenme çabanızı takdir ediyoruz ancak ilettiğiniz soruların büyük kısmı için çözüm önerileri sunulmuş örnekler ve/veya dersler bölümünde bu konulara ilişkin açıklamalar mevcut. Öncelikle bunları inceleyerek çözüm geliştirmeye çalışın sonrasında takıldığınız ve/veya anlayamadığınız yerler için konu açın. Bu şekilde hem sorularınız için cevap bekleme süreniz azalacaktır hem de öğrendikleriniz kalıcı olacaktır. Çalışmaya ara vermeden devam, iyi gidiyorsunuz.