Bağlantı sınaması Kodu (Özellikle SQL)

Katılım
24 Mart 2005
Mesajlar
230
Excel Vers. ve Dili
Ofice 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
01-12-2025
SQL den EXCELe veri cekiyorum. Netten veya ağdan.

Fakat bazen sorun oluyor ve bağlantıda problem yaşıyorum. Ve uzun bi süre beklemek zorunda kalıyorum.

Bana bağlantı sınaması ile ilgili çözüm gerekiyor. Bağlantı var ise devam edecek bağlantı yok ise mesaj verip atlayacak. Atlamaları excel.web.tr den öğrendiğim kadarı ile yapıyorum. Fakat bir türlü bağlantı sorunu olduğunda atlamayla ilgili problemi çözemedim.

Bu sorunu yaşamış ve çözmüş bir arkadaş varsa paylaşırsa çok sevinecez.

İlilendiğiniz için teşekkürler.
 
Katılım
24 Mart 2005
Mesajlar
230
Excel Vers. ve Dili
Ofice 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
01-12-2025
Bağlantıda kullandığım cumle aşağıda fakat. " Connect Timeout=5 " hiç bir işe yara mıyor.


With Sheets("Gunluk").Range("Gunluk_Sorgu01").QueryTable
.Connection = _
"ODBC;DRIVER=SQL Server;SERVER=2.1.1.1;UID=SA;PWD=;Connect Timeout=5;DATABASE=deneme"
.CommandText = Array( _
" SELECT A.Şube ,SUM(A.Toplam) Toplam ,SUM(A.Satış-A.İade) 'Satış-İade' " _
, " ,SUM(A.Sipariş) Sipariş " _
, " FROM Z_N_STHAR_SATIS A " _
, " WHERE (A.Tarih Between '" + Format(Sheets("Bilgiler").Range("C11"), "yyyy-mm-dd") + "' " _
, " And '" + Format(Sheets("Bilgiler").Range("C12"), "yyyy-mm-dd") + "') " _
, " GROUP BY Şube " _
, " ORDER BY Şube " _
)
.Refresh BackgroundQuery:=False
End With
 
Katılım
24 Mart 2005
Mesajlar
230
Excel Vers. ve Dili
Ofice 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
01-12-2025
Bu sorumada cevap bulamamşım şimdi ise bende cevaplı. :)...
Yine arayan biri olur ben koyuyim.
Burda SQL le baglanacağımız şekli sectiriyorum .

Güvenli ,Agdan veya Netten olmak üzere 3 baglantı seklimiz var.
Güvenli bağlantı agdan bir kullanıcı şifresi ile servera bağlanıldığında şifre sormadan girilebilir.
Agdan şifreli baglantıda servera baglanmadan şifre ile SQL den veri alınır.
Nette de şifreli ve net hızına bağlı olarak biraz yavaş bilgi alına bilir.

Bu yüzden sıralamayı önce guvenli , ağdan şifreli ve net olarak yapmak doğru olacak.

Kod:
Public bag As String
Public bag_querytablo As String
Public bag_server As String
Public bag_user As String
Public bag_sss As String
Public bag_db As String
Public bag_yeri As String
Public zzzzzzzzzzz As String
Sub Baglanti_Olustur()
If Sec_FORM.Visible = False Then Sec_FORM.Show
'_____________________________________________________________________________________________________________________________________________________________
'Baglanti değişkenleri----------------------------------------------------------------------------------------------------------------------------------------
bag_yeri = Sec_FORM.TKM_txt_Server.Text & "-" & Sec_FORM.TKM_txt_Yil.Text
bag_yer = Sec_FORM.TKM_txt_Server.Text
bag_sss = Sheets("Baglan").Range("Baglanti_BilgiAl_sssss")

r = Sheets("Baglan").Range("Baglanti_Bilgiler").Row
c = Sheets("Baglan").Range("Baglanti_Bilgiler").Column
rc = Sheets("Baglan").Range("Baglanti_Bilgiler").Rows.Count
cc = Sheets("Baglan").Range("Baglanti_Bilgiler").Columns.Count
For i = r To r + rc - 1
 If Sheets("Baglan").Cells(i, c) & "-" & Sheets("Baglan").Cells(i, c + 3) = bag_yeri Then
 bag_IP_ag = Sheets("Baglan").Cells(i, c + 6)
 bag_IP_net = Sheets("Baglan").Cells(i, c + 7)
 bag_user = Sheets("Baglan").Cells(i, c + 8)
 bag_db = Sheets("Baglan").Cells(i, c + 2)
 r1 = i 'baglanti bilgileri satırı
 i = r + rc - 1
 End If
