Access Dosyasındaki İki Tabloyu İlişkilendirme ve Kayıt Girme

Katılım
15 Nisan 2008
Mesajlar
303
Excel Vers. ve Dili
2010
Arkadaşlar tek tabloya aşağıdaki kodlar ile Excelde Userform üzerinden veri girişi yapabiliyorum, tablo sütun sayısı çok fazla olduğundan tabloyu bölmek zorundayım. bu yüzden bu iki tabloya aynı anda nasıl kayıt eklerim. bununla ilgili bir örnek uygulama varmı. Yardımlarınız için şimdiden teşekkürler.

Kod:
 Private Sub CommandButton7_Click()

' SAYFAYA YENİ KAYIT YAPAR
    Dim yol As String, dosya As String
    Dim Baglan As New ADODB.Connection, ks As New ADODB.Recordset
    yol = ThisWorkbook.Path & "\"
    dosya = "VeriTabanı.accdb"
    
    Set Baglan = New ADODB.Connection
    Baglan.Open "Provider=Microsoft.ace.OLEDB.12.0;Data Source=" & yol & dosya & ";"

    Set ks = New ADODB.Recordset
    
        ' Bu kısım mükerrer kayıt kontrolü yapıyor
    
     ks.Open "SELECT ([Alan1]) FROM Analiz where ([Alan1])='" & TextBox46.Value & "';", Baglan, adOpenKeyset, adLockReadOnly
    If ks.RecordCount > 0 Then
        MsgBox "[ " & TextBox46.Value & "]" & vbLf & "Bu Rapor Numarası Daha Önce Kaydedilmiş." & vbLf & "İşlem İptal oldu.", vbCritical, "UYARI"
        TextBox46.SetFocus
        GoTo son
    End If
    ks.Close
    
    '..........................................
    
    
    ks.Open "SELECT * FROM Analiz", Baglan, adOpenDynamic, adLockOptimistic
    ks.AddNew
  
ks("Alan1") = TextBox46.Text
ks("Alan2") = ComboBox3.Text
ks("Alan3") = ComboBox4.Text
ks("Alan4") = ComboBox5.Text
ks("Alan5") = ComboBox6.Text
ks("Alan6") = TextBox47.Text
ks("Alan7") = TextBox48.Text
ks("Alan8") = TextBox49.Text
ks("Alan9") = TextBox50.Text
ks("Alan10") = TextBox51.Text
ks("Alan11") = TextBox52.Text
ks("Alan12") = TextBox53.Text
ks("Alan13") = TextBox54.Text
ks("Alan14") = TextBox55.Text
ks("Alan15") = TextBox56.Text
ks("Alan16") = ComboBox7.Text
ks("Alan17") = TextBox57.Text
ks("Alan18") = TextBox58.Text
ks("Alan19") = TextBox59.Text
ks("Alan20") = TextBox60.Text
ks("Alan21") = TextBox61.Text
ks("Alan22") = TextBox62.Text
ks("Alan23") = TextBox63.Text
ks("Alan24") = TextBox64.Text
ks("Alan25") = TextBox65.Text
ks("Alan26") = TextBox66.Text
ks("Alan27") = TextBox67.Text
ks("Alan28") = TextBox68.Text
ks("Alan29") = TextBox69.Text
ks("Alan30") = TextBox70.Text
ks("Alan31") = TextBox71.Text
ks("Alan32") = TextBox72.Text
ks("Alan33") = TextBox73.Text
ks("Alan34") = TextBox74.Text
ks("Alan35") = TextBox75.Text
ks("Alan36") = TextBox76.Text
ks("Alan37") = TextBox77.Text
ks("Alan38") = TextBox78.Text
ks("Alan39") = TextBox79.Text
ks("Alan40") = TextBox80.Text
ks("Alan41") = TextBox81.Text
ks("Alan42") = TextBox82.Text
ks("Alan43") = TextBox83.Text
ks("Alan44") = TextBox84.Text
ks("Alan45") = TextBox85.Text
ks("Alan46") = TextBox86.Text
ks("Alan47") = TextBox87.Text
ks("Alan48") = TextBox88.Text
ks("Alan49") = TextBox89.Text
ks("Alan50") = ComboBox8.Text
ks("Alan51") = TextBox90.Text
ks("Alan52") = TextBox91.Text
ks("Alan53") = TextBox92.Text
ks("Alan54") = TextBox93.Text
ks("Alan55") = TextBox94.Text
ks("Alan56") = TextBox95.Text
ks("Alan57") = TextBox96.Text
ks("Alan58") = TextBox97.Text
ks("Alan59") = TextBox98.Text
ks("Alan60") = TextBox99.Text
ks("Alan61") = TextBox100.Text
ks("Alan62") = TextBox101.Text
ks("Alan63") = TextBox102.Text
ks("Alan64") = TextBox103.Text
ks("Alan65") = TextBox104.Text
ks("Alan66") = TextBox105.Text
ks("Alan67") = TextBox106.Text
ks("Alan68") = TextBox107.Text
ks("Alan69") = TextBox108.Text
ks("Alan70") = TextBox109.Text
ks("Alan71") = ComboBox9.Text
ks("Alan72") = TextBox110.Text
ks("Alan73") = TextBox111.Text
ks("Alan74") = TextBox112.Text
ks("Alan75") = TextBox113.Text
ks("Alan76") = TextBox114.Text
ks("Alan77") = TextBox115.Text
ks("Alan78") = TextBox116.Text
ks("Alan79") = TextBox117.Text
ks("Alan80") = TextBox118.Text
ks("Alan81") = TextBox119.Text
ks("Alan82") = TextBox120.Text
ks("Alan83") = TextBox121.Text
ks("Alan84") = TextBox122.Text
ks("Alan85") = TextBox123.Text
ks("Alan86") = TextBox124.Text
ks("Alan87") = TextBox125.Text
ks("Alan88") = TextBox126.Text
ks("Alan89") = TextBox127.Text
ks("Alan90") = TextBox128.Text
ks("Alan91") = TextBox129.Text
ks("Alan92") = TextBox130.Text
ks("Alan93") = ComboBox10.Text
ks("Alan94") = TextBox131.Text
ks("Alan95") = TextBox132.Text
ks("Alan96") = TextBox133.Text
ks("Alan97") = TextBox134.Text
ks("Alan98") = TextBox135.Text
ks("Alan99") = TextBox136.Text
ks("Alan100") = TextBox137.Text
ks("Alan101") = TextBox138.Text
ks("Alan102") = TextBox139.Text
ks("Alan103") = TextBox140.Text
ks("Alan104") = TextBox141.Text
ks("Alan105") = TextBox142.Text
ks("Alan106") = ComboBox11.Text
ks.Update

      CommandButton7.ForeColor = vbGreen
