• Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Çözüldü Sql Access bağlantısı

Bu sorun verilen destek sayesinde çözüme ulaştırılmıştır.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

dogan.importexport

Yeni Üye
Kullanıcı Bilgileri
Katılım
9 Eyl 2021
Mesajlar
206
Çözümler
2
Aldığı beğeni
17
Excel Versiyonu
Office 365 TR
Konuyu Başlatan
Selamlar
bu konuyu daha önce de yazmıştım ama access sql bağlantı bilgim sıfır olduğu için hala bekliyorum. ekte 2 adet sql bağlantı kodu var. ama her iksiide çalışmasına rağmen verilerin gelmeme sebebi nedir. Ben sql deki bilgilerin accessteki CHR adlı tabloya gelmesini istiyorum. yardımcı olursanız sevinirim.
saygılar
 

Ekli dosyalar

  • Deneme.zip
    27.1 KB · Gösterim: 5
Çözüm
ben bağlı tabloda 10 alan sınırı var demiştim ama aşağıdaki kod ile bu sınır kalkıyor galiba, ama hâlâ belli sayıda alanı mı alıyor yoksa tümünü alabiliyor mu bilmiyorum
oldukça da hızlı
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
tam olarak amacınız ne? neden verileri accesse almaya çalışıyorsunuz? bağlı tablo oluşturma yada Import işinize yaramaz mı?
yada gerçekten tabloyu almaya gerek var mı? verileri tabloya eklemeden de sanki access tablosuymuş gibi serverdan recordset ile bağlamak yetmez mi?
 
bağlı tabloda sadece 10 alan alınabilir
aşağıdaki kod hem bağlama hem de dosyayı içe aktarma için
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
eğer access tablonuz ve serverdaki tablonuz özdeş ise aşağıdaki kod ile verileri tabloya da aktarabilirsiniz
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
not: baştan savma çalışma eklemeyin, saçma tablolara gerek yok dediğimde kızmıştınız ama durum ortada; eklediğiniz tek alanlı tablo işe yaramaz eklediğiniz örnek baştan savma ve bastırarak söylüyorum yine çok SAÇMA SAPAN bir örnek eklemişsiniz.
 
Üstad
sadece isim ve database değişikliği yaptım 3146 hatası veriyor

Sub SQLdenAl()
t1 = Time
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sqltext As String
Dim ServerName As String: ServerName = "DESKTOP-2CF15L6"
Dim DatabaseName As String: DatabaseName = "MikroDB_V16_1"

strConnectionString = "ODBC;DRIVER=SQL Server; " & _
"SERVER=DESKTOP-2CF15L6;DATABASE=" & MikroDB_V16_1 & ";Trusted_Connection=Yes"


sqltext = "INSERT INTO CHR " & _
"SELECT * " & _
"FROM [" & strConnectionString & "].CHR " 'WHERE ([msg_S_0584]='Cari hesap') order by trim([msg_S_0134])" ' where msg_S_0584='Cari hesap'"
CurrentDb.Execute sqltext
t2 = Time
Debug.Print "Süre", DateDiff("s", t1, t2)
End Sub

Sub BaglaEkle()
Dim strConnectionString As String
Dim strNameInAccess As String
Dim strNameInSQLServer As String

' set the connection string
'Dim sqltext As String
'Dim ServerName As String: ServerName = "DESKTOP-2CF15L6"
Dim DatabaseName As String: DatabaseName = "MikroDB_V16_1"

strConnectionString = "ODBC;DRIVER=SQL Server; " & _
"SERVER=DESKTOP-2CF15L6;DATABASE=" & MikroDB_V16_1 & ";Trusted_Connection=Yes"

' specify the tables you want to link. The table can be

' known by a different name in Access than the name in SQL server

'strNameInAccessEk = "TblEkli"
'strNameInAccessBg = "TblBagli"
strNameInSQLServer = "CHR"

' delete the table from the local database if it exists

'On Error Resume Next

'DoCmd.RunSQL "drop table " & strNameInAccessEk
'DoCmd.RunSQL "drop table " & strNameInAccessBg

'On Error GoTo 0

'DoCmd.TransferDatabase acImport, "ODBC Database", _
'strConnectionString, acTable, strNameInSQLServer, strNameInAccessEk

'DoCmd.TransferDatabase acLink, "ODBC Database", _
'strConnectionString, acTable, strNameInSQLServer, strNameInAccessBg
End Sub
 
bu oldu.teşekkürler

Sub BaglaEkle()
Dim strConnectionString As String
Dim strNameInAccess As String
Dim strNameInSQLServer As String

' set the connection string
'Dim sqltext As String
'Dim ServerName As String: ServerName = "HALIL\SQLEXPRESS"
Dim DatabaseName As String: DatabaseName = "MikroDB_V16_FIRATOZEL"

strConnectionString = "ODBC;DRIVER=SQL Server; " & _
"SERVER=.\SQLExpress;DATABASE=" & DatabaseName & ";Trusted_Connection=Yes"

' specify the tables you want to link. The table can be

' known by a different name in Access than the name in SQL server

strNameInAccessEk = "TblEkli"
strNameInAccessBg = "TblBagli"
strNameInSQLServer = "CHFO"

' delete the table from the local database if it exists

On Error Resume Next

DoCmd.RunSQL "drop table " & strNameInAccessEk
DoCmd.RunSQL "drop table " & strNameInAccessBg

On Error GoTo 0

DoCmd.TransferDatabase acImport, "ODBC Database", _
strConnectionString, acTable, strNameInSQLServer, strNameInAccessEk

DoCmd.TransferDatabase acLink, "ODBC Database", _
strConnectionString, acTable, strNameInSQLServer, strNameInAccessBg
End Sub
 
Bu kod ise aşağıdaki hatayı veriyor.


Sub SQLdenAl()
t1 = Time
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sqltext As String
Dim ServerName As String: ServerName = "DESKTOP-2CF15L6"
Dim DatabaseName As String: DatabaseName = "MikroDB_V16_1"

strConnectionString = "ODBC;DRIVER=SQL Server; " & _
"SERVER=DESKTOP-2CF15L6;DATABASE=" & DatabaseName & ";Trusted_Connection=Yes"


sqltext = "INSERT INTO CHR2 " & _
"SELECT * " & _
"FROM [" & strConnectionString & "].CHR " 'WHERE ([msg_S_0584]='Cari hesap') order by trim([msg_S_0134])" ' where msg_S_0584='Cari hesap'"
CurrentDb.Execute sqltext
t2 = Time
Debug.Print "Süre", DateDiff("s", t1, t2)
End Sub
 

Ekli dosyalar

  • hata.jpg
    hata.jpg
    29.3 KB · Gösterim: 2
ben az önce serverdaki başka bir veri tabanında denedim tüm tabloları sorunsuz içeri aktardı.
tablolar özdeşse 2. kod da kullanılabilir
ama asıl soru hâlâ ortada gerçekten tabloları almaya gerek var mı?
 
o kodun çalışabilmesi için ya tablolar bire bir eş olmalı yada alan adları farklıysa alan adları tek tek yazılmalı access #'e izin vermiyor olabilir access tablosundaki alan adını değiştirip o şekilde kullana bilirsiniz yada her defasında sorun olmasını istemiyorsanız serverdaki alan adlarını accesse uygun hale getirebilirsiniz
 
Serverdaki alan adlarında "." nokta var mı?
 
Tüm alan adlarını ekleyerek denediniz mi?
#msg li adres hangi dosyada 2 tabloda da ayni alan var mi
Tüm alanların adını yazarak denediniz mi
 
Üstad onu deniyorum bunu da siz söylemiştiniz excel ile ilgili olan kodlarda eminim ucuna geldi artık bağlayacağım. )
 
ben bağlı tabloda 10 alan sınırı var demiştim ama aşağıdaki kod ile bu sınır kalkıyor galiba, ama hâlâ belli sayıda alanı mı alıyor yoksa tümünü alabiliyor mu bilmiyorum
oldukça da hızlı
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
Çözüm
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Konuyu okuyanlar

Geri
Üst