• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Aynı veritabanı için ("ADODB.Connection") bir kez tanımlama.

  • Konbuyu başlatan Konbuyu başlatan hsayar
  • Başlangıç tarihi Başlangıç tarihi
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
Private Sub ComboBox1_Change()
'nüfusa kayıtlı olduğu il
Call DegiskenTani
On Error Resume Next
Dim Baglanti As ADODB.Connection:   Dim Kayit1 As ADODB.Recordset:  Dim SQLStr As String
Dim i As Integer
'ckBU_Klc_SfAd = Array(ckBU_sfSAT.Name, ckBU_sfALS.Name, ckBU_sfTNM.Name, ckBU_sfTSB.Name, _
                      ckBU_sfAYL.Name, ckBU_sfYIL.Name, ckBU_sfDVR.Name)  'daima bu kitapta kalacak sayfa adları
SQLStr = "SELECT DISTINCT il, ilce FROM [ilveilce$] WHERE il=" & "'" & ComboBox1.Value & "'"
'************************************************'kynMHBRM dosya varsa bağlan>
If Dir(kynMHBRM) = "" Then
MsgBox kynMHBRM & " " & Chr(10) & " Dosyası Bulunamadı.", vbInformation, "Bilgi"
Exit Sub
End If
Set Baglanti = CreateObject("ADODB.Connection")
    With Baglanti
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .Properties("Extended Properties").Value = "Excel 8.0"
        .Properties("Data Source").Value = kynMHBRM
        .CursorLocation = adUseClient
        .Mode = adModeReadWrite
        .CommandTimeout = 60
        '.Properties("User ID") = vbNullString
        '.Properties("Password") = vbNullString
        .Open
    End With

    Set Kayit1 = CreateObject("ADODB.Recordset")
    With Kayit1
        .ActiveConnection = Baglanti
        .CursorLocation = adUseClient
        .CursorType = adOpenKeyset
        .LockType = adLockOptimistic
        .Source = SQLStr
        .Open
    End With               '<bitti
'************************************************'bitti<
'************************************************'verileri çek
        Kayit1.MoveFirst:        ComboBox2.Clear
            For i = 1 To Kayit1.RecordCount
               ComboBox2.AddItem Kayit1.Fields("ilce")
               Kayit1.MoveNext
            Next i
        Kayit1.MoveFirst
        If ComboBox1.ListIndex = 27 Then ComboBox2.ListIndex = 2
        If ComboBox1.ListIndex <> 27 Then ComboBox2.ListIndex = 0
'************************************************'bağlantıyı kes


If CBool(Kayit1.State And adStateOpen) = True Then Kayit1.Close: Set Kayit1 = Nothing
If CBool(Baglanti.State And adStateOpen) = True Then Baglanti.Close: Set Baglanti = Nothing 'bitti
End Sub
Private Sub ComboBox2_Change()
'nüfusa kayıtlı olduğu ilçe
Call DegiskenTani
On Error Resume Next
Dim Baglanti As ADODB.Connection:   Dim Kayit1 As ADODB.Recordset:  Dim SQLStr As String
Dim i As Integer
SQLStr = "SELECT DISTINCT il, ilce,mahkoy FROM [ilveilce$] WHERE il=" & "'" & ComboBox1.Value & "'" & "AND ilce=" & "'" & ComboBox2.Value & "'"
'************************************************'kynMHBRM dosya varsa bağlan>
If Dir(kynMHBRM) = "" Then
MsgBox kynMHBRM & " " & Chr(10) & " Dosyası Bulunamadı.", vbInformation, "Bilgi"
Exit Sub
End If
Set Baglanti = CreateObject("ADODB.Connection")
    With Baglanti
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .Properties("Extended Properties").Value = "Excel 8.0"
        .Properties("Data Source").Value = kynMHBRM
        .CursorLocation = adUseClient
        .Mode = adModeReadWrite
        .CommandTimeout = 60
        '.Properties("User ID") = vbNullString
        '.Properties("Password") = vbNullString
        .Open
    End With

    Set Kayit1 = CreateObject("ADODB.Recordset")
    With Kayit1
        .ActiveConnection = Baglanti
        .CursorLocation = adUseClient
        .CursorType = adOpenKeyset
        .LockType = adLockOptimistic
        .Source = SQLStr
        .Open
    End With               '<bitti
'************************************************'bitti<
'************************************************'verileri çek
       Kayit1.MoveFirst:       ComboBox3.Clear
            For i = 1 To Kayit1.RecordCount
               ComboBox3.AddItem Kayit1.Fields("mahkoy")
               Kayit1.MoveNext
            Next i
       Kayit1.MoveFirst
       If Me.ComboBox1.Value <> "" Then ComboBox3.ListIndex = 0
'************************************************'bağlantıyı kes
If CBool(Kayit1.State And adStateOpen) = True Then Kayit1.Close: Set Kayit1 = Nothing
If CBool(Baglanti.State And adStateOpen) = True Then Baglanti.Close: Set Baglanti = Nothing 'bitti
End Sub


yukarıdaki kodlardanda anlaşılacağı üzere

Kod:
.........
'************************************************'kynMHBRM dosya varsa bağlan>
If Dir(kynMHBRM) = "" Then
MsgBox kynMHBRM & " " & Chr(10) & " Dosyası Bulunamadı.", vbInformation, "Bilgi"
Exit Sub
End If
Set Baglanti = CreateObject("ADODB.Connection")
    With Baglanti
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .Properties("Extended Properties").Value = "Excel 8.0"
        .Properties("Data Source").Value = kynMHBRM
        .CursorLocation = adUseClient
        .Mode = adModeReadWrite
        .CommandTimeout = 60
        '.Properties("User ID") = vbNullString
        '.Properties("Password") = vbNullString
        .Open
    End With

    Set Kayit1 = CreateObject("ADODB.Recordset")
    With Kayit1
        .ActiveConnection = Baglanti
        .CursorLocation = adUseClient
        .CursorType = adOpenKeyset
        .LockType = adLockOptimistic
        .Source = SQLStr
        .Open
    End With               '<bitti
'************************************************'bitti<

satırları ortak birden fazla yerde yanı şeyleri kopyala yapıştır yapıyorum onun yerine bunları bir kere
mesala
call vtMBRM_ac çağırıp işlem bitince vtMBRM_kapa ile kapa demenin yolu varmıdır.
 
Parametrik prosedur &#231;a&#287;&#305;rabilirsiniz.
Kod:
Sub Bag_Ac(Conn as ADODB.Connection)
With Conn
   .
   .
   .Open
End With

Kod:
Sub Bag_Kapat(Conn as ADODB.Connection)
Conn.Close
End Sub
 
hocam zahmet olmzsa &#246;rnekleyebilirmisiniz, aral&#305;ktaki kodlar&#305; oldu&#287;u gibi ayr&#305; module al&#305;p denemi&#351;tim.
 
&#214;rnek, iki ADO Connection nesnesinin parametrik olarak &#231;a&#287;&#305;r&#305;l&#305;p a&#231;ma ve kapatma i&#351;lemidir. (Modul.bas)
Kod:
Public Conn1 As New ADODB.Connection
Public Conn2 As New ADODB.Connection
 
Sub Acma_Test()
    Call Bag_Ac(Conn1, "C:\Test.xls")
End Sub
 
Sub Kapat_Test()
    Call Bag_Kapat(Conn1)
End Sub
 
Sub Bag_Ac(Cn As ADODB.Connection, Wb As String)
    Cn.Open _
    "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & Wb
End Sub
 
Sub Bag_Kapat(Cn As ADODB.Connection)
    Cn.Close
End Sub
 
hocam bu durumda bunlar a&#231;&#305;kta kal&#305;yor sanki
Kod:
    Set Kayit1 = CreateObject("ADODB.Recordset")
    With Kayit1
        .ActiveConnection = Baglanti
        .CursorLocation = adUseClient
        .CursorType = adOpenKeyset
        .LockType = adLockOptimistic
        .Source = SQLStr
        .Open
    End With

sadece &#231;a&#287;&#305;rd&#305;&#287;&#305;m prosod&#252;rde Sql sat&#305;r&#305; de&#287;i&#351;kenini yeniden vercem di&#287;erlerinin hepsi ayn&#305; olacak?
 