Application.Wait Now + TimeValue("00:00:02") / 1.5
CommandButton7.ForeColor = &HC00000
MsgBox "Kayıt Başarılı.", vbInformation, "BİLGİ"
ActiveWorkbook.Save

 ' TEXTBOX'LARI VE COMBOBOXLARI KAYIT YAPTIKTAN SONRA TEMİZLER
For Each Ctrl In Me.Controls
   If TypeName(Ctrl) = "TextBox" Then Ctrl.Value = Empty
   If TypeName(Ctrl) = "ComboBox" Then Ctrl.Value = Empty
Next
    
    TextBox60.Value = "150"
    TextBox63.Value = "110"
    TextBox64.Value = "900"
    TextBox65.Value = "13000"
    TextBox66.Value = "280"
    TextBox67.Value = "90"
    TextBox68.Value = "50"
    
    TextBox111.Value = "Max.66"
    TextBox113.Value = "Min.140"
    TextBox114.Value = "0,865-0,910"
    TextBox115.Value = "Max.0,1-0,3"
    TextBox116.Value = "Min.20"
    
son:
   ks.Close: Baglan.Close
    Set Baglan = Nothing
    Set ks = Nothing
    Call goster2
    TextBox46.SetFocus
    ListView2.SelectedItem = Nothing
End Sub
 

akd

Destek Ekibi
Destek Ekibi
Katılım
14 Ağustos 2004
Mesajlar
1,114
Excel Vers. ve Dili
2003
Ben sorunuzu anlamadım, bu kısım Access sorular sayfası, sanki sorunuz excelle kayıt işlemi?
eğer sorunuz excelle ilgili ise Excel sorular sayfasına sorunuz...
 

akd

Destek Ekibi
Destek Ekibi
Katılım
14 Ağustos 2004
Mesajlar
1,114
Excel Vers. ve Dili
2003
veri tabanı olarak "VeriTabanı.accdb" kullanıp exceldeki userform ile kaydediyorsan, işin çok zor,
tecrübeli eski bir excelci olarak sana tavsiyem, exceli hemen bırak, access öğrenmeye bak, access çok çok kolay.
 
