excel tabelesindeki bilgileri SQL e cevirmek

Katılım
7 Mayıs 2008
Mesajlar
2
Excel Vers. ve Dili
excel-2003
Arkadaslar bi firmada calisiyorum basimda cok büyük sorun var ve nasil yapacagimi bilemiyorum. O yüzden googleda biseyler ararken sizi gördüm ve bayagi bi yardimci oldugunuzu farkettim eger banada yardimlariniz dokunursa cok sevinirim.

Sorunumu anlatmaya calisiyim. Öncelikle amacim benim, excel tabelasindaki bilgileri SQL-sorgusuyla datenbanka koymak. (Terimlerde yanlislik yapabilirim almanyadan yaziyorum cünkü, kusura bakmayin).

Benim Elimdeki tabella üc excelsheets den olusuyor, assagida görülecegi gibi. Bu Tabelalarda bir sisteme giris yapan kullanicilar ve bu kullanicilarin ait oldugu gruplar yer almakta.

Yani bu üc tabellada birbiriyle iliski icerisindeler, $öyleki: Her „Kullanici“ bir grupa ait ve toplamda 15 tane grup var. Ve her grupa ait de Roller var. Yani hangi grupun hangi isleri yapabilecegini belirleyen, bu tabelayida ”Gruplar ve Haklari ” diye isimlendirdim. Ve en son olarakta her Rollünde yapabilecegi i$ler var, yani müsadeleri var (örnegin bi yaziyi okuma, yada bi yaziyi degistirme felan gibi).

Simdi benim simdiye kadar yapabildigim „Kullanici“ tabelasindaki kullanicilarin bilgilerini okuyup sql haline cevirmek, yani su scripti yazdim:

Sub GenerateUser()

Dim range As range
Dim ID As String
Dim username As String
Dim vorname As String
Dim nachname As String
Dim kuerzel As String
Dim teldurchwahl As String
Dim telnummer As String
Dim fax As String
Dim servicetelnummer As String
Dim mobilnummer As String
Dim signatur As String
Dim IDwinBK As String
Dim IDcrmKV As String

Dim csql As String

' Set range = ActiveWorkbook.Sheets("User").range("B9:AJ261")
Set range = ActiveWorkbook.Sheets("User").range("B200:AJ261")


' Gibt ein Nachrichtenfenster aus
MsgBox (range.Rows.Count)

For i = 1 To range.Rows.Count
ID = range.Cells(i, 6).Text
nachname = range.Cells(i, 3).Text
vorname = range.Cells(i, 4).Text
username = range.Cells(i, 6).Text
kuerzel = range.Cells(i, 7).Text
teldurchwahl = range.Cells(i, 8).Text
telnummer = range.Cells(i, 9).Text
fax = range.Cells(i, 10).Text
servicetelnummer = range.Cells(i, 11).Text
mobilnummer = range.Cells(i, 12).Text
signatur = range.Cells(i, 13).Text
IDwinBK = range.Cells(i, 14).Text
IDcrmKV = range.Cells(i, 15).Text

Sql = "INSERT INTO " & "`cm_sec_user`" & " VALUES ( " & vbNewLine & vbTab & "'" & ID & "'" & "," & " " & "'" & username & "'" & "," & " " & "'" & "827ccb0eea8a706c4c34a16891f84e7b" & "'" & "," & " " & "'" & vorname & "'" & "," & " " & "'" & nachname & "'" & "," & " " & "'" & kuerzel & "'" & "," & " " & " NULL " & "," & " " & "NULL" & "," & " " & "NULL" & "," & " " & "NULL" & "," & " " & "'" & "Y" & "'" & "," & " " & "NULL" & "," & " " & "NULL" & ");" & vbNewLine
csql = csql + Sql


Next
MsgBox (csql)
ActiveWorkbook.Sheets("Test").range("A3").Value = csql

End Sub


Simdi benim bu scriptim bütün kullanicilarin bilgilerini aliyo, baska bi tabellada belirttigim (ActiveWorkbook.Sheets("Test").range("A3").Value = csql) yere yaziyor. Ama malesef ben Hangi kullanicinin hangi grupa ait oldugunu secemiyorum. Her kullanicinin hangi grupta oldugunu „X“ isareti ile belirtilmis oluyor, yani script gidecek hangi isimin hangi gruba yerlesmis oldugunu görerek onuda yazacak?


Bilmiyorum sorunumu anlatabildimmi? Umarim beni anlamissinizdir?
Acaba bu konuda bana yardimci olabilecek arkadaslar varmi? Eger yardim edebilirseniz cok sevinirim. Tabelanin resmini de koymak istedim ama olmadi beceremedim nasil boardda resim kondugunu.
 
Katılım
7 Mayıs 2008
Mesajlar
2
Excel Vers. ve Dili
excel-2003
arkadaslar yardim edebilecek kimse yokmu acaba? bayagi kötü durumdayim ya
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,286
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
UPDATE kullansanız olur mu? Kusura bakmayın, ne yapmak istediğinizi tam anlayamadım.
 
Üst