Değişkenleri Declaration kısmında tanımlayıp, Connection'ı birkez açılışta ve Recordset'i de ihtiyaç duyulduğunda kullanmak üzere sadeleştirme yapmaya çalıştım.
ADODB değişkeni tanımladığınız için "CreateObject" kullanmanız gerekmez.
Kod:
Private Baglanti As ADODB.Connection
Private Kayit1   As ADODB.Recordset
 
Private Sub USERFORM_INITIALIZE()
Set Baglanti = New ADODB.Connection
    Baglanti.Open _
    "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=kynMHBRM"
End Sub
 
Private Sub USERFORM_TERMINATE()
    If CBool(Baglanti.State And adStateOpen) = True Then _
        Baglanti.Close: Set Baglanti = Nothing
End Sub
 
Private Sub ComboBox1_Change()
'nüfusa kayıtlı olduğu il
Call DegiskenTani
On Error Resume Next
Dim i As Integer, SQLStr As String
 
'ckBU_Klc_SfAd = Array(ckBU_sfSAT.Name, ckBU_sfALS.Name, ckBU_sfTNM.Name, ckBU_sfTSB.Name, _
                      ckBU_sfAYL.Name, ckBU_sfYIL.Name, ckBU_sfDVR.Name)  'daima bu kitapta kalacak sayfa adları
SQLStr = "SELECT DISTINCT il, ilce FROM [ilveilce$] WHERE il=" & "'" & ComboBox1.Value & "'"
 
'************************************************'kynMHBRM dosya varsa bağlan>
If Dir(kynMHBRM) = "" Then
    MsgBox kynMHBRM & " " & Chr(10) & " Dosyası Bulunamadı.", vbInformation, "Bilgi"
Exit Sub
End If
 
    Set Kayit1 = New ADODB.Recordset
    Kayit1.Open SQLStr, Baglanti, adOpenKeyset, adLockOptimistic
'************************************************'bitti<
'************************************************'verileri çek
        Kayit1.MoveFirst:        ComboBox2.Clear
            For i = 1 To Kayit1.RecordCount
               ComboBox2.AddItem Kayit1.Fields("ilce")
               Kayit1.MoveNext
            Next i
        Kayit1.MoveFirst
        If ComboBox1.ListIndex = 27 Then ComboBox2.ListIndex = 2
        If ComboBox1.ListIndex <> 27 Then ComboBox2.ListIndex = 0
'************************************************'bağlantıyı kes
 
If CBool(Kayit1.State And adStateOpen) = True Then Kayit1.Close: Set Kayit1 = Nothing
End Sub
 
Private Sub ComboBox2_Change()
'nüfusa kayıtlı olduğu ilçe
Call DegiskenTani
On Error Resume Next
Dim SQLStr As String
Dim i As Integer
 
SQLStr = "SELECT DISTINCT il, ilce,mahkoy FROM [ilveilce$] WHERE il=" & "'" & ComboBox1.Value & "'" & "AND ilce=" & "'" & ComboBox2.Value & "'"
'************************************************'kynMHBRM dosya varsa bağlan>
If Dir(kynMHBRM) = "" Then
    MsgBox kynMHBRM & " " & Chr(10) & " Dosyası Bulunamadı.", _
        vbInformation, "Bilgi"
    Exit Sub
End If
 
    Set Kayit1 = New ADODB.Recordset
    Kayit1.Open SQLStr, Baglanti, adOpenKeyset, adLockOptimistic
'************************************************'bitti<
'************************************************'verileri çek
       Kayit1.MoveFirst:       ComboBox3.Clear
            For i = 1 To Kayit1.RecordCount
               ComboBox3.AddItem Kayit1.Fields("mahkoy")
               Kayit1.MoveNext
            Next i
       Kayit1.MoveFirst
       If Me.ComboBox1.Value <> "" Then ComboBox3.ListIndex = 0
'************************************************'bağlantıyı kes
If CBool(Kayit1.State And adStateOpen) = True Then Kayit1.Close: Set Kayit1 = Nothing
End Sub
 
Hocam alakan&#305;za te&#351;ekk&#252;r ederim yaln&#305;z atlad&#305;&#287;&#305;mz bir &#351;eyler var galiba
userform declarations
Private Baglanti As ADODB.Connection
Private Kayit1 As ADODB.Recordset


