Veri varsa güncelle yoksa yeni kayıt yap

Katılım
25 Ocak 2007
Mesajlar
65
Excel Vers. ve Dili
2003 türkce
arkadaşlar başlıktan anlaşılacağı üzere ne desem bilemedim.Şimdi istediğim şu
ekte dosyada gönderdim
form1 açılınca ayı seciyosun aydan sonra (ocak)
ilce(merkez)
kurum(merkez devlet hastanesi)
ocak-merkez-devlethastanesi seçimi yapmış olduğum sorgudan sonra
tablo 1 de böyle bir veri varsa geliyo.benim istediğim böyle bi veri varsa güncelleye bilmek yoksa aynı form üzerinden tablo1 e veri girişi yapmakbunu sağalaya bilirmiyiz
teşekkür ederim
 
Katılım
8 Eylül 2006
Mesajlar
155
Excel Vers. ve Dili
Excel 2002
Çözüm

"Kayıtlı" adlı formun yeni kayıt ekleme özelliğini aktif yaparsanız, sizin istediğiniz insert veya update olayını otomatik olarak kendisi yapar ama tek sorun mevcut bir kayıt varsa yeni kayıt için 2.bir satır daha görünüyor.
Sanırım bu yeni satır görünmesin diye siz iptal ettiniz.

Bu nedenle en son ilçe seçildikten sonra, kayıt olup olmadığını kontrol edip,
kayıt yoksa kayıt ekleme sorgusu ile yeni bir kayıt ilave etmesini sağladım.
İstediğiniz de buydu sanırım.
Ekte bulabilirsiniz.

Kod:
Private Sub cboilce_AfterUpdate()
'Ay veya İlçe seçilmemişse bir şey yapmadan çıkar
If IsNull(Me.cboilce) Or IsNull(Me.cboay) Then Exit Sub
    
    'Seçilen alanlar için kayıt var mı diye kontrol eder, yoksa ekler
    
    If DCount("*", "Tablo1 Sorgu") = 0 Then
        
        'Sorgu çalışmadan önceki uyarı mesajlarını pasif yapar
        DoCmd.SetWarnings False
        
        'Yeni kayıt ekleme sorgusunu çalıştırır
        DoCmd.OpenQuery "Yeni_Kayit_Ekle", acNormal, acEdit
        
        'Uyarı mesajlarını aktif yapar
        DoCmd.SetWarnings True
    
    End If
    
    Me.kayıtlı.Requery

End Sub
Not: Form1'de IlceId yi almak için kullandığınız Metin kutusuna gerek yoktu, kaldırdım. Açılan Kutunun bağlı sütunu 2 yani ilceadı olarak görünmesinden dolayı id yi alamıyordunuz, bağlı sütunu 1 yapınca sorun düzeldi.
Ayrıca Tablo1 alanında Kurum alanına gerek yok, sorgudan alabilirsiniz o değeri.
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,552
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Teşekkürler, sayın Seruz...
 
Katılım
25 Ocak 2007
Mesajlar
65
Excel Vers. ve Dili
2003 türkce
abi, eline sağlık tam istediğim gibi olmuş teşekkürler ellerine sağlık Haklısın metin kutusu sadece ilceıd için onu da tam iki günde çözebildim
 
Son düzenleme:
Katılım
25 Ocak 2007
Mesajlar
65
Excel Vers. ve Dili
2003 türkce
arkadaşlar sayın seruzun gönderdiği formda biraz daha değişiklikler yaptım.
Sayın seruz sorun şu daha doğrusu sorun değil istediğim ilceden gelen sorgudan sonra kayıtlı ise veriler geliyo .kayıtlı değilse kayıt ekleme sorgusu ile yeni kayıt ekleniyo .bi sorun yok.eklenen kayıtlarda form üzerinden veri girez girmez taplo1'e kayıt ediyo.ben bunu forma koyduğum kaydetde tıkladığım zaman yapılmasını ve burdan iptal edilmesi durumunda değişiklik yapmadan çıkmasını sağlamak istiyorum.teşekkür ederim
 
Katılım
8 Eylül 2006
Mesajlar
155
Excel Vers. ve Dili
Excel 2002
Onun yerine ben size daha farklı bir öneride bulunsam.
Ekteki önerimi bir inceleyin.

Yok bu olmaz derseniz, bakarız isteğinize.
 
Katılım
25 Ocak 2007
Mesajlar
65
Excel Vers. ve Dili
2003 türkce
Buda olur tek tek uğraşmaktansa hepsi görülüyo .ama kurumların bazılarından gelen formlar hatalı oluyo ve tekrar istemek gerekiyo.o yüzden tektek kayıtların kalıcımı yoksa hatalımı olduğunu bilmem lazım.ve kaydet seçeneği ile bunu kalıcı veya geçici olarak kaydetmem lazım.bide bu geçiş aşaması bunun yanına 3 tane daha ayrı form eklicem sağlıkla ilgili bunlarda devirler falan olacak o yüzden tek tek olması daha kullanışlı ilerki formlar için
 
Katılım
8 Eylül 2006
Mesajlar
155
Excel Vers. ve Dili
Excel 2002
Benim fikrimi sorarsanız, bu şekli daha iyi.

Ay ve İlçeyi seçtikten sonra karşınıza tüm kurumlar geliyor ve hangilerinin
tamam hangilerinin eksik olduğunu daha rahat görebiliyorsunuz.

Söylediğiniz kalıcı ve geçici kayıt olayını detay forma yeni bir sütun (tabii tabloya da yeni bir alan) ve checkbox ekleyerek kolayca yapabilirsiniz diye düşünüyorum.

Yeni formlarda ekleyeceğinizi düşünürsek, bir çok kod yazmak yerine,
fazla kod yazılmadan yapılabilecek olan formlar çok daha basit ve kullanışlı olabilir.
 
Katılım
25 Ocak 2007
Mesajlar
65
Excel Vers. ve Dili
2003 türkce
biraz bunu üzeinde uğraşayım bakalım
ne çıkacak ortaya yardımlarınız için sonsuz teşekkürler teşekkürler
 
Katılım
8 Eylül 2006
Mesajlar
155
Excel Vers. ve Dili
Excel 2002
Bence bu şekil üzerinde biraz çalıştıktan ve checkbox'la geçici-kalıcı olayını çözdükten sonra alışacaksınız ve size daha rahat gelecek diye düşünüyorum.

Yine de olmazsa yazın, fırsat ve zaman bulabilirsem dediğiniz gibi de yapmaya çalışırım ileride ama önümüzdeki hafta foruma giremeyeceğim sanıyorum.

Belki başka arkadaşlar yardımcı olabilir o arada.
 
Katılım
25 Ocak 2007
Mesajlar
65
Excel Vers. ve Dili
2003 türkce
olay aslında sizin dediğiniz gibi ama şimdi ben kafamda bunu tasarladığım içim
sanki yapamayıpda karar değiştirmiş gibi olucam.şimdi şu noktadayım.alt foruma koydugum gerial tuşu ile kaydı geri alabiliyorum.kaydı silmeme zaten gerek yok.ama ana form üzerine koyduğum kaydet secenegine bunu atayamıyorum.yani ana formda katdet ve iptal secenegi iptal secilince

Function geri()
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70

End Function
fonksiyonunu
Call Form_kayıtlı.geri yordamı ile
çağrıyorum ama geri al komutu kullanılmaz diyo bunu aynısını altformüzeinde yapınca geri alıyo
sorun anaformdan geri alı tıklayınca altform aktif olmadığı için almadığı kanısındayım alt formu nasıl aktif yaparım veya bu sorunun cevabı ne olabilir
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın aygun78,

Herkesin de takip edebilmesi için, uygulamanızın son durumunu da ekleyebilirmisiniz?


İyi çalışmalar
 
Katılım
25 Ocak 2007
Mesajlar
65
Excel Vers. ve Dili
2003 türkce
gönderim göndermesine de hala sorunu çözemedim.ekte göreceğiniz üzere
form üzerine iki tane buton koydum.anaform üzerinden altform üzerinde yapılan değişiklikleri geri alamıyorum.aynı komutları altform üzerinde deniyorum sorun yok .Ana form üzerinde denediğimde "geri al komutu kullanılamaz diyo"
bunu geri alınmasını nasıl sağlarız
 
Katılım
19 Eylül 2008
Mesajlar
331
Excel Vers. ve Dili
2003
kod kısmı aşağıdaki gibi üzelterek yolluyorum kolay gelsinolmalı deneme rarı d

Private Sub cboilce_AfterUpdate()
Me.Metin48 = cboilce.Column(0)
Dim sql As String
sql = "SELECT Iller.il, Ilceler.ilce, Ilceler.ilID, Tablo1.sıra, Tablo1.ay, Tablo1.kurum, Tablo1.ilceıd, Tablo1.A, Tablo1.B, Tablo1.[A+B], Tablo1.C, Tablo1.D, Tablo1.E, Tablo1.F, Tablo1.G " & _
"FROM (Iller INNER JOIN Ilceler ON Iller.ilID = Ilceler.ilID) INNER JOIN Tablo1 ON Ilceler.ilceID = Tablo1.ilceıd " & _
"WHERE (((Tablo1.ay)='" & [Forms]![Form1]![cboay] & "') AND ((tablo1.ilceID)=" & [Forms]![Form1]![cboilce] & "))"

Form_Form1.RecordSource = sql
If Me.Recordset.RecordCount > 0 And Me.A <> "" Then
Me.ilce = cboilce
Me.il = cboil
End If
End Sub
 
Katılım
25 Ocak 2007
Mesajlar
65
Excel Vers. ve Dili
2003 türkce
adnanyurdakul kardeşim eline sağlık emek vermişin ama benim sorunum ana form üzerine koyduğumuz bi butonla alt formda yapılan değişiklikleri geri alabilmek ve kaydet demeden taplo 1 veri girilmesin istiyorum yoksa diger sorun " seruz " arkadaşımızın ekleme sorgusu ile sorunsuz çalışıyor.
 
Üst