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

Katılım
5 Kasım 2006
Mesajlar
601
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Buna muadil olarak Sqlite var.
Hocam zamanında vba excelde sqlitedeki verileri aratırken türkçe karakterler çalışmıyordu biliyorum.Yada sqlitede sıralama yaparken türkçe karakterler tam doğru sıralanmıyordu sanırım en altlarda çıkıyordu örneğin ç,ş,ğ gibi harfler.Bu yüzden bırakmıştım ve çözüm bulamamıştım.Siz buna bir çözüm biliyor musunuz?
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,354
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
....Siz buna bir çözüm biliyor musunuz?
Evet, bu sıkıntılar için C# ile bir VBA connector yazdım ve bitirdim; ancak son kez gözden geçmesi gerektiği için henüz yayınlamadım. UTF8' den kaynaklanan LCASE, UCASE, SORT, WHERE problemleri yoktur.

Sqlite tercihiniz doğru bir seçim... Yaptığım testlerde ve incelemelerimde oldukça güçlü, hızlı ve memory database gibi güzel özelliği olan bir veritabanı olduğunu gördüm. Ayrıca Access gibi database limiti yok... 128 TB herkes için yeterli olacaktır.

.
 
Son düzenleme:
Katılım
2 Temmuz 2014
Mesajlar
160
Excel Vers. ve Dili
2021 Türkçe, 64bit
Hocam zamanında vba excelde sqlitedeki verileri aratırken türkçe karakterler çalışmıyordu biliyorum.Yada sqlitede sıralama yaparken türkçe karakterler tam doğru sıralanmıyordu sanırım en altlarda çıkıyordu örneğin ç,ş,ğ gibi harfler.Bu yüzden bırakmıştım ve çözüm bulamamıştım.Siz buna bir çözüm biliyor musunuz?
@FERAZ hocam koda rs.CursorLocation = 3 ekleyince Türkçe'de sorun çıkarmadı
Kod:
Sub xSıraliVeri()
  Dim con As Object, rs As Object
    
    Set con = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")
    
    con.Open "DRIVER=SQLite3 ODBC Driver;Database=" & ThisWorkbook.Path & "\deneme.db;" 'Locale Identifier=1055;
    
    strSQL = "SELECT baslik from tblDeneme order by baslik" ' COLLATE NOCASE" 'Kücük büyük harf
    rs.CursorLocation = 3'|<----bu satır eklenmeli
    rs.Open strSQL, con, 1, 3
    rs.Sort = "baslik"'|<----bu satır eklenmeli
    With Sheets("Sayfa2")
        .Range("E:E").ClearContents
        .Range("e1").CopyFromRecordset rs
    End With
    rs.Close
    con.Close
    Set rs = Nothing: Set con = Nothing
End Sub
 
Katılım
5 Kasım 2006
Mesajlar
601
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Evet, bu sıkıntılar için C# ile bir VBA connector yazdım ve bitirdim; ancak son kez gözden geçmesi gerektiği için henüz yayınlamadım. UTF8' den kaynaklanan LCASE, UCASE, SORT, WHERE problemleri yoktur.

Sqlite tercihiniz doğru bir seçim... Yaptığım testlerde ve incelemelerimde oldukça güçlü, hızlı ve memory database gibi güzel özelliği olan bir veritabanı olduğunu gördüm. Ayrıca Access gibi database limiti yok... 128 TB herkes için yeterli olacaktır.

.
Sağolun.
Dediğim durumdan dolayı kullanmsmıştım ama merak salmıştım zaten genelde hepsi aynı gibi sql sorgu vs bildikten sonra.
İnşAllah dediğiniz gibi çözüm bulunursa faydalanmak isteriz bende access tarafı değilim biraz işlem yapınca boyut büyüyüp duruyor sonra veritabanıonar gibi birşey ile biraz küçülüyordu vs.. yoksa accesste benim işimi görür normalde ama zaten sqllite ücfetsiz olduğu için herkesin işine yarar bencede.
 