userfom olaylar
Kod:
Private Sub USERFORM_INITIALIZE()
Call DegiskenTani
OptionButton1.Value = 1: OptionButton3.Value = 1
Me.TextBox1.Value = tckno
Dim i As Integer, SQLStr As String
SQLStr = "SELECT DISTINCT il FROM [ilveilce$]"    'kynMHBRM dosyada ilgili sat&#305;rlarda sorgu yap

Set Baglanti = New ADODB.Connection
    If Dir(kynMHBRM) = "" Then
        MsgBox kynMHBRM & " " & Chr(10) & " Dosyas&#305; Bulunamad&#305;.", vbInformation, "Bilgi"
    Exit Sub
    End If
    Baglanti.Open _
    "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=kynMHBRM"
MsgBox kynMHBRM
[color="red"]'************************************************'ba&#287;lan>
   Set Kayit1 = New ADODB.Recordset
    Kayit1.Open SQLStr, Baglanti, adOpenKeyset, adLockOptimistic
'************************************************'bitti<[/color]'
'  '************************************************'verileri &#231;ek
'        Kayit1.MoveFirst:        ComboBox1.Clear
'            For i = 1 To Kayit1.RecordCount
'               ComboBox1.AddItem Kayit1.Fields("il")
'               Kayit1.MoveNext
'            Next i
'        Kayit1.MoveFirst:        ComboBox1.ListIndex = 27
'
'        Kayit1.MoveFirst:        ComboBox4.Clear
'            For i = 1 To Kayit1.RecordCount
'               ComboBox4.AddItem Kayit1.Fields("il")
'               Kayit1.MoveNext
'            Next i
'        Kayit1.MoveFirst:        ComboBox4.ListIndex = 27
''************************************************'bitti<
End Sub

k&#305;rm&#305;z&#305; sat&#305;rlar&#305; a&#231;&#305;nca odbc s&#252;r&#252;c&#252;s&#252; istenilen &#246;zelllikleri&#351; desteklemiyor hatas&#305; veriyor
 
Kod:
Baglanti.Open _
    "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & kynMHBRM
 
te&#351;ekk&#252;r ederim hocam....
bende &#351;imdilik 2 kaynak dosya var (artabilir) ve her ikisininde
sql sat&#305;rda kullan&#305;lan ba&#351;l&#305;klar&#305; farkl&#305; bu durumda ben

Private Baglanti As ADODB.Connection
Private Kayit1 As ADODB.Recordset
Private Baglanti1 As ADODB.Connection
Private Kayit11 As ADODB.Recordset

&#351;eklindemi tan&#305;mlayacam de&#287;i&#351;kenleri yoksa
Private Baglanti As ADODB.Connection
Private Kayit1 As ADODB.Recordset
Private Kayit2 As ADODB.Recordset

&#351;eklindemi onda yard&#305;mc&#305; olurmusunuz birde.
 
MODUL (DECLARATIONS)

Kod:
Public kynMHBRM As String
Public tckno As String
Public currentrow
Public Baglanti As ADODB.Connection
Public Kayit1   As ADODB.Recordset


USERFORM
Kod:
Private Sub USERFORM_INITIALIZE()
Call DegiskenTani
'Tan&#305;mlar
Dim i As Integer, SQLStr As String
'De&#287;i&#351;kenler
SQLStr = "SELECT DISTINCT il FROM [ilveilce$]"    'kynMHBRM dosyada ilgili sat&#305;rlarda sorgu yap
    If Dir(kynMHBRM) = "" Then
        MsgBox kynMHBRM & " " & Chr(10) & " Dosyas&#305; Bulunamad&#305;.", vbInformation, "Bilgi"
        Exit Sub
    End If
'************************************************'ba&#287;lan>
    Set Baglanti = New ADODB.Connection
    Baglanti.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & kynMHBRM
    Set Kayit1 = New ADODB.Recordset
    Kayit1.Open SQLStr, Baglanti, adOpenKeyset, adLockOptimistic
