• DİKKAT !

    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 Dosya Yükleme tamamen ücretsizdir.

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

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

dogan.importexport

Yeni Üye
Katılım
9 Eyl 2021
Mesajlar
206
Çözümler
2
Aldığı beğeni
21
Excel V
Office 365 TR
Konu Sahibi
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
 
Çö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ıHTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
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
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
eğer access tablonuz ve serverdaki tablonuz özdeş ise aşağıdaki kod ile verileri tabloya da aktarabilirsiniz
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
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.
 
Konu Sahibi
Ü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
 
Konu Sahibi
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
 
Konu Sahibi
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
 
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
 
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ıHTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Çözüm
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst