Seçime göre farklı veritabanına kaydetme
#1
access-sql-16 
Değerli arkadaşlar merhaba;
İki ayrı veritabanı (mdb) düşünelim ve bunlara bağlı form, sorgu, rapor vs. Veritabanının bir formunda çalışırken verileri bir seçenek ile (seçenek düğmesi veya onay kutusu) iki ayrı veritabanına kaydetmeyi nasıl sağlarım. Seçenek düğmesi olursa tek veritabanına kaydedebilirim. Onay kutusu olursa iki veritabanına da aynı anda kaydedebilirim. Onay kutusu üzerinden örnek vermek gerekirse;
Örnek1;
A veritabanında bulunan formda doldurulan verileri, yine form üzerinde bulunan A seçili onay kutusu ile kaydet butonuna bastığımızda. Bu kayıt A veritabanına kaydedilecektir. Emin misiniz? şeklinde bir kayıt oluşturma.
Örnek2;
A veritabanında bulunan formda doldurulan verileri, yine form üzerinde bulunan A ve B seçili onay kutusu ile kaydet butonuna bastığımızda. Bu kayıt A ve B veritabanına kaydedilecektir. Emin misiniz? şeklinde kayıt oluşturma.
Örnek3;
A veritabanında çalışırken istenilen kriterlerle (form üzerine yerleştirilen) B veritabınından bir raporu yazdırmak istiyorum. Formun üzerine yerleştirilen kriterlerle (seçilen veritabanın gösteren onay kutusu, Raporun adı vs.) B veritabınında bulunan X raporunu seçtiğim kriterlerle önce ekrana sonra çıktısını almak.

Not: Örnekte A veritabanı üzerindeki formu kullanıyorum, bu B üzerindeki veritabanındaki formda olabilir.(di) Amacım seçenekle tek form üzerinden, aynı anda iki veritabanına veya tek veritabanına kayıt sağlamak. Ayrıca onay kutusu açılışta A veritabanı seçili olacak, B veritabanı isteğe göre seçilecek.

Böyle bir çalışma sistemi faaliyete geçebilir mi? Geçebilirse bunun yol ve metodu nasıl olmalı?

Teşekkürler



  Alıntı
Bu mesajı beğenenler:
#2
Nacizane düşüncem,

1. bilgileri form üzerine aldıktan sonra sql aracı ile kullanıcının istediği VT aktarabilir, veya
2. formu lokal tablo üzerine yazıp gene sql veya export aracı ile da aktarabilir
(DoCmd.TransferDatabase acExport...)

Belkide nedeni iletirseniz daha net cevap verebilirim



  Alıntı
Bu mesajı beğenenler:
#3
Sayın Vax44;
Cevap1; Verileri forma almayacağız, aksine forma veri girip yine form üzerinden seçeneğe göre veritabanlarına kaydetme olacak.
Cevap2; Forma girilen veriler lokal veritabanına otomatik olarak kaydedilecek. Şayet kullanıcı isterse lokal veritabanını devreden çıkaracak ve 2. veritabanına kaydedecek. Veya her ikisinide aynı anda kaydedecek. Tamamen kullanıcının seçeneğine bağlı.
Kolaygelsin.



  Alıntı
Bu mesajı beğenenler:
#4
örnekteki klasörü masaüstüne çıkar unutma hepsi aynı klasörde olacak senin kullanacağın "C" veritabanı ondan veri girişi yaparsın form üzerindeki seçim den a yada b veya ikisini birden seçersin kaydet tuşuna bastığın zaman sana sorar şu veritabnalarına kaydedilecek onaylıyormusunuz ok dersen kaydeder hayır dersen vazgeçer böyle bir şey bu şekilde bin tane birden veritabanıana kayıt yapabilirsin

form üzerinde üç tane kod var
birincisi bize 2 ye kadar sayacak ve her saymada i1 i2 diye alanları kontrol edecek ve dolu olan alanalrı sayacak 1 yada 2 diye eğer sayı yoksa koddan çıkacak sayı varsa sayıya göre bize mesaj kodunu çağıracak ve mesaja bizim istediğimiz a b veya a ve b mesajını yollayacak

Visual Basic
  1. Private Sub Komut221_Click()
  2. On Error GoTo Err_Komut221_Click
  3. Dim v As Integer
  4. Dim z As Integer
  5. z = 0
  6. For v = 1 To 2 Step 1
  7. If Me("i" & v).Value = True Then
  8. z = z + 1
  9. End If
  10. Next v
  11. Select Case z
  12. Case 1
  13. mesaj ("A Veritabanına Kayıt Yapacaksınız Devam Edecekmisiniz ?")
  14. Case 2
  15. mesaj ("A ve B Veritabanına Kayıt Yapacaksınız Devam Edecekmisiniz ?")
  16. Case 0
  17. MsgBox "A yada B veritabanını seçmelisiniz"
  18. Exit Sub
  19. End Select
  20.  
  21. Exit_Komut221_Click:
  22. Exit Sub
  23.  
  24. Err_Komut221_Click:
  25.  
  26. Resume Exit_Komut221_Click
  27.  
  28. End Sub



