Formlar arası veri aktarımı
Tarih
26/12/2009 03:56
Konu Sahibi
Hayri16
Yorumlar
8
Okunma
3085
Konuyu Oyla:
  • Derecelendirme: 2/5 - 1 oy
  • 5
  • 4
  • 3
  • 2
  • 1

Derecelendirme: 2/5 - 1 oy



Hayri16
Aktif Üye
Kullanici Avatari
Aktif Üye
1.010
12/11/2009
291
Bursa
Ofis 2007
22/12/2015,15:41
Çözüldü 
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 Fur
İ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.


Ek Dosyalar
.rar   RECETE2003-3.rar (Dosya Boyutu: 485,8 KB / İndirme Sayısı: 21)
Hayri16, 12-11-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla


ozanakkaya
sledgeab
Kullanici Avatari
Kurucu
O.... A....
9.014
29/01/2008
Denizli
Memur
Ofis 2010 32 Bit
Çözüldü 
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    If IsNull(hgetir) Or hgetir = 0 Or hgetir = "" Or hgetir = Empty Then  'yoksa yeni hasta kayıt formunu açıp hastayı ekleyeceğiz
        mesaj = MsgBox("Bu isimli kişi Hasta veritabanında kayıtlı değil." & Chr(13) & "Şimdi Eklemek ister misiniz?", _
        vbCritical + vbYesNo, _
        "<<HASTA BULUNAMADI>>")
             If mesaj = vbYes Then
             DoCmd.OpenForm "FRM_HASTA"

strSQL = "SELECT * FROM TBL_HASTA_BILGI "
Set rstkayit = New ADODB.Recordset
rstkayit.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
With rstkayit
.AddNew
.Fields("adi") = Me.Alan4
.Fields("soyadi") = Me.Alan5
End With
             Else
             Exit Sub
             End If
    Else
    End If


FROM TBL_HASTA_BILGI tablosuna yeni kayıt açtırıp adı ve soyadını kaydedilmesini sağla. (tc kimlik no alanı gerekli değil olarak değiştir)

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.

Cevapla


Hayri16
Aktif Üye
Kullanici Avatari
Aktif Üye
1.010
12/11/2009
291
Bursa
Ofis 2007
22/12/2015,15:41
Çözüldü 
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
Hayri16, 12-11-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla


ozanakkaya
sledgeab
Kullanici Avatari
Kurucu
O.... A....
9.014
29/01/2008
Denizli
Memur
Ofis 2010 32 Bit
Çözüldü 
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


Ek Dosyalar
.rar   sled_RECETE2003.rar (Dosya Boyutu: 491,35 KB / İndirme Sayısı: 60)
Cevapla


Hayri16
Aktif Üye
Kullanici Avatari
Aktif Üye
1.010
12/11/2009
291
Bursa
Ofis 2007
22/12/2015,15:41
Çözüldü 
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:
1
2
3
4
5
6
7
8
9
10
Private Sub kaynakliste_AfterUpdate()
On Error GoTo hata:
  ' Denetime uyan kaydı bul.
    Dim rs As Object

    Set rs = Me.Recordset.Clone
    rs.FindFirst "[Kimlik] = " & Str(Nz(Me![kaynakliste], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
hata:     Exit Sub
End Sub

bu kodu neden clicke değil de afterUpdateye koyduk.
Zahmet verdiğimin farkındayım. Bu kadar çabanız bile şükran duymama için yeterli. Saygılarımla kalın sağlıcakla.

Hayri16, 12-11-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla


Hayri16
Aktif Üye
Kullanici Avatari
Aktif Üye
1.010
12/11/2009
291
Bursa
Ofis 2007
22/12/2015,15:41
Çözüldü 
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.
Hayri16, 12-11-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla







Konuyu Okuyanlar: 1 Ziyaretçi


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Tarih Son Yorum
  Excelden Veri Aktarımı Hatası Xleash 6 131 25/11/2016, 10:52 Xleash
  Bir buton ile formlar açmak nightashes 10 257 20/11/2016, 10:54 nightashes
  Formlar Arası Bağlantı Kurma mmert06 3 135 31/10/2016, 16:31 mmert06
  Formlar Arası İlişki Kurmak mmert06 7 222 30/10/2016, 16:28 ozanakkaya
  Formlar Arası Geçiş ve Form Tasarımı Sorunu mmert06 5 126 29/10/2016, 22:40 mmert06


Türkçe Çeviri: MCTR, Forum Yazılımı: MyBB, © 2002-2016 MyBB Group.
DMCA.com Protection Status
© Desing by XSTYLED| Develops by ozanakkaya