userformdaki bilgileri access'e aktarmak

Katılım
30 Mart 2008
Mesajlar
44
Excel Vers. ve Dili
EXCEL 2007 TÜRKÇE
Merhaba,
ustalarım ben bu işi öğrenmek istiyorum.
ama bir türlü beceremiyorum.

benim bir satış sözleşmem var.bu userformdan bilgilerin tamamını data.mdb dosyasına kaydetmek istiyorum.

yardımlarınız bekliyorum. iyi çalışmalar.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,290
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Access 2007 ile conn. string de değişti. Örnek:

Kod:
cn.Open _
    "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _
        ThisWorkbook.Path & "\data.accdb"
 
Katılım
30 Mart 2008
Mesajlar
44
Excel Vers. ve Dili
EXCEL 2007 TÜRKÇE
zeki üstadım özür 2003 olarak yeniden kaydettim.
ama verdiğin kod ile denedim hata verdi.
yeniden gözden geçirebilirmisin.
sana zahmet.
çünkü user formda fazlaca veri var.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,290
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Aşağıda görülen prosedurde "???" olan kısımları sayfa formuna göre uyarlayın. Ben ikisini yazdım.

Kod:
Sub add_new()
Dim cn As Object, rs As Object

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

cn.Open _
    "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _
        ThisWorkbook.Path & "\data.accdb"
        
rs.Open "SOZLESME", cn, 1, 3

With rs
    .addnew
    .fields("FİRMA İSMİ") = [b10]
    .fields("ŞAHIS İSMİ") = [b11]
    .fields("???") = "???"
    .fields("???") = "???"
    .Update
    .Close
End With

cn.Close

Set rs = Nothing
Set cn = Nothing
End Sub
 
Katılım
30 Mart 2008
Mesajlar
44
Excel Vers. ve Dili
EXCEL 2007 TÜRKÇE
çok teşekkür ederim Zeki Üstadım.Ellerine sağlık.
Üstadım mesela userformda çok fazla alan var. Acaba bunları daha kısa bir yöntemle yapabilirmiyiz.

- bu verdiğiniz kodu kaydet butonu ile yapabilirim değilmi?
 
Katılım
30 Mart 2008
Mesajlar
44
Excel Vers. ve Dili
EXCEL 2007 TÜRKÇE
yukarıdaki kodu nereye yazmalıyım zeki üstadım.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,290
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Boş bir modul ekleyip içine yapıştırın ve butona bağlayın.

Buton altında,
Kod:
Call add_new
olarak çağırabilirsiniz.
 
Katılım
30 Mart 2008
Mesajlar
44
Excel Vers. ve Dili
EXCEL 2007 TÜRKÇE
Zeki Üstadım çok teşekkür ederim.Ellerine sağlık.
biraz kızdırdım galiba. özür dilerim.
öğrenmeye çalışıyorum.
 
Katılım
30 Mart 2008
Mesajlar
44
Excel Vers. ve Dili
EXCEL 2007 TÜRKÇE
zeki üstadım acaba modülde her hücreyi tek tek yazıyoruzya.bunu nasıl kısayoldan bütün bilgiyi kayda alabiliriz.
user form boşken kayıt tuşuna basıldığında kayıt yapmasa uyarı verse.
 
Katılım
30 Mart 2008
Mesajlar
44
Excel Vers. ve Dili
EXCEL 2007 TÜRKÇE
zeki üstadım acaba modülde her hücreyi tek tek yazıyoruzya.bunu nasıl kısayoldan bütün bilgiyi kayda alabiliriz.
user form boşken kayıt tuşuna basıldığında kayıt yapmasa uyarı verse.mümkünatı yokmudur zeki üstadım.
 
Son düzenleme:
Katılım
30 Mart 2008
Mesajlar
44
Excel Vers. ve Dili
EXCEL 2007 TÜRKÇE
zeki üstadım acaba modülde her hücreyi tek tek yazıyoruzya.bunu nasıl kısayoldan bütün bilgiyi kayda alabiliriz.
user form boşken kayıt tuşuna basıldığında kayıt yapmasa uyarı verse.mümkünatı yokmudur zeki üstadım.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,290
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Uyarı için aşağıdaki gibi kullanabilirsiniz. Tek tek yazma kısaltılabilir. Bir kez yazacağınız için tek tek yazın, üşenmeyin. ;)

Kod:
Sub Test()

    If Not IsEmpty("textbox?") Then
        Call add_new
    Else
        MsgBox "Formda boş alan bırakmayın."
    End If
    
End Sub

Sub add_new()
Dim cn As Object, rs As Object

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

cn.Open _
    "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _
        ThisWorkbook.Path & "\data.accdb"
        
rs.Open "SOZLESME", cn, 1, 3

With rs
    .addnew
    .fields("FİRMA İSMİ") = "textbox?"
    .fields("ŞAHIS İSMİ") = "textbox?"
    .fields("???") = "???"
    .fields("???") = "???"
    .Update
    .Close
End With

cn.Close

Set rs = Nothing
Set cn = Nothing
End Sub
 
Üst