burası mesaj kodumuz yukardaki koddan gelen mesajı bize görüğntüleyecek ve evet yada hayır seçmemizi isteyecek evet değimizde alanlara bakacak ve dolu olan alana göre a ve b veritabanı adını kaydet koduna gönderecek.

Visual Basic
  1. Function mesaj(Msg)
  2. Dim Style, Title, Help, Ctxt, Response, MyString
  3. Style = vbYesNo + vbCritical + vbDefaultButton2
  4. Title = "UYARI"
  5. Ctxt = 1000
  6. Response = MsgBox(Msg, Style, Title, Help, Ctxt)
  7. If Response = vbYes Then
  8. MyString = "Yes"
  9. If i1.Value = True Then
  10. Call akaydet("a")
  11. End If
  12. If i2.Value = True Then
  13. Call akaydet("b")
  14. End If
  15.  
  16. Else
  17. MyString = "No"
  18. Exit Function
  19. End If
  20. End Function



burdaki vt değişkeni bizim veritabanımızın adını gönderğimiz yer ona göre şu an çalıştığımız veritabanının bulunduğu yerde vt ye hangi ismi verdikse o isimli veritabanını arıyor bağlanıyor ve ordaki Tablo1 tablosunu açıyor zaten alanlar ve tablo ismi aynı olduğundan tek bir fonksiyon yetti şayet alanlar değişik olsaydı tek bir fonksiyon değil veritabanı ve tablo ve alanların değişkenliğine göre fonksiyon yazardık

Visual Basic
  1. Function akaydet(vt As String)
  2. Dim conn As New ADODB.Connection
  3. Dim rst As New ADODB.Recordset
  4. Dim klasor
  5. klasor = CurrentProject.Path & "\" & vt & ".mdb"
  6. With conn
  7. .Provider = "Microsoft.JET.OLEDB.4.0"
  8. .Open klasor
  9. End With
  10. With rst
  11. .ActiveConnection = conn
  12. .Open "Tablo1", LockType:=adLockOptimistic
  13. .AddNew
  14. .Fields("adisoyadi").Value = Me.Metin0
  15. .Update
  16. End With
  17. rst.Close
  18. conn.Close
  19. End Function




Eklenti Dosyaları
.rar   örnek.rar (Boyut: 32,57 KB / İndirilme: 83)



  Alıntı
Bu mesajı beğenenler:
#5
Sayın esrefigit;
Müthişsiniz hocam. Elinize sağlık.
Peki bu çalışma üzerinden gidersek, c ve b veritabanı olduğunu varsayalım. Formun üzerinde de c ve b onay tuşları kaydet tuşuna bastığımızda hem c'ye (formun bulunduğu) hem de b'ye nasıl kaydedebiliriz. Yani veritabanı sayısını 2'ye düşürmüş olacağız. Hem de formun bulunduğu veritabanına da kayıt yapacağız. İsteğe göre de b veritabanına da kayıt yapılacak.
Diğer bir husus c veritabanı üzerinden b veritabanındaki herhangi bir raporun çıktısını alabilir miyiz. Alabilirsek, Nasıl?
Saygılarımla, Teşekkürler.



  Alıntı
Bu mesajı beğenenler:
#6
Sayın esrefigit;
En son yazdığım açıklama, bu çalışmanız üzerinde hayata geçirilebilir mi?
Teşekkürler.



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
access-sql-9 [VBA] Veri Tabanındaki Bilgileri Farklı Bir Tabloya çağırma harun kaçar 4 74 20-05-2024, 14:29
Son Mesaj: dsezgin
  Seçime Göre Raporlama 2 halil.tefci 9 253 22-12-2023, 23:08
Son Mesaj: halil.tefci
  Farklı Tablodan Mükerrer Olmayan Bilgi Almak bilservisci 5 151 17-12-2023, 18:04
Son Mesaj: dsezgin
  [SORGU] Farklı Tablolarda Yer Alan Satış Bilgilerini Toplama Sorgusu Lidervet 1 148 09-11-2023, 00:54
Son Mesaj: dsezgin
  Formu Pdf Olarak Kaydetme snapper 8 266 01-11-2023, 22:59
Son Mesaj: dsezgin
  Tablo Verilerinin 2 Farklı Metotla Silinmesindeki Performans Farkı Hk. adnnfrm 3 151 22-10-2023, 11:46
Son Mesaj: BeyTor
  Access Verilerini Google Studio Veya Farklı Dashboard çözümleri Ile Raporlama Hk. adnnfrm 2 240 18-10-2023, 08:11
Son Mesaj: adnnfrm
  [RAPOR] Seçime Göre Raporlama 2 golf2000 7 313 13-10-2023, 23:28
Son Mesaj: golf2000

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi