Skip to main content

AccessTr.neT


access sql bağlantı...

omur46
omur46
SQL
3
5046

access sql bağlantı...

#1
S.a accesstr Ahalisi aranızda yeniyim...
öncelikle sizlere birkaç soru sormak istiyorum Access de formları hazırlayıp bu formlarıda sql,de bir yada birkaçtane farklı veritabanına göndermek mümkünmüdür... örnegin bilgisayarımda mikro kurulu ve bunun veritabanı Sql birde ben kendi formlarım için bi Sql veritabanı acıyorum ve hazırladıgım formlardan bir yada birkactanesini kendi Sql veritabanıma diğerlerinide mikronun Sql veritabanına atmam mümkünmüdür ...?
Cevapla
#2
Arkadaşlar öncelikle konuyu yanlış yere açmış olduğumu yeni fark ettim çok özür dileyerekden konunun taşınmasını talep ediyorum...
İnternetten araştırtığım kadarıyla sanırım dediğim gibi bir bağlantı yapmak mükün gibi görünüyor...
hatta internette buluduğum bir yazıyı sizlerede sunuyorum...
Merhaba Access severler;

Bu konumuzda MS Access ile MS Sql Server arasında ADO kullanarak bağlantı yapmaya çalışacağız. Sql Server ister yerel, ister uzak olsun sadece Connection String üzerinde yapacağınız değişikliklerle bağlantıyı sağlayabilirsiniz. Biz örneğimizde Sql Server üzerinde yetkimiz olan veritabanı üzerinde uzak bağlantı deneyeceğiz.
Peki neden Sql Server’a bağlantı ihtiyaca duyalım(?) diyebilirsiniz.

Sql Server ve Oracle bilinen en güçlü veritabanı sistemleridir. Bunların yanında Mysql, Firebird gibi yine oldukça etkili veritabanı sistemleri vardır. Bu arada yeri gelmişken, hayatlarında Oracle görmemiş ya da üzerinde 2 sorgu yazmamış insanların “Oracle en iyisidir “ demelerine hayret ediyorum. Bu iki güçlü veritabanı sisteminin birbirine göre üstün ya da zayıf özellikleri vardır. Merak edenler için bunları bulmak zor olmasa gerek. Her neyse konumuzdan uzaklaşmayalım. Neden Sql Server’a bağlanalım diyorduk..

Access i gerçekten veritabanı amacıyla kullanan herkesin tek beklentisi verilerini en sağlıklı, en güvenli şekilde tutabilmektir. Tablo ve diğer nesneleri aynı mdb, mde içinde tutuyorsak potansiyel risk çok fazladır. Uygulamamız çökebilir ve tablolarımıza elveda diyebiliriz. Tabloları ayrı bir vt de tutuyorsak elbette çok daha sağlıklıdır ama biz çok daha fazlasını istiyoruz. Uygulamamızı MDE yapsak bile tablolar, sorgular, macrolar alenen açıktadır.
Tablolar, sorgular uygulama içinde görünmesin, bağlı tablo yöntemini de kullanmak istemiyorsanız artık başlayabiliriz. Diğer istek ve arzularımıza yeri geldikçe değineceğiz Wink
Sql Server üzerindeki veritabanımızda “Personel” isimli tablomuz vardır. Bu tabloda “id, Ad, Soyad, GirisTarihi, DogumTarihi, Maas” alanlarımız vardır ve şu an için toplam “2.200” adet kayıt mevcuttur. Kayıt sayısını bilerek az tuttum ki malum ülkemizde internet hızlarında hala sıkıntı yaşamaktayız.
Access dosyamızı açalım ve “Sql_Server_Tablo” isminde bir form yapalım. Bu forma Sql Server de bulunan alanlarımızı sürekli form şeklinde koyalım. Artık ister formun açılışına ister bir düğmeye yazacağımız kodlarla verileri bu formumuza çağırabiliriz. Örnekte de göreceğiniz üzere ben düğme ile çağırdım.
Şimdi kodumuza bakalım.

Vba Kodu

Dim cn As ADODB.Connection
Dim rst As New ADODB.Recordset
Set cn = New ADODB.Connection
cn.ConnectionString = "driver={SQL Server};" & _
"server=Server_ip_Adresi;uid=Kullanici_İsmi;pwd=Şifre;database=Veritabanı_İsmi"
On Error Resume Next
cn.Open
If cn.State = adStateOpen Then
'MsgBox ("Baglantı Kuruldu...")
rst.CursorLocation = adUseClient
rst.Open "personel", cn, adOpenKeyset, adLockOptimistic

Set Me.Recordset = rst
Me.KaySay = vbCrLf & " Toplam -- " & rst.RecordCount & " -- Kayıt Bulundu." & vbCrLf & _
" Veriler Sql server üzerinde -Personel- Tablosundan alınmıştır." & vbCrLf & vbCrLf & vbCrLf & vbCrLf & _
" beab05"
Else
MsgBox ("Bağlantı Kurulamıyor!!")
End If
rst.Close
cn.Close
Set rst = Nothing
Set cn = Nothing




Gördüğünüz gibi Sql Server da bulunan “personel” tablosuna ait kayıtların tümünü kolayca aldık. Üstelik bu kayıtlar üzerinde ekleme, silme, güncelleme yapabilmekteyiz ve bu güncellemeler aynen Sql Server üzerindeki tablomuza kaydedilebilmektedir ama ben veri değişikliği izinlerini iptal ettim. Biri çıkıp tüm kayıtları silebilir yoksa Wink
Kayıtları çok basitçe aldık, 1 Mbs internet hızımla 2.200 kayıt bende 1-3 saniyede gelmektedir, üstelik ortalıkta görünen tablo ve sorgu da yoktur. Formunuza ait kayıt kaynağı olarak yine Sql Server da yaratacağınız bir view ( sorgu diyebiliriz) i de kaynak olarak gösterebilirsiniz ama tabii yaptığınız view in yapısına göre kayıt değişiklikleri yapmanıza engel olabilir ki bu durum Access te yaratacağınız sorgu yapısında da aynıdır. Örneğin gruplanmış bir sorgu sonucunu kaynak alırsanız formunuz elbette sadece okunur olacaktır..
Bir dahaki çalışmada Stored Procedures ( konusu içinde Stored Procedures hakkında kısa bilgi verilecektir) üzerinden veri almaya değineceğiz.

yazı Berkant Öztürk aittir..

benim anladığım kadarıyla accessde ikitane veritabanı bağlantısı yapip istedigim bilgiler mikronun veritabanına kalan bilgileride kendi veritabanıma göndermem gerekiyor
Son Düzenleme: 12/03/2010, 12:58, Düzenleyen: omur46.
Cevapla
#3
sn.omur46 Konuyu Sql Bölümüne Taşınmıştır.
Sql Bilgisi Olan Arkadaşlar En Kısa Sürede Sorunuza Cevap Vereceklerdir.
Saygılar.
Application Engineer
Cevapla
#4
ilginiz için..Tşkler emturker
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da