'************************************************'bitti<
'Ba&#287;lant&#305; sonu&#231;lar&#305;n&#305; nesnelere yaz:
        Kayit1.MoveFirst:        ComboBox1.Clear
            For i = 1 To Kayit1.RecordCount
               ComboBox1.AddItem Kayit1.Fields("il")
               Kayit1.MoveNext
            Next i
        Kayit1.MoveFirst:        ComboBox1.ListIndex = 27

        Kayit1.MoveFirst:        ComboBox4.Clear
            For i = 1 To Kayit1.RecordCount
               ComboBox4.AddItem Kayit1.Fields("il")
               Kayit1.MoveNext
            Next i
        Kayit1.MoveFirst:        ComboBox4.ListIndex = 27
''************************************************'bitti<
'******************ba&#287;lant&#305;y&#305; kes
If CBool(Kayit1.State And adStateOpen) = True Then Kayit1.Close: Set Kayit1 = Nothing
'/*/* di&#287;er nesneleri doldur
OptionButton1.Value = 1: OptionButton3.Value = 1
Me.TextBox1.Value = tckno
'Cep telefon kodlar&#305;
    arrCeptelKod = Array(505, 506, 530, 532, 533, 534, 535, 536, 537, 538, 542, 543, 544, 546, 547, 555, 556)
    For i = 0 To UBound(arrCeptelKod)
    ComboBox80.AddItem arrCeptelKod(i)
    ComboBox81.AddItem arrCeptelKod(i)
    Next
End Sub
Kod:
Private Sub USERFORM_TERMINATE()
    If CBool(Baglanti.State And adStateOpen) = True Then _
        Baglanti.Close: Set Baglanti = Nothing
End Sub
Kod:
Private Sub ComboBox1_Change()
'n&#252;fusa kay&#305;tl&#305; oldu&#287;u il
On Error Resume Next
Call DegiskenTani
'Tan&#305;mlar
Dim i As Integer, SQLStr As String
'De&#287;i&#351;kenler
SQLStr = "SELECT DISTINCT il, ilce FROM [ilveilce$] WHERE il=" & "'" & ComboBox1.Value & "'"

''************************************************'ba&#287;lan>
[COLOR="RED"][B]   Set Kayit1 = New ADODB.Recordset[/B][/COLOR]
'   Kayit1.Open SQLStr, Baglanti, adOpenKeyset, adLockOptimistic
'************************************************'bitti<
'Ba&#287;lant&#305; sonu&#231;lar&#305;n&#305; nesnelere yaz:
'        Kayit1.MoveFirst:        ComboBox2.Clear
'            For i = 1 To Kayit1.RecordCount
'               ComboBox2.AddItem Kayit1.Fields("ilce")
'               Kayit1.MoveNext
'            Next i
'        Kayit1.MoveFirst
'        If ComboBox1.ListIndex = 27 Then ComboBox2.ListIndex = 2
'        If ComboBox1.ListIndex <> 27 Then ComboBox2.ListIndex = 0
'************************************************'ba&#287;lant&#305;y&#305; kes
'If CBool(Kayit1.State And adStateOpen) = True Then Kayit1.Close: Set Kayit1 = Nothing
'/*/* di&#287;er nesneleri doldur
'Nesne Yok
End Sub

hocam combo1_chngede k&#305;rm&#305;z&#305; sat&#305;rda nesne kapal&#305; oldu&#287;undan i&#351;leme izin verilemz yaz&#305;yor 9-10 tane ba&#287;lant&#305; yap&#305;lacak combo var artabilirde bunun i&#231;in mant&#305;&#287;&#305; nalamam &#351;art rahats&#305;z etti&#287;im i&#231;in &#246;z&#252;r dilerim
 
Son düzenleme:
Ba&#287;lant&#305; hep ayn&#305; dosyaya olaca&#287;&#305; i&#231;in o tektir.

&#304;stedi&#287;iniz kadar Recordset nesnesi de&#287;i&#351;keni tan&#305;mlayabilirsiniz. Kayit1,Kayit2....

Tek de&#287;i&#351;ken kullanmak istiyorsan&#305;z, Recordset nesnesini sadece kapat&#305;n (Kayit.Close).
Sadece Form kapand&#305;&#287;&#305;nda Set Kayit = Nothing yap&#305;n.
 
MODUL (DECLARATIONS)

hocam combo1_chngede kırmızı satırda nesne kapalı olduğundan işleme izin verilemz yazıyor 9-10 tane bağlantı yapılacak combo var artabilirde bunun için mantığı nalamam şart rahatsız ettiğim için özür dilerim

çözümü

Kod:
Public kynMHBRM As String
Public tckno As String
Public currentrow
Public Baglanti As ADODB.Connection
'Public Kayit1   As ADODB.Recordset satırının kaldırmaktan geçiyormuş.
 
hocam derdime bir çare bitmedi arkası

şimdi hocam userform ınıtalize olayım bu

Kod:
Private Sub USERFORM_INITIALIZE()
Call DegiskenTani
'Tanımlar
Dim i As Integer, SQLStr As String
'Değişkenler
SQLStr = "SELECT DISTINCT il FROM [ilveilce$]"    'kynMHBRM dosyada ilgili satırlarda sorgu yap
    
    If Dir(kynMHBRM) = "" Then
        MsgBox kynMHBRM & " " & Chr(10) & " Dosyası Bulunamadı.", vbInformation, "Bilgi"
        Exit Sub
    End If
    If Dir(kynTcKimNo) = "" Then
        MsgBox kynTcKimNo & " " & Chr(10) & " Dosyası Bulunamadı.", vbInformation, "Bilgi"
        Exit Sub
    End If
        
'************************************************'bağlan>
    Set Baglanti = New ADODB.Connection
    Baglanti.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & kynMHBRM
    Set bagTCKMLK = New ADODB.Connection

[color="red"]
    bagTCKMLK.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & kynTcKimNo[/color]

    Set Kayit1 = New ADODB.Recordset
    Kayit1.Open SQLStr, Baglanti, adOpenKeyset, adLockOptimistic
'************************************************'bitti<
'Bağlantı sonuçlarını nesnelere yaz:
        Kayit1.MoveFirst:        ComboBox1.Clear
            For i = 1 To Kayit1.RecordCount
               ComboBox1.AddItem Kayit1.Fields("il")
               Kayit1.MoveNext
            Next i
        Kayit1.MoveFirst:        ComboBox1.ListIndex = 27

        Kayit1.MoveFirst:        ComboBox4.Clear
            For i = 1 To Kayit1.RecordCount
               ComboBox4.AddItem Kayit1.Fields("il")
               Kayit1.MoveNext
            Next i
        Kayit1.MoveFirst:        ComboBox4.ListIndex = 27
''************************************************'bitti<
'******************bağlantıyı kes
If CBool(Kayit1.State And adStateOpen) = True Then Kayit1.Close: Set Kayit1 = Nothing
'/*/* diğer nesneleri doldur
OptionButton1.Value = 1: OptionButton3.Value = 1
Me.TextBox1.Value = tckno
'Cep telefon kodları
    arrCeptelKod = Array(505, 506, 530, 532, 533, 534, 535, 536, 537, 538, 542, 543, 544, 546, 547, 555, 556)
    For i = 0 To UBound(arrCeptelKod)
    ComboBox80.AddItem arrCeptelKod(i)
    ComboBox81.AddItem arrCeptelKod(i)
    Next
End Sub

kırmızı satırın üzerinde kullanılanlar malum dışkaynaktan comboboxlara veri taşımak için kullanıyoruz.


bagTCKMLK.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & kynTcKimNo


Worksheet selection changede target.value sistemde mevcut değilse eklemek için kullanıyoruz.

command buton
Kod:
Private Sub CommandButton1_Click()
On Error Resume Next
Call DegiskenTani
Dim SQLStr, verginosu As String
'Değişkenler
'tcno = Trim(Me.TextBox1.Text)

basliklar = "TCKİMLİKNO, ADI, SOYADI, ANNEADI, BABAADI, DOGUMYERİ, DOGUMTARİHİ, "
basliklar = basliklar & "NFS_MHKY, NFS_ILCE, NFS_IL, "
basliklar = basliklar & "ADR_MUHTAR, ADR_ILCE, ADR_IL, ADR_CD_SKK, ADR_KNO, ADR_DNO "
sayfaadi = "[data$] "
sorgu = "TCKİMLİKNO = " & Trim(Me.TextBox1.Text)
    SQLStr = "SELECT " & basliklar & " FROM " & sayfaadi & " WHERE " & sorgu


'************************************************'bağlan>
If Err = 0 Then
    Set Kayit1 = New ADODB.Recordset
    Kayit1.Open SQLStr, bagTCKMLK, adOpenKeyset, adLockOptimistic
'nesneleri bağlantı yapılan dosyaya ve sorgu talep edilen satıra yaz
    If Kayit1.RecordCount = 0 Then

          Kayit1.AddNew
          Kayit1("TCKİMLİKNO") = Trim(Me.TextBox1)
          Kayit1("ADI") = Trim(Me.TextBox2)
          Kayit1("SOYADI") = Trim(Me.TextBox3)
          Kayit1("ILKSOYADI") = Trim(Me.TextBox15)
          Kayit1("BABAADI") = Trim(Me.TextBox4)
          Kayit1("ANNEADI") = Trim(Me.TextBox5)
          Kayit1("DOGUMYERİ") = Trim(Me.TextBox6)
          Kayit1("DOGUMTARİHİ") = Trim(Me.TextBox7)
          Kayit1("NFS_IL") = Trim(Me.ComboBox1)
          Kayit1("NFS_ILCE") = Trim(Me.ComboBox2)
          Kayit1("NFS_MHKY") = Trim(Me.ComboBox3)
          Kayit1("ADR_IL") = Trim(Me.ComboBox4)
          Kayit1("ADR_ILCE") = Trim(Me.ComboBox5)
          Kayit1("ADR_MUHTAR") = Trim(Me.ComboBox6)
          Kayit1.Update


          Cells(currentrow, "B").Value = Kayit1("ADI")          'bulunanları yaz
          Cells(currentrow, "C").Value = Kayit1("SOYADI")       '..   ""...
          Cells(currentrow, "D").Value = Kayit1("BABAADI")      '..   ""...
          Cells(currentrow, "E").Value = Kayit1("ANNEADI")      '..   ""...
          Cells(currentrow, "F").Value = Kayit1("DOGUMYERİ")    '..   ""...
          Cells(currentrow, "G").Value = Kayit1("DOGUMTARİHİ")  '..   ""...
          Cells(currentrow, "AA").Value = Kayit1("ADR_MUHTAR")  '..   ""...
          Cells(currentrow, "AB").Value = Kayit1("ADR_ILCE")    '..   ""...
          Range("h" & currentrow).Select                        'h sütununu seç

          MsgBox "Kayıt İşlemi Tamamlandı.", vbInformation, "Bilgi"
          Unload Me
    Else
        MsgBox "Bu Tc Numarası Kayıtlı.", vbInformation, "Bilgi"
    End If
Else
son:
    MsgBox "Bağlantı Hatası.Kontrol Ediniz", vbInformation, "Bilgi": Exit Sub
End If

If CBool(Kayit1.State And adStateOpen) = True Then Kayit1.Close: Set Kayit1 = Nothing
End Sub

ama aynı kısa yazımı Private Sub Worksheet_Change(ByVal Target As Range)
olayında kullanmak için aoutoopen a yzınca variable set diyor. ne yapmalıyım.
 
bu gece trafik yo&#287;un sorum altlara d&#252;&#351;mesin 13. mesajdaki sorunum &#246;zerle &#351;udur.

bagTCKMLK.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & kynTcKimNo

yukar&#305;daki ba&#287;lant&#305; &#231;al&#305;&#351;ma kitab&#305; a&#231;&#305;ld&#305;&#287;&#305; anda a&#231;&#305;lacak, kapan&#305;rken kapanacak auto open a yazd&#305;m hata verdi.

Baglanti.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & kynMHBRM

bu ise userformal a&#231;&#305;lacak onunla kapanacak burada sorun yok
 
Bu durumda de&#287;i&#351;kenlerinizi bas modulde public olarak tan&#305;mlay&#305;n.

Ayr&#305;ca Excel Dersanesindeki de&#287;i&#351;kenler konusunu -de&#287;i&#351;ken &#246;mr&#252;- incelemenizi &#246;neririm.
 
evet modulde public olarak tan&#305;ml&#305; zaten 12.mesajda bunu belitrtmi&#351;tim. ayr&#305;ca yeni bagtckimlik as adobb connectionuda tan&#305;mlad&#305;m.
 
anemos hocam hatal&#305; olan kod nedir.?
 
17 mesaj g&#252;nceldir.
 
Geri
Üst