Arkadaşlar,
source dosyasından aldığım veriyi işleyip sql script' i oluşturuyorum ve sonra da sql manager' dan script i çalıştırıyorum..
bunu sql manager ile uğraşmadan sql bağlantısı kurup nasıl yaparım??
(XXX ler için kusura bakmayın)
teşekkürler
Sub Macro1()
nome = "C:\TEST.TXT"
Workbooks.OpenText Filename:=nome, Origin:=xlMSDOS, StartRow:=1 _
, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(127, 1), Array(187, 1 _
), Array(190, 1), Array(191, 1), Array(205, 1), Array(213, 1), Array(221, 1), Array(223, 1), Array(233, 1 _
), Array(251, 1), Array(253, 1), Array(261, 1), Array(291, 1), Array(316, 1), Array(317, 1), Array(318, 1 _
), Array(329, 1)), _
TrailingMinusNumbers:=True
' 0=TL / 50=YTL
Range("K1:K65536").Replace What:="50", Replacement:="YTL", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Range("K1:K65536").Replace What:="0", Replacement:="TL", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'Para Formati
Range("J1:J65536").Replace What:=",", Replacement:=".", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Range("J1:J65536").NumberFormat = "#,##0.00"
'Tarih Formatlari
Range("F1:F65536").NumberFormat = "####-##-##"
Range("G1:G65536").NumberFormat = "####-##-##"
Range("L1:L65536").NumberFormat = "####-##-##"
'DUZELTME
Range("C1:C65536").NumberFormat = "000"
'FORMAT
Range("E1:E65536").NumberFormat = "00000000000000"
'FORMATI
Range("Q1:Q65536").NumberFormat = "0000000000"
'Odendi / odenmedi bilgisi
Range("D165536").Replace What:="K", Replacement:="ODENDI", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Range("D165536").Replace What:="B", Replacement:="ODENMEDI", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
' Sql Script burada baslar..!!
'Dosya ismi
fname = "c:\B12.sql"
Open fname For Output As #1
'Dongu Burada Baslar
'Veri Uzunluklari
Dim veri1 As String * 127 '1 SÜTUN BOYU
Dim veri2 As String * 60 '2. SÜTÜN BOYU
Dim veri3 As String * 3
Dim veri4 As String * 11
Dim veri5 As String * 14
Dim veri6 As String * 10
Dim veri7 As String * 10
Dim veri8 As String * 2
Dim veri9 As String * 10
Dim veri10 As String * 18
Dim veri11 As String * 3
Dim veri12 As String * 10
Dim veri13 As String * 30
Dim veri14 As String * 25
Dim veri15 As String * 1
Dim veri16 As String * 1
Dim veri17 As String * 10
'Alan Belirlemesi
For alan = 17 To Cells(65536, 1).End(3).Row
veri1 = Cells(alan, 1)
veri2 = Cells(alan, 2)
veri3 = Cells(alan, 3)
veri4 = Cells(alan, 4)
veri5 = Cells(alan, 5)
veri6 = Cells(alan, 6)
veri7 = Cells(alan, 7)
veri8 = Cells(alan, 8)
veri9 = Cells(alan, 9)
veri10 = Cells(alan, 10)
veri11 = Cells(alan, 11)
veri12 = Cells(alan, 12)
veri13 = Cells(alan, 13)
veri14 = Cells(alan, 14)
veri15 = Cells(alan, 15)
veri16 = Cells(alan, 16)
veri17 = Cells(alan, 17)
'Istenilen Alanlarin format bicimi
veri6 = Format([veri6], "####-##-##;####-##-##")
veri7 = Format([veri7], "####-##-##;####-##-##")
veri12 = Format([veri12], "####-##-##;####-##-##")
'veri8 = Format([veri8], "000000000000;000000000000")
'veri9 = Format([veri9], "000000000000;000000000000")
'Dosyaya yazdirilacak alanlar
Print #1, "INSERT INTO dbo.test_db (XXX,XXXXX,XXXX,XXXXX,XXXX,XXXX,XXXXX,XXXXX,XXXX,XXXX,XXXXXXXX,XXXX,XXXX,XXXX,XXXX,XXXX)VALUES (N'"; veri1; "',N'"; veri2; "',N'"; veri3; "',N'"; veri4; "',N'"; veri5; "',N'"; veri6; "',N'"; veri7; "',N'"; veri8; "',N'"; veri9; "',N'"; veri10; "',N'"; veri11; "',N'"; veri12; "',N'"; veri13; "',N'"; veri14; "',N'"; veri15; "',N'"; veri16; "',N'"; veri17; "');"
Next
'Dongu burada biter
Close #1
End Sub
source dosyasından aldığım veriyi işleyip sql script' i oluşturuyorum ve sonra da sql manager' dan script i çalıştırıyorum..
bunu sql manager ile uğraşmadan sql bağlantısı kurup nasıl yaparım??
(XXX ler için kusura bakmayın)
teşekkürler
Sub Macro1()
nome = "C:\TEST.TXT"
Workbooks.OpenText Filename:=nome, Origin:=xlMSDOS, StartRow:=1 _
, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(127, 1), Array(187, 1 _
), Array(190, 1), Array(191, 1), Array(205, 1), Array(213, 1), Array(221, 1), Array(223, 1), Array(233, 1 _
), Array(251, 1), Array(253, 1), Array(261, 1), Array(291, 1), Array(316, 1), Array(317, 1), Array(318, 1 _
), Array(329, 1)), _
TrailingMinusNumbers:=True
' 0=TL / 50=YTL
Range("K1:K65536").Replace What:="50", Replacement:="YTL", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Range("K1:K65536").Replace What:="0", Replacement:="TL", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'Para Formati
Range("J1:J65536").Replace What:=",", Replacement:=".", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Range("J1:J65536").NumberFormat = "#,##0.00"
'Tarih Formatlari
Range("F1:F65536").NumberFormat = "####-##-##"
Range("G1:G65536").NumberFormat = "####-##-##"
Range("L1:L65536").NumberFormat = "####-##-##"
'DUZELTME
Range("C1:C65536").NumberFormat = "000"
'FORMAT
Range("E1:E65536").NumberFormat = "00000000000000"
'FORMATI
Range("Q1:Q65536").NumberFormat = "0000000000"
'Odendi / odenmedi bilgisi
Range("D165536").Replace What:="K", Replacement:="ODENDI", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Range("D165536").Replace What:="B", Replacement:="ODENMEDI", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
' Sql Script burada baslar..!!
'Dosya ismi
fname = "c:\B12.sql"
Open fname For Output As #1
'Dongu Burada Baslar
'Veri Uzunluklari
Dim veri1 As String * 127 '1 SÜTUN BOYU
Dim veri2 As String * 60 '2. SÜTÜN BOYU
Dim veri3 As String * 3
Dim veri4 As String * 11
Dim veri5 As String * 14
Dim veri6 As String * 10
Dim veri7 As String * 10
Dim veri8 As String * 2
Dim veri9 As String * 10
Dim veri10 As String * 18
Dim veri11 As String * 3
Dim veri12 As String * 10
Dim veri13 As String * 30
Dim veri14 As String * 25
Dim veri15 As String * 1
Dim veri16 As String * 1
Dim veri17 As String * 10
'Alan Belirlemesi
For alan = 17 To Cells(65536, 1).End(3).Row
veri1 = Cells(alan, 1)
veri2 = Cells(alan, 2)
veri3 = Cells(alan, 3)
veri4 = Cells(alan, 4)
veri5 = Cells(alan, 5)
veri6 = Cells(alan, 6)
veri7 = Cells(alan, 7)
veri8 = Cells(alan, 8)
veri9 = Cells(alan, 9)
veri10 = Cells(alan, 10)
veri11 = Cells(alan, 11)
veri12 = Cells(alan, 12)
veri13 = Cells(alan, 13)
veri14 = Cells(alan, 14)
veri15 = Cells(alan, 15)
veri16 = Cells(alan, 16)
veri17 = Cells(alan, 17)
'Istenilen Alanlarin format bicimi
veri6 = Format([veri6], "####-##-##;####-##-##")
veri7 = Format([veri7], "####-##-##;####-##-##")
veri12 = Format([veri12], "####-##-##;####-##-##")
'veri8 = Format([veri8], "000000000000;000000000000")
'veri9 = Format([veri9], "000000000000;000000000000")
'Dosyaya yazdirilacak alanlar
Print #1, "INSERT INTO dbo.test_db (XXX,XXXXX,XXXX,XXXXX,XXXX,XXXX,XXXXX,XXXXX,XXXX,XXXX,XXXXXXXX,XXXX,XXXX,XXXX,XXXX,XXXX)VALUES (N'"; veri1; "',N'"; veri2; "',N'"; veri3; "',N'"; veri4; "',N'"; veri5; "',N'"; veri6; "',N'"; veri7; "',N'"; veri8; "',N'"; veri9; "',N'"; veri10; "',N'"; veri11; "',N'"; veri12; "',N'"; veri13; "',N'"; veri14; "',N'"; veri15; "',N'"; veri16; "',N'"; veri17; "');"
Next
'Dongu burada biter
Close #1
End Sub
Son düzenleme: