AccessTr.neT

Tam Versiyon: MsSql Server ADO Bağlantı Örneği
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
@ozguryasin tarafından yapılan MySql örneğini ufak düzenlemeler ile MsSql Server için uyarladım.

VBA penceresinde yer alan SqlServerConnStr modülündeki SqlServerConnStringGetir isimli fonksiyon bize MsSql Server'a bağlantı için gereken SqlServer Connection String (SqlServer'a Bağlantı Cümlesi) geri döndürür.

MsSql'e bağlantı için iki tür yöntem vardır:

1- Windows Authentication ile kendi bilgisayarınızda herhangi bir kullanıcı adı ve şifre gerektirmeden MsSql Server'a bağlanabilirsiniz. Bizim örneğimizde varsayılan olarak bu şekilde çalışmaktadır.
2- Eğer uzak bir makinede yer alan MsSql Server'a bağlanmak isterseniz ya da kendi sunucunuzda bile olsa Kullanıcı Adı ve Şifre ile bağlanmak istiyorsanız bu yöntemi kullanırsınız.

Eğer 2. yöntemi kullanacaksanız yapmanız gereken iki şey var:
1- BaglantiTuru değişkeninin içindeki değeri yani Windows Auth silin.
2- UserName ve Password değişkenlerinin değerini sunucunuza göre değiştirin.

Örnek kendi bilgisayarınızda çalışmayacaktır çünkü veritabanı bilgisayarınızda yok. Ne yapmanız gerek?

1- ServerName değişkenini kendi sunucunuza göre değiştirin.
2- DatabaseName değişkenine veritabanınızın adını yazın.
Img-grin  boş zamanımda yapmayı düşünüyırdum ama fırsat bulamamıştım. Eve gidince uzak serverden veri tabanı oluşturup databaee adı,  kuklaniciafive şifresini yorumda belirteyim. Uzaktan kullanılabilir hale gelsin Mysql gibi.
Evvela yeni bir mssql veri tabanı açtım. buda aktif oldu.

ekte düzenlenmiş halini yayınladım.  Olcay hocamda ilk mesajda düzeltebilirse memnun kalırım. Ayrıca aşağıda form form kodları da ayrıca yayınlıyorum. Faydalı olması dileğiyle.


accesstr_net  Formu

Option Compare Database
Option Explicit

Private Sub Form_Load()

   ' Form ilk yüklendiğinde kayıt listesini getirir
   Call ListeyiGetir

End Sub

Private Sub sil_Click()

   If MsgBox("Kayıt Silinsin Mi?", 36, "Siliniyor... www.accesstr.net") = vbYes Then
       
       Dim rs As New ADODB.Recordset
       rs.Open "SELECT * FROM accesstr", SqlServerConnStringGetir, adOpenKeyset, adLockOptimistic
       rs.Find "[id]=" & Me.id
       rs.Delete
       rs.Close: Set rs = Nothing
       MsgBox "Silinme Gerçekleşmiştir.", , "www.accesstr.net"
       Call ListeyiGetir
       
   Else
       
       MsgBox "Silme İşleminden Vaz Geçtiniz.", 48, "www.accesstr.net"
       
   End If
   
   Me.ad.Locked = True
   Me.soyad.Locked = True
   Me.odak.SetFocus
   Me.sil.Visible = False
   Me.duzenle.Visible = False
   
End Sub

Private Sub duzenle_Click()

   If MsgBox("Değişiklikler Güncellensin Mi?", 36, "Güncelleniyor... www.accesstr.net") = vbYes Then
       
       Dim rs As New ADODB.Recordset
       rs.Open "SELECT * FROM accesstr", SqlServerConnStringGetir, adOpenKeyset, adLockOptimistic
       rs.Find "[id]=" & Me.id
       rs.Fields("ad") = Me.ad
       rs.Fields("soyad") = Me.soyad
        rs.Fields("tarih") = Date
        rs.Fields("saat") = Time()
       rs.Update
       rs.Close: Set rs = Nothing
       MsgBox "Güncelleme Gerçekleşmiştir.", , "www.accesstr.net"
       Call ListeyiGetir
       
   Else
       
       MsgBox "Güncelleme İşleminden Vaz Geçtiniz.", 48, "www.accesstr.net"
       
   End If
   
   Me.ad.Locked = True
   Me.soyad.Locked = True

