![]() |
Formlar arası veri aktarımı - Baskı Önizleme +- AccessTr.neT (https://accesstr.net) +-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html) +--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html) +--- Konu Başlığı: Formlar arası veri aktarımı (/konu-formlar-arasi-veri-aktarimi--5463.html) Sayfalar:
1
2
|
Formlar arası veri aktarımı - Hayri16 - 26/12/2009 Değerli Arkadaşlar; Burada öğrendiklerimle kişisel bir eczane programı yapmaya çalışıyorum. Programda takıldığım bir yer var. Kısaca anlatmaya çalışayım. SGK provizyon programının b.sayarımıza bıraktığı *.csv dosyayı(74 alan içeriyor) access'e alıp , işlemlerden geçirerek oluşturduğum tablolara aktarıyorum. Bunun için hazırladığım formda "FRM_AKTARMA" önce ham kayıtların bazı alanlarını seçerek listeye aktarıyorum. Tıklayınca gerekli alanları dolduruyor. Bu arada hastayı sorguluyor. Eğer TBL_HASTA_BILGI veritabanında yoksa kullanıcıya ekleyeyim mi diye soruyor. Kullanıcı ekle derse "FRM_HASTA" formu açılarak yeni hasta kaydedilmesi sağlanıyor. 1- Yeni hasta kaydedilince formdaki bilgilerde karışıklık oluyor. Yeni hasta kaydedilirken (normalde bilgilerinin bazı alanları boştur.) FRM_AKTARMA formunda başka hastaların bilgileri çıkıyor. 2- Eğer işlem yapmadan çıkış seçeneği kullanılırsa bu kez "kaynakliste" adındaki listede (formu tasarım görünümünde açıp tekrar çalıştırıldığında) son hasta kaydımızın birebir kopyası üretiliyor. Sonuçta bu formlar arası veri aktarımında "garip işler" dönüyor ![]() İlgilenecek arkadaşlarımıza şimdiden teşekkürler. Saygılarımla... Not: Kullanılan veriler(TC no, adres, soyad,telefon) uydurmadır. İlaç bilgileri, firma ve barkodlar gerçektir. Cvp: Formlar arası veri aktarımı - ozanakkaya - 26/12/2009 Daha önce yazılan mesajları konuyu okuyacakların kafasını karıştırmaması için sildim. hgetir = Dlookup ("last(kimlik)", "TBL_HASTA_BILGI") kodu ile TBL_HASTA_BILGI tablosundan son kaydı alıyorsunuz ve devamındaki kodlarla bu kimlik numarasına göre forma son kayıttaki verileri aktarıyorsunuz. devamında da KAYNAK tablosundaki ilk kayıt değiştiriliyor, Private Sub hasta_kontrol() kodunu Kod:
If IsNull(hgetir) Or hgetir = 0 Or hgetir = "" Or hgetir = Empty Then 'yoksa yeni hasta kayıt formunu açıp hastayı ekleyeceğiz FRM_HASTA formundaki Private Sub yenikayit() koduna yazdığın .addnew kodunu .movelast (az önce yeni kayıt ekledik, movelast ile son kaydı düzenliyoruz) olarak değiştir. ayrıca FRM_AKTARMA formunun kayıt kaynağı KAYNAK tablosu, yapılan her işlem 1. kayıt üzerinden gerçekleştiriliyor, bu yüzden aynı veriden 2 tane oluşuyor. yazılan bir koddan dolayı KAYNAK tablosundaki ilk kayıt değiştiriliyor. Cvp: Formlar arası veri aktarımı - Hayri16 - 26/12/2009 Sayın sledgeab; Gecenin o saatinde ben bile dayanamayıp yatmak zorunda kaldım. Siz ise devam edip çözüm üretmeye çalışmışsınız. Çok sağolun. Önerilerinizi uygulamaya çalışıyorum. Denedikten sonra bilgi vereceğim. Saygılarımla Cvp: Formlar arası veri aktarımı - ozanakkaya - 26/12/2009 dlookupu çok yanlış kullanmışsın, tablonun kayıt kaynağı hasta tablosu, Dlookup ile hasta tablosundan veri almışsın. Kodların neredeyse tamamı Dlookup . ekteki örneği incele Cvp: Formlar arası veri aktarımı - Hayri16 - 26/12/2009 Sayın sledgeab; Öncelikle çok teşekkür ederim.Programı baştan aşağı gözden geçirmiş , mantığını kavramaya çalışmışsınız. Evet haklısınız çok Dlookup fonksiyonu kulandım. Çünkü programı yazmaya başladığımda başka türlü nasıl yapılır bilmiyordum. Şimdi Ado ile de yapılabileceğini biliyorum. Program genel hatlarıyla bitince onları ve diğer bazı kodları değiştirmeyi düşünüyorum. Sizin değitirdiğiniz örneğe gelince; 1- Listeye clicklediğimizde liste kutusu geçici olarak kayboluyor 2- Listede gezinirken hasta veritanabında kayıtlı olmayan hastanın (bilgilerini kaynaktan almayan ) alanları başka kayıtlardan geliyor. Tüm alanlar dolu gözüküyor. 3- Öğrenmek amacıyla aşağıda eklediğiniz kodun ne iş yaptığını sorabilir miyim? Kod:
Private Sub kaynakliste_AfterUpdate() Zahmet verdiğimin farkındayım. Bu kadar çabanız bile şükran duymama için yeterli. Saygılarımla kalın sağlıcakla. Cvp: Formlar arası veri aktarımı - Hayri16 - 27/12/2009 Sayın sledgeab; Sorunu şimdilik erteledim. Şöyle geçici bir çözüm buldum. Bir form daha yaptım. Eğer hasta yoksa sadece yeni kayıt yapılabilen forma, eğer varsa ve bilgileri eksikse sadece güncelleme yapılabilen forma gönderdim. İleride tekrar dönüp üzerinde değerlendirme yapacağım. Her şey için sonsuz teşekkürler. |