Access veritabanına birden fazla bağlantı hk.

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,058
Excel Vers. ve Dili
Office 2013 İngilizce
Merhabalar,

Aşağıdaki kod ile Excel ortamından Access veritabanı'na bağlantı kurup veri girişi yaparken;

aynı anda birden çok kullanıcı access veritabanı'na bağlanınca bağlantıdan atıyor,

bu konuda ne tür önerileriniz olabilir?

destekleriniz için şimdiden teşekkürler,

Kod:
Sub Connect()
Dim myPath As String
Dim SQL  As String

    Set cn = New ADODB.Connection
    Set RS = New ADODB.Recordset
    
    myPath = ThisWorkbook.Path
    
 
    With cn
        .Provider = "Microsoft.ACE.OLEDB.12.0"
        .ConnectionString = "Data Source = " & myPath & "\DB\Db.accdb"
        .Open cn
    End With

 SQL = " SELECT * FROM  Tablee"
 RS.Open SQL, cn, 1, 3
iyi akşamlar.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,349
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Merhaba;

Open-Source sql server database kullanın derim... ;)

- Firebird Sql Server,
- Postgresql Sql Server

.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,058
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba;

Open-Source sql server database kullanın derim... ;)

- Firebird Sql Server,
- Postgresql Sql Server

.
Zeki Hocam ilginize çok teşekkür ederim ama bahsetmiş olduğunuz hususları hiç bilmiyorum,
Konuyu biraz açabilir misiniz,

ConnectionString satırında mı düzenlenemsi gerekiyor.

iyi akşamlar.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,349
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Sadece connection string ile olmaz. Server yazılımını indirip kurmanız, manager program ile bağlanıp veritabanı ve tabloları oluşturmanız gerekiyor.

VBA ile erişim için yine ODBC sürücüsünü indirip kurmanız gerekiyor.

Veritbanı, kendi başına bir konudur ve az da olsa uzmanlık gerektirir.

Umarım sıkılıp vazgeçmezsiniz...

.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,058
Excel Vers. ve Dili
Office 2013 İngilizce
Sadece connection string ile olmaz. Server yazılımını indirip kurmanız, manager program ile bağlanıp veritabanı ve tabloları oluşturmanız gerekiyor.

VBA ile erişim için yine ODBC sürücüsünü indirip kurmanız gerekiyor.

Veritbanı, kendi başına bir konudur ve az da olsa uzmanlık gerektirir.

Umarım sıkılıp vazgeçmezsiniz...
Zeki Hocam bilgilendirme için teşekkürler,
şu an hali hazır access veri tabanında te bir çok tablo ve sorgu mevcut,
bu tablo ve sorguların tümünün serverde oluşturmak biraz zaman alacak gibi duruyor.
orta ve uzun vadede düşünebilir,

yalnız kısa vadede mevcut access üzerinde bir çözüm üretmem gerekiyor.

ilgi ve alakanız için tekrar teşekkürler.
 
Katılım
11 Temmuz 2024
Mesajlar
150
Excel Vers. ve Dili
Excel 2021 Türkçe
Paylaşımlı olabilmesi için kodunuzu şu şekilde revize edip deneyebilir misiniz;


Kod:
Sub Connect()
    Dim myPath As String
    Dim SQL As String
    Dim cn As ADODB.Connection
    Dim RS As ADODB.Recordset
    Set cn = New ADODB.Connection
    Set RS = New ADODB.Recordset
    myPath = ThisWorkbook.Path
    With cn
        .Provider = "Microsoft.ACE.OLEDB.12.0"
        .ConnectionString = "Data Source=" & myPath & "\DB\Db.accdb"
        .Mode = 16 
        .Open
    End With
    SQL = "SELECT * FROM Tablee"
    RS.Open SQL, cn, 1, 3 
    RS.Close
    cn.Close
    Set RS = Nothing
    Set cn = Nothing
End Sub
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,058
Excel Vers. ve Dili
Office 2013 İngilizce
Paylaşımlı olabilmesi için kodunuzu şu şekilde revize edip deneyebilir misiniz;


