makro ile sql veri yükleme?

Katılım
26 Nisan 2007
Mesajlar
1
Excel Vers. ve Dili
2003
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("D1:D65536").Replace What:="K", Replacement:="ODENDI", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Range("D1:D65536").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:
Üst