Merhaba,
1- Formundaki yeni kayıt ekle butonuna tıklayıp kayıt ekledikten sonra tablomda ilk satırdaki bilgileri siliyor. Benim asıl projemde 700 küsür kayıt var.
Ona kayıt ekledikten sonra kaydı sona atmıyor, belirsiz yerlere atıyor.
2- İleri geri tuşlarına tıklayınca açılan listemdeki bilgiler gözükmüyor.
Teşekkürler...
1 - formunuzda bir sorun var galiba normalde
DoCmd.GoToRecord , , acNewRec kodu ilişkili formda doğrudan yeni kayda geçip tüm alanları boşaltır ama sizin çalışmanızda o kod form üzerinde yeni gitmeyip o an hangi kayıttaysa o kayıtta kalıp tüm işlemleri onun üstünde yapıyor dolayısıyla bir karmaşa doğuyor.
çözüm olarak önce veri tabanındaki
frmItem formunu silip yeniden eski çalışmanızdaki formu süreklyip bıraktım şu an sorunsuz çalışıyor gibi geldi
2 - formunuz doğrudan tabloya bağlı olduğu için kayıt ekleme kodunda kullandığınız kod sıralaması hatalı
Call Temizle
Call Alanac
Call Butonkapat
Ekle = True
duzenle = False
Me.cbohostname = Null
Me.cboIpAddress = Null
DoCmd.GoToRecord , , acNewRec
siz önce
Call Temizle kodu ile formdaki metin kutularını boşaltıyorsunuz o nedenle de formdaki alanlar boşaltılıyor yani aslında o anki aktif kayıttaki tüm veriler siliniyor
sonra da
DoCmd.GoToRecord , , acNewRec ile yeni kayıt oluşturmaya çalışıyorsunuz oysa önce
DoCmd.GoToRecord , , acNewRec ile yeni kayıt eklme çalışmalı sonra diğer alt yordamlar
Ekle = True
duzenle = False
Me.cbohostname = Null
Me.cboIpAddress = Null
DoCmd.GoToRecord , , acNewRec
Call Temizle
Call Alanac
Call Butonkapat
(17/07/2023, 13:11)berduş yazdı: 1 - formunuzda bir sorun var galiba normalde DoCmd.GoToRecord , , acNewRec kodu ilişkili formda doğrudan yeni kayda geçip tüm alanları boşaltır ama sizin çalışmanızda o kod form üzerinde yeni gitmeyip o an hangi kayıttaysa o kayıtta kalıp tüm işlemleri onun üstünde yapıyor dolayısıyla bir karmaşa doğuyor.
çözüm olarak önce veri tabanındaki frmItem formunu silip yeniden eski çalışmanızdaki formu süreklyip bıraktım şu an sorunsuz çalışıyor gibi geldi
2 - formunuz doğrudan tabloya bağlı olduğu için kayıt ekleme kodunda kullandığınız kod sıralaması hatalı
Call Temizle
Call Alanac
Call Butonkapat
Ekle = True
duzenle = False
Me.cbohostname = Null
Me.cboIpAddress = Null
DoCmd.GoToRecord , , acNewRec
siz önce Call Temizle kodu ile formdaki metin kutularını boşaltıyorsunuz o nedenle de formdaki alanlar boşaltılıyor yani aslında o anki aktif kayıttaki tüm veriler siliniyor
sonra da DoCmd.GoToRecord , , acNewRec ile yeni kayıt oluşturmaya çalışıyorsunuz oysa önce DoCmd.GoToRecord , , acNewRec ile yeni kayıt eklme çalışmalı sonra diğer alt yordamlar
Ekle = True
duzenle = False
Me.cbohostname = Null
Me.cboIpAddress = Null
DoCmd.GoToRecord , , acNewRec
Call Temizle
Call Alanac
Call Butonkapat
Teşekkürler çözüldü ama asıl uygulamamda yeni kaydı sona atmıyor onu nasıl çözeceğim. Belirsiz yerlere atıyor yeni kaydı
Yani bende 760 kayıt var yeni kayıt ekleyince kaydı 130. sıraya atmış. Onu da arayıp buluyorum hep farklı yerlere atıyor
Excel yapısı gibi düşünmeyin veritabanında kayıtlar exceldeki gibi liste yapısında saklanmaz. Kayıtlar için tabloların içinde gezmek hatalı bir yaklaşım. Veri girişi, sorgulamalar, raporlamalar formlar aracılığı ile olur ve ihtiyacınız doğrultusundaki kriterlere göre sıralanır.
@
atoykan hocamın belirttiği gibi exceldeki gibi liste şeklinde saklanmaz,
formunuzdaki sorunu bulamadım ama istersen,z benim yaptığım gibi aşağıdaki adımları izleyerek sorunu gidermeye çalışabilirsiniz
1 - çalışmanızın yedeğini alın
2 - çalışmanızdaki tüm formları silip
sıkıştır/onar yapın
3 - yedeklediğiniz çalışmayı açıp sürükle/bırak ile yedekteki tüm formları çalışmanıza taşıyın
4 - son olarak tekrar
sıkıştır/onar yapın
Teşekkürler @
atoykan ve @
berduş
Bir tane daha sorum olacak açılan listelerim ilişkili olmadığı için gezinti düğmelerim onlarda çalışmıyor. Acaba açılan listede çalışması için ne yapmam lazım? İlişkili yapamam sonra bazı hatalar oluyor.
Yani açılan listeden kayıt seçtikten sonra sonraki kayıt için ileri düğmesine tıklayınca. Textboxtaki bilgilerim değişiyor ama açılan kutudaki bilgiler aynı kalıyor.