Katılım
5 Kasım 2006
Mesajlar
601
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
@FERAZ hocam koda rs.CursorLocation = 3 ekleyince Türkçe'de sorun çıkarmadı
Kod:
Sub xSıraliVeri()
  Dim con As Object, rs As Object
   
    Set con = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")
   
    con.Open "DRIVER=SQLite3 ODBC Driver;Database=" & ThisWorkbook.Path & "\deneme.db;" 'Locale Identifier=1055;
   
    strSQL = "SELECT baslik from tblDeneme order by baslik" ' COLLATE NOCASE" 'Kücük büyük harf
    rs.CursorLocation = 3'|<----bu satır eklenmeli
    rs.Open strSQL, con, 1, 3
    rs.Sort = "baslik"'|<----bu satır eklenmeli
    With Sheets("Sayfa2")
        .Range("E:E").ClearContents
        .Range("e1").CopyFromRecordset rs
    End With
    rs.Close
    con.Close
    Set rs = Nothing: Set con = Nothing
End Sub
İlk fırsatta deneyeceğim hocam.Garip olan sqlite proğramlarında sorgu ile sıralamada dediğim sorun oluyordu.
 
Katılım
2 Temmuz 2014
Mesajlar
160
Excel Vers. ve Dili
2021 Türkçe, 64bit
Ben sayin accessman'in konusunu hatırlıyorum oradaki dosya üzerinde denedim hatta o konuya kod ve resim ekledim.
 
Katılım
5 Kasım 2006
Mesajlar
601
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
@FERAZ hocam koda rs.CursorLocation = 3 ekleyince Türkçe'de sorun çıkarmadı
Kod:
Sub xSıraliVeri()
  Dim con As Object, rs As Object
   
    Set con = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")
   
    con.Open "DRIVER=SQLite3 ODBC Driver;Database=" & ThisWorkbook.Path & "\deneme.db;" 'Locale Identifier=1055;
   
    strSQL = "SELECT baslik from tblDeneme order by baslik" ' COLLATE NOCASE" 'Kücük büyük harf
    rs.CursorLocation = 3'|<----bu satır eklenmeli
    rs.Open strSQL, con, 1, 3
    rs.Sort = "baslik"'|<----bu satır eklenmeli
    With Sheets("Sayfa2")
        .Range("E:E").ClearContents
        .Range("e1").CopyFromRecordset rs
    End With
    rs.Close
    con.Close
    Set rs = Nothing: Set con = Nothing
End Sub
Hocam dediklerinizi uyguladım çalışmadı.Eğer sorun oluyorsa yazdıklarım mesajlar silinebilir başkasının konusu olduğu için.
 
Katılım
2 Temmuz 2014
Mesajlar
160
Excel Vers. ve Dili
2021 Türkçe, 64bit
dosyanızda hem rs.CursorLocation = 3 '|<----bu satır eklenmemiş
hem de rs.Sort = "baslik" yerine rs.Sort = baslik yazılmış baslik değil "baslik" olmalıydı yani çift tırnak içinde.
başkasının konusu olduğu için ben de daha fazla mesaj yazmayacağım, benim mesajlar da silinebilir
 
Son düzenleme:

Korhan Ayhan

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

@FERAZ
@haliliyas

Forumda yorum çeşitliliğine hiçbir zaman karşı olmadık. Sizlerin yorumlarını incelediğim kadarıyla önerilen uygulamalarda yaşanan genel sorunları dile getirmişsiniz. Bu sebeple mesajlarınızın silinmesine gerek yok.
 
Katılım
5 Kasım 2006
Mesajlar
601
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Bilgi olarak eklediğim dosyada alttaki sort da " bunlar yokmuş ve curcorlocation olanda yokmuş.
Bunları ayarlayınca excele veri alıp sıralanınca Türkçe karakterlerde doğru oluyor.Halil hocamızın sayesinde öğrenmiş olduk sağolsun.

rs.CursorLocation = 3'|<----bu satır eklenmeli
rs.Sort = "baslik"'
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,354
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Bilgi olarak eklediğim dosyada alttaki sort da " bunlar yokmuş ve curcorlocation olanda yokmuş.
Bunları ayarlayınca excele veri alıp sıralanınca Türkçe karakterlerde doğru oluyor.Halil hocamızın sayesinde öğrenmiş olduk sağolsun.

rs.CursorLocation = 3'|<----bu satır eklenmeli
rs.Sort = "baslik"'
where field like 'i%'
where field like 'I%'
select field, lower(field), upper(field)

denediniz mi?

.
 
Katılım
5 Kasım 2006
Mesajlar
601
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
where field like 'i%'
where field like 'I%'
select field, lower(field), upper(field)

denediniz mi?

.
Yok hocam denemedim,Halil hocamızın kodları çalışmıştı.Sizin mesajı yeni gördüm deneyeceğim gün içerisinde.
 
Üst