End Sub

Private Sub ListeyiGetir()

Dim cagribaglantisi As ADODB.Connection
Dim rs As New ADODB.Recordset
Set cagribaglantisi = New ADODB.Connection
               
   cagribaglantisi.ConnectionString = SqlServerConnStringGetir
   
   cagribaglantisi.Open
   
   If cagribaglantisi.State = adStateOpen Then
       
       rs.CursorLocation = adUseClient
       rs.Open "SELECT * FROM accesstr", cagribaglantisi, adOpenKeyset, adLockOptimistic
       Set Form_accesstr_net_alt.Recordset = rs
       
   Else
   
       MsgBox ("Bağlantı Kurulamıyor!!")
   
   End If
   
   rs.Close
   cagribaglantisi.Close
   Set rs = Nothing
   Set cagribaglantisi = Nothing
   
End Sub

Private Sub kaydet_Click()
   
   If MsgBox("Kayıt Gerçekleştirilsin Mi?", 36, "Kaydediliyor... www.accesstr.net") = vbYes Then
       
       Dim rs As New ADODB.Recordset
       Dim rst As New ADODB.Recordset
       
       rs.Open "SELECT * FROM accesstr", SqlServerConnStringGetir, adOpenKeyset, adLockOptimistic
       rs.AddNew
       rs.Fields("ad") = Me.ad
       rs.Fields("soyad") = Me.soyad
       rs.Fields("tarih") = Date
       rs.Fields("saat") = Time()
       rs.Update
       rs.Close
       Set rs = Nothing
       
       Call ListeyiGetir
       
       MsgBox "Kayıt İşlemi Gerçekleşmiştir.", , "www.accesstr.net"
       Me.odak.SetFocus
       Me.kaydet.Visible = False
       Me.yeni.Visible = True
       
   Else
   
       MsgBox "GKayıt İşleminden Vaz Geçtiniz.", 48, "www.accesstr.net"
       
   End If
   
   Me.ad.Locked = True
   Me.soyad.Locked = True
   
End Sub

Private Sub yeni_Click()

   Me.id = ""
   Me.ad = ""
   Me.soyad = ""
   Me.ad.Locked = False
   Me.soyad.Locked = False
   Me.kaydet.Visible = True
   Me.odak.SetFocus
   Me.yeni.Visible = False
   Me.duzenle.Visible = False
   Me.sil.Visible = False
   Me.ad.SetFocus
   
End Sub

accesstr_net_alt formu

Option Compare Database
Option Explicit

Private Sub ad_DblClick(Cancel As Integer)

Call esitle

End Sub

Private Sub id_DblClick(Cancel As Integer)

Call esitle

End Sub

Private Sub saat_DblClick(Cancel As Integer)

Call esitle

End Sub

Private Sub soyad_DblClick(Cancel As Integer)

Call esitle

End Sub

Private Sub esitle()

With Form_accesstr_net

   .id = Me.id
   .ad = Me.ad
   .soyad = Me.soyad
   .ad.Locked = False
   .soyad.Locked = False
   .kaydet.Visible = False
   .yeni.Visible = True
   .duzenle.Visible = True
   .sil.Visible = True

End With

End Sub

Private Sub tarih_DblClick(Cancel As Integer)

Call esitle

End Sub


SqlServerConnStr  Modül

Option Compare Database

Public Function SqlServerConnStringGetir() As String
               
Dim BaglantiTuru As String
Dim ServerName As String:       ServerName = "185.149.100.60\mssqlserver2012"
Dim DatabaseName As String:     DatabaseName = "Accesstr"
Dim UserName As String:         UserName = "accesstr"
Dim Password As String:         Password = "accesstr"

'    BaglantiTuru = "Windows Auth"
'
'    If (BaglantiTuru = "Windows Auth") Then
       
'        SqlServerConnStringGetir = "DRIVER={SQL Server};SERVER=" & ServerName & ";DATABASE=" & DatabaseName & ";Trusted_Connection=Yes"
'
'    Else
   
       SqlServerConnStringGetir = "DRIVER={SQL Server};SERVER=" & ServerName & ";DATABASE=" & DatabaseName & ";UID=" & UserName & ";PWD=" & Password
       
'    End If
               
End Function




Teşekkürler
Güncel