Next i
'_____________________________________________________________________________________________________________________________________________________________
 Set con = New ADODB.Connection
'_____________________________________________________________________________________________________________________________________________________________
If Sheets("Baglan").Cells(r1, c + 9) = "Guvenli" Then
 bag = ""
 bag = bag & "PROVIDER=SQLOLEDB"
 bag = bag & ";DATA SOURCE=" & bag_IP_ag
 bag = bag & ";INITIAL CATALOG=" & bag_db
 bag = bag & ";INTEGRATED SECURITY=SSPI"
 bag_querytablo = "ODBC;DRIVER=SQL Server;SERVER=" & bag_IP_ag & ";Trusted_Connection=Yes;DATABASE=" & bag_db & ""
 
 con.ConnectionString = bag
 On Error Resume Next
 con.Open 'Baglantiyi ac
 If con.State <> adStateOpen Then Application.Run "Baglanti_Olustur_Sina"
 Exit Sub
End If
'_____________________________________________________________________________________________________________________________________________________________
If Sheets("Baglan").Cells(r1, c + 9) = "Agdan" Then
 bag = ""
bag = bag & "PROVIDER=SQLOLEDB"
bag = bag & ";DATA SOURCE=" & bag_IP_ag
bag = bag & ";INITIAL CATALOG=" & bag_db
bag = bag & ";User Id=" & bag_user
bag = bag & ";Password=" & bag_sss
bag_querytablo = "ODBC;DRIVER=SQL Server;SERVER=" & bag_IP_ag & ";UID=" & bag_user & ";PWD=" & bag_sss & ";DATABASE=" & bag_db & ""
On Error Resume Next
con.Open 'Baglantiyi ac
If con.State <> adStateOpen Then Application.Run "Baglanti_Olustur_Sina"
Exit Sub
End If
'_____________________________________________________________________________________________________________________________________________________________
If Sheets("Baglan").Cells(r1, c + 9) = "Netten" Then
 bag = ""
bag = bag & "PROVIDER=SQLOLEDB"
bag = bag & ";DATA SOURCE=" & bag_IP_net
bag = bag & ";INITIAL CATALOG=" & bag_db
bag = bag & ";User Id=" & bag_user
bag = bag & ";Password=" & bag_sss
bag_querytablo = "ODBC;DRIVER=SQL Server;SERVER=" & bag_IP_net & ";UID=" & bag_user & ";PWD=" & bag_sss & ";DATABASE=" & bag_db & ""

con.ConnectionString = bag
On Error Resume Next
    con.Open 'Baglantiyi ac
If con.State <> adStateOpen Then Application.Run "Baglanti_Olustur_Sina"
 Exit Sub
End If
'_____________________________________________________________________________________________________________________________________________________________

Application.Run "Baglanti_Olustur_Sina"
End Sub

Sub Baglanti_Olustur_Sina()
If Sec_FORM.Visible = False Then Sec_FORM.Show
'_____________________________________________________________________________________________________________________________________________________________
'Baglanti değişkenleri----------------------------------------------------------------------------------------------------------------------------------------
bag_yeri = Sec_FORM.TKM_txt_Server.Text & "-" & Sec_FORM.TKM_txt_Yil.Text
bag_yer = Sec_FORM.TKM_txt_Server.Text
bag_sss = Sheets("Baglan").Range("Baglanti_BilgiAl_sssss")

r = Sheets("Baglan").Range("Baglanti_Bilgiler").Row
c = Sheets("Baglan").Range("Baglanti_Bilgiler").Column
rc = Sheets("Baglan").Range("Baglanti_Bilgiler").Rows.Count
cc = Sheets("Baglan").Range("Baglanti_Bilgiler").Columns.Count
For i = r To r + rc - 1
 If Sheets("Baglan").Cells(i, c) & "-" & Sheets("Baglan").Cells(i, c + 3) = bag_yeri Then
 bag_IP_ag = Sheets("Baglan").Cells(i, c + 6)
 bag_IP_net = Sheets("Baglan").Cells(i, c + 7)
 bag_user = Sheets("Baglan").Cells(i, c + 8)
 bag_db = Sheets("Baglan").Cells(i, c + 2)
 r1 = i 'baglanri satırı
 i = r + rc - 1
 End If
