- Katılım
- 2 Mart 2005
- Mesajlar
- 2,960
- Excel Vers. ve Dili
-
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
http://www.excel.web.tr/showthread.php?t=43823
buradaki soruya cevaben açılmıştır server probleminden dolayı link açılmıyor.
veritabanı oluştururken;
tcno var, vkno yoksa> vkno alanına 0 giriniz
tcno yok, vkno varsa> tcno alanına 0 giriniz
sorgu yapılacak sayfadada aynı şekilde yapınız.
sorgu için gerek n sütunun altındaki command butonu gerekse
Makrolar iletişim kutusundaki MukAl makrosunu kullanabilirsiniz.
buradaki soruya cevaben açılmıştır server probleminden dolayı link açılmıyor.
veritabanı oluştururken;
tcno var, vkno yoksa> vkno alanına 0 giriniz
tcno yok, vkno varsa> tcno alanına 0 giriniz
sorgu yapılacak sayfadada aynı şekilde yapınız.
sorgu için gerek n sütunun altındaki command butonu gerekse
Makrolar iletişim kutusundaki MukAl makrosunu kullanabilirsiniz.
Kod:
Sub MukAl()
'||||||||||'||||||||||'||||||||||'||||||||||'||||||||||'||||||||||'||||||||||'||||||||||'||||||||||
'|||||||||| Hsayar 25/01/2008
'|||||||||| Aktif sayfadaki D (TCKimlik), E ( Vergi No) sütunlarındaki numaraları veritabanında arar
'|||||||||| Yazılanlar doğru ise aktif sayfaya alanları kopyalar
'|||||||||| Sorgulanacak firmanın bir alanı boşsa o alana 0 değeri girilmelidir.
'||||||||||'||||||||||'||||||||||'||||||||||'||||||||||'||||||||||'||||||||||'||||||||||'||||||||||
Dim Baglanti As ADODB.Connection
Dim Kayit1 As ADODB.Recordset
Dim FSO As Object
Dim SQLStr, Kaynak, verginosu As String
Dim ckBU As Workbook
Dim csSR As Worksheet
Set ckBU = ThisWorkbook: Set csSR = ckBU.Sheets(ActiveSheet.Name)
'sonsat = csSR.Cells(65536, "E").End(3).Row
Dim stn%, snstr%
Dim arrsnstr()
For stn = 4 To 5
ReDim Preserve arrsnstr(y)
arrsnstr(y) = Cells(65536, stn).End(3).Row
y = y + 1
Next stn
sonsat = WorksheetFunction.Max(arrsnstr)
Erase arrsnstr
'***********************************************************************
Kaynak = Application.ThisWorkbook.Path & "\" & "vt_Sirk.xls"
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(Kaynak) = False Then
MsgBox Kaynak & " " & " Dosyası Bulunamadı.", vbInformation, "Bilgi"
Exit Sub
End If
For i = 2 To sonsat
basliklar = "UNVAN, ADRES, TCKN, VKNO"
sayfaadi = "[DATA$]"
sorgu = "VKNO = " & Cells(i, "E").Value & _
"AND TCKN=" & Cells(i, "D").Value
SQLStr = "SELECT " & basliklar & " FROM " & sayfaadi & " WHERE " & sorgu
On Error Resume Next
Set Baglanti = CreateObject("ADODB.Connection")
With Baglanti
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Properties("Extended Properties").Value = "Excel 8.0"
.Properties("Data Source").Value = Kaynak
.CursorLocation = adUseServer
.Mode = adModeReadWrite
.Open
End With
If Err = 0 Then
Set Kayit1 = CreateObject("ADODB.Recordset")
With Kayit1
.ActiveConnection = Baglanti
.CursorLocation = adUseServer
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Source = SQLStr
.Open
End With
'***********************************************************************
If Kayit1.RecordCount = 1 Then
Cells(i, "B").Value = Kayit1("UNVAN")
Cells(i, "C").Value = Kayit1("ADRES")
Else
Cells(i, "B").Value = "BU KİMLİK/VERGİ NOSUNA KAYITLI ŞİRKET YOKTUR"
End If
Else
Son:
MsgBox "Bağlantı Hatası.Kontrol Ediniz", vbInformation, "Bilgi"
End If
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
Set FSO = Nothing
Next i
MsgBox "EŞLEŞTİRME TAMAMLANDI", , "excel.web.tr"
End Sub