Kod:
Sub Connect()
    Dim myPath As String
    Dim SQL As String
    Dim cn As ADODB.Connection
    Dim RS As ADODB.Recordset
    Set cn = New ADODB.Connection
    Set RS = New ADODB.Recordset
    myPath = ThisWorkbook.Path
    With cn
        .Provider = "Microsoft.ACE.OLEDB.12.0"
        .ConnectionString = "Data Source=" & myPath & "\DB\Db.accdb"
        .Mode = 16
        .Open
    End With
    SQL = "SELECT * FROM Tablee"
    RS.Open SQL, cn, 1, 3
    RS.Close
    cn.Close
    Set RS = Nothing
    Set cn = Nothing
End Sub
deneyip, size dönüş yapacağım Hocam
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,633
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Ne yaparsanız yapın Access'te istediğiniz verimi alamazsınız. İşlem tipi ve kilit tipini değiştirseniz de tam verimli değil.
Kendi deneyimlerime göre en iyi model aşağıdaki gibi.

RS.Open SQL, cn, 1, 3
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,058
Excel Vers. ve Dili
Office 2013 İngilizce
Ne yaparsanız yapın Access'te istediğiniz verimi alamazsınız. İşlem tipi ve kilit tipini değiştirseniz de tam verimli değil.
Kendi deneyimlerime göre en iyi model aşağıdaki gibi.

RS.Open SQL, cn, 1, 3
Teşekkürler Erdem Hocam

benim kodlarda: RS.Open SQL, cn, 1, 3
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,419
Excel Vers. ve Dili
Office 2013
Merhaba;

Eş zamanlı çoklu kullanıcı için Access ile olmaz.

En basiti Sql Server Express kurun (ücretsizdir). Ya da hosting kiralayın ve ordaki veritabanını kullanın. Sadece veritabanı için ücretsiz hostingler de vardır.
 

NBATMAN

Destek Ekibi
Destek Ekibi
Katılım
1 Aralık 2007
Mesajlar
657
Excel Vers. ve Dili
Office 2003 excel Türkçe
Arkadaşlar Merhaba,

Accessi çok kullanıcı ile kullanabilirsiniz. Belkide bunu Türkiye'de başaran tek kişide olabilirim.😊
Bunun için Accessi bölmeniz gerekiyor.

Ayrı Frontend ve Backend: Access uygulamanızın "frontend" (kullanıcı arayüzü) kısmını ve "backend" (veri depolama) kısmını ayırın. Kullanıcıların yalnızca frontend'i kullanmalarını sağlarken, backend'i merkezi bir yerde tutun. Bu, kullanıcıların aynı anda veri tabanına erişmesini kolaylaştırır.

Dikkat! Yalnız ben bunu Excel üzerinde değil yaptığım VBNET programlarıyla kullandım.

sistem şöyle çalışıyor;
örneğin ağda bir veri tabanım (Access) var. bundan bölme işlemi ile bir örneğini oluşturuyorum. Bu Örnek kullanıcı (lokaldeki) bilgisayara yüklüyorum.
Dolayısı ile program çalıştığında bu kullanıcı bilgisayarındaki veri tabanı örneği ile işlem yapıyor ve serverdaki yada ağdaki bir ana bilgisayardaki asıl veri tabanımız serbest kalıyor. Ne zamanki örneğin kullanıcı/kullanıcılar kayıt yapıyor yada update yada sil işlemi yapıyor bu hali ile ana bilgisayardaki veriyi güncelliyor/değiştiriyor. bunu yaklaşık 6 yıldır kendi işyerimde ağadaki çok kullanıcılı üretim/sipariş takip programımda veri kayıpsız / hatasız bir şekilde kullanıyorum. nihayetinde bir SQL yerini tutmaz ama 6 yıldır IT ci bloğunu bu yöntemle aşmış bulunuyorum.😂
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,250
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
@NBATMAN ,

Kullandığınız yöntem ilginç görünüyor...

Kullanmak isteyenler için Veritabanı (Access) dosyanızı nasıl böldüğünüzü ve çoklu kullanıcı erişim örneğini yani kısaca sistemin nasıl çalıştığını gösteren kısa bir video paylaşırsanız memnun oluruz.
 
Üst