Next i
'_____________________________________________________________________________________________________________________________________________________________
Set con = New ADODB.Connection
'_____________________________________________________________________________________________________________________________________________________________
'Güvenli baglanti deneniyor.----------------------------------------------------------------------------------------------------------------------------------
bag = ""
bag = bag & "PROVIDER=SQLOLEDB"
bag = bag & ";DATA SOURCE=" & bag_IP_ag
bag = bag & ";INITIAL CATALOG=" & bag_db
bag = bag & ";INTEGRATED SECURITY=SSPI"

con.ConnectionString = bag

On Error Resume Next
con.Open 'Baglantiyi ac
If con.State = adStateOpen Then
 bag_querytablo = "ODBC;DRIVER=SQL Server;SERVER=" & bag_IP_ag & ";Trusted_Connection=Yes;DATABASE=" & bag_db & ""
 CreateObject("WScript.Shell").Popup _
 "" & bag_IP_ag & " (" & bag_yeri & ") Serverina baglantı guvenli baglantı ile kurula bilmektedir.", 1, "SONUC", vbInformation
  con.Close
 Sheets("Baglan").Cells(r1, c + 9) = "Guvenli"
 Exit Sub
End If
con.Close 'Baglantiyi kapat

'_____________________________________________________________________________________________________________________________________________________________
'Agdan şifre ile giriş deneniyor----------------------------------------------------------------------------------------------------------------------------------
bag = ""
bag = bag & "PROVIDER=SQLOLEDB"
bag = bag & ";DATA SOURCE=" & bag_IP_ag
bag = bag & ";INITIAL CATALOG=" & bag_db
bag = bag & ";User Id=" & bag_user
bag = bag & ";Password=" & bag_sss

con.ConnectionString = bag

On Error Resume Next
con.Open 'Baglantiyi ac
If con.State = adStateOpen Then
 bag_querytablo = "ODBC;DRIVER=SQL Server;SERVER=" & bag_IP_ag & ";UID=" & bag_user & ";PWD=" & bag_sss & ";DATABASE=" & bag_db & ""
 CreateObject("WScript.Shell").Popup _
 "" & bag_IP_ag & " (" & bag_yeri & ") Serverina baglantı Ağdan sağlanmaktadır.", 1, "SONUC", vbInformation
 con.Close
 Sheets("Baglan").Cells(r1, c + 9) = "Agdan"
 Exit Sub
End If
con.Close 'Baglantiyi kapat
'_____________________________________________________________________________________________________________________________________________________________
'Internetten giriş deneniyor----------------------------------------------------------------------------------------------------------------------------------
bag = ""
bag = bag & "PROVIDER=SQLOLEDB"
bag = bag & ";DATA SOURCE=" & bag_IP_net
bag = bag & ";INITIAL CATALOG=" & bag_db
bag = bag & ";User Id=" & bag_user
bag = bag & ";Password=" & bag_sss

con.ConnectionString = bag

On Error Resume Next
con.Open 'Baglantiyi ac
If con.State = adStateOpen Then
 bag_querytablo = "ODBC;DRIVER=SQL Server;SERVER=" & bag_IP_ag & ";UID=" & bag_user & ";PWD=" & bag_sss & ";DATABASE=" & bag_db & ""
 CreateObject("WScript.Shell").Popup _
 "" & bag_IP_net & " (" & bag_yeri & ") Serverina baglantı Internetten sağlanmaktadır.", 1, "SONUC", vbInformation
 con.Close
 Sheets("Baglan").Cells(r1, c + 9) = "Netten"
 Exit Sub
End If
con.Close 'Baglantiyi kapat
'_____________________________________________________________________________________________________________________________________________________________

MsgBox prompt:="BEKLENMEYEN BIR DURUM." & Chr(10) & _
        "" & bag_yeri & " DATABASE İLE BAGLANTI KURULAMIYOR.  " & Chr(10) & _
        "SERVER YADA ULAŞMA YOLLARINIZ KAPALI OLABİLİR. " & Chr(10) & _
        " " & Chr(10) & _
        "LÜTFEN BİLGİ ALINIZ... ", _
       Title:="BAGLANTI KURULAMIYOR"
bag = Empty

End Sub
 
Üst