Katılım
15 Nisan 2008
Mesajlar
303
Excel Vers. ve Dili
2010
Sorum hem excel hemde access ile ilgili, excel userform kullanarak access'e veri kaydı yapıyorum, accessde sütun sayısı en fazla 255 olduğu için daha fazlasını yapamıyorum. Sorum bununla ilgili yardımcı olursanız sevinirim.
 

akd

Destek Ekibi
Destek Ekibi
Katılım
14 Ağustos 2004
Mesajlar
1,114
Excel Vers. ve Dili
2003
Accessdeki alan veri türünü not olarak ayarlarsan sınırsız kayıt girebilirsin
 
Katılım
15 Nisan 2008
Mesajlar
303
Excel Vers. ve Dili
2010
Hücrelere veri girişinden bahsetmiyorum Sayın akd, sütun sayısını 255 üzerine çıkılamadığından iki tabloyu ilişkilendirmekten bahsediyorum.
 

denizfatihi

Altın Üye
Katılım
27 Ekim 2004
Mesajlar
62
Excel Vers. ve Dili
Office-2021
Altın Üyelik Bitiş Tarihi
26-03-2026
Nasıl bir sutun sayısı bu anlamadım, Neden tek bir tablo üzerinde bu işlemler?
 
Katılım
15 Nisan 2008
Mesajlar
303
Excel Vers. ve Dili
2010
Girilecek ilişkili veri çok fazla olunca doğal olarak sütun sayısıda fazla oluyor.
 

denizfatihi

Altın Üye
Katılım
27 Ekim 2004
Mesajlar
62
Excel Vers. ve Dili
Office-2021
Altın Üyelik Bitiş Tarihi
26-03-2026
Access tarafında bunu farklı tablolar halinde tutsan ve excele gönderirken sadece gerekli alanları alsan durumu kurtaramaz mısın ?
 
Katılım
15 Nisan 2008
Mesajlar
303
Excel Vers. ve Dili
2010
İstediğim access de ayrı ayrı iki tabloyu birbirine bağlamak ve excel userformdan 500 sütuna ulaşan veriyi bu iki tabloya kaydetmek gerektiğinde silmek düzeltmek güncellemek. Bunu tek tablo için yukarıdaki kaydetme kodunu kullanarak yapıyorum. İki tabloya nasıl yaparım sorum bu?
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,344
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Ticari bir proje yapmıyorsanız bu kadar sütuna ihtiyaç olacağını pek sanmıyorum.

Dosya içeriğini inceleyip yorum yapabilmemiz için dosyanızı buraya ekleyemiyorsanız, Access içinde veritabanı analizi yapan bir sihirbaz var. Onu kullanarak birden fazla tabloya bölebilirsiniz. (Başlamadan önce dosyanın bir kopyasını alın)
 
Katılım
15 Nisan 2008
Mesajlar
303
Excel Vers. ve Dili
2010
Access de 255 üzeri tabloda sutun oluşturulamıyor. O yüzden bölmek istiyorum. Onu nasıl hallederim Zeki bey.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,344
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Veritabanı kavramına ne kadar hakim olduğunuzu bilemem. Yine de 500 alana ihtiyacınız olduğunu düşünmüyorum.

İki seçeneğiniz var:

- MS Access in aşağıdaki resimde gösterdiğim sarı vurgulu sihirbazını çalıştırarak tablolarınızı bölün.

- Kendinize herhangi bir SQL Server veritabanı sistemi seçin ve onu kullanın. (MS SQL Server, Oracle, MySQL, Firebird, PostreSQL.... vs)

 

Ekli dosyalar

denizfatihi

Altın Üye
Katılım
27 Ekim 2004
Mesajlar
62
Excel Vers. ve Dili
Office-2021
Altın Üyelik Bitiş Tarihi
26-03-2026
Benim fikrim sutun sayısı bakımından 256 satırı geçiyor ise 2 ayrı sheet (sayfa) olacağı için veriler üzerinde işlem yayaparken işin yükü çok ve anlamsız bir şekilde artar
Örneğin
Sayfa1 de yaptığın bir iş için Sayfa2 ye aktardığın 257.sutun ile nasıl ilişkilendireceksin ?
 

akd

Destek Ekibi
Destek Ekibi
Katılım
14 Ağustos 2004
Mesajlar
1,114
Excel Vers. ve Dili
2003
500 sutundan bahsediyorsun, böyle bir çalışma kesinlikle sağlıksız olur, 500 sutuna veri girmesende programın kapasitesi çok büyür ve randıman alamazsın, programlama mantığını anlaman için bol bol ders izlemeni tavsiye ederim...
 
Üst