Skip to main content

AccessTr.neT


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

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

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

.rar Satır ekleme.rar (Dosya Boyutu: 32,37 KB | İndirme Sayısı: 3)
Cevapla
#2
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

 İyi olan tek şey bilgi ve kötü olan tek şey de cehalettir. (Sokrates)
Cevapla
#3
(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.
Cevapla
#4
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.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task