Avatar billede thorvall Nybegynder
06. november 2010 - 21:07 Der er 4 kommentarer og
1 løsning

Opdater MS-SQL tabel fra Excel

Har søgt og søgt uden at finde noget der fungere for følgende problem:

Opdater (INSERT INTO) en tabel i MS-SQL med værdier fra et Excel ark. Og det hele skal udføre fra Excel.

Har med succes fået automatiseret excel til at læse en tabel og beregne data, men kan ikke helt få styr på hvorledes jeg opdateret en tabel (NelsonSiegel) på serveren.

Har kigget forskellige steder:
Forbindelses string:
http://www.connectionstrings.com/sql-server-2008#p3
http://www.carlprothman.net/Default.aspx?tabid=87#OLEDBProviderForSQLServerViaSQLXMLOLEDB

Skriv (ADO)
www.experts-exchange.com/Software/Office_Productivity/Office_Suites/MS_Office/Excel/Q_22034603.html+Write+to+SQL+Server+Table+from+Excel&cd=9&hl=da&ct=clnk&gl=dk" target="_blank">http://webcache.googleusercontent.com/search?q=cache:tioDfw4TMgEJ:www.experts-exchange.com/Software/Office_Productivity/Office_Suites/MS_Office/Excel/Q_22034603.html+Write+to+SQL+Server+Table+from+Excel&cd=9&hl=da&ct=clnk&gl=dk
http://support.microsoft.com/kb/321686#appliesto
http://social.msdn.microsoft.com/Forums/en/vbinterop/thread/572226df-e59b-4c80-9978-494892699b19

Kan man bruge "windows autification" eller ligende ved login?

Selve information der skal importeres ser således ud, og er orgaiseret ligeså i DB.
Fitting parametre:    Værdi    Valuta    Time
Phi0    3,574043398    Dkk    2010-11-06 20:52
Phi1    -2,728787369    Dkk    2010-11-06 20:52
Phi2    -0,765405829    Dkk    2010-11-06 20:52
Phi3    -6,604198618    Dkk    2010-11-06 20:52
Phi4    0,943258676    Dkk    2010-11-06 20:52
Object funktion    0,003570572    Dkk    2010-11-06 20:52
Phi0    3,546411218    Eur    2010-11-06 20:52
Phi1    -2,862945513    Eur    2010-11-06 20:52
Phi2    -1,020329776    Eur    2010-11-06 20:52
Phi3    -7,613463949    Eur    2010-11-06 20:52
Phi4    1,019912799    Eur    2010-11-06 20:52
Object funktion    0,006036181    Eur    2010-11-06 20:52

Håber der er nogen der kan give mig den rette vejledning til at komme videre. Og prøver at arbejde videre med "10.0 Write to SQL Server Table from Excel
Avatar billede thorvall Nybegynder
06. november 2010 - 22:25 #1
Det lykkedes at få noget til at virke. Men er nu ikke helt tilfreds med koden.
Dim MyDatabase As ADODB.Connection
  Dim MyCommand As New ADODB.Command
  Dim MyRecordset As New ADODB.Recordset
  Dim Column As Long
    Sheets("Coefficients").Select
  ' Open database connection
  Set MyDatabase = New ADODB.Connection
  MyDatabase.CursorLocation = adUseClient
    MyDatabase.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=Thorvall;Data Source=Testing;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False"

MyDatabase.Execute "INSERT INTO NelsonSiegel (Parameter, Currency, Time, Value) VALUES ('" & Range("A2").Value & "','" & Range("C2").Value & "','" & Range("D2").Value & "','" & Range("B2").Value & "')"
MyDatabase.Execute "INSERT INTO NelsonSiegel (Parameter, Currency, Time, Value) VALUES ('" & Range("A3").Value & "','" & Range("C3").Value & "','" & Range("D3").Value & "','" & Range("B3").Value & "')"
MyDatabase.Execute "INSERT INTO NelsonSiegel (Parameter, Currency, Time, Value) VALUES ('" & Range("A4").Value & "','" & Range("C4").Value & "','" & Range("D4").Value & "','" & Range("B4").Value & "')"
MyDatabase.Execute "INSERT INTO NelsonSiegel (Parameter, Currency, Time, Value) VALUES ('" & Range("A5").Value & "','" & Range("C5").Value & "','" & Range("D5").Value & "','" & Range("B5").Value & "')"
MyDatabase.Execute "INSERT INTO NelsonSiegel (Parameter, Currency, Time, Value) VALUES ('" & Range("A6").Value & "','" & Range("C6").Value & "','" & Range("D6").Value & "','" & Range("B6").Value & "')"
MyDatabase.Execute "INSERT INTO NelsonSiegel (Parameter, Currency, Time, Value) VALUES ('" & Range("A7").Value & "','" & Range("C7").Value & "','" & Range("D7").Value & "','" & Range("B7").Value & "')"
MyDatabase.Execute "INSERT INTO NelsonSiegel (Parameter, Currency, Time, Value) VALUES ('" & Range("A8").Value & "','" & Range("C8").Value & "','" & Range("D8").Value & "','" & Range("B8").Value & "')"
MyDatabase.Execute "INSERT INTO NelsonSiegel (Parameter, Currency, Time, Value) VALUES ('" & Range("A9").Value & "','" & Range("C9").Value & "','" & Range("D9").Value & "','" & Range("B9").Value & "')"
MyDatabase.Execute "INSERT INTO NelsonSiegel (Parameter, Currency, Time, Value) VALUES ('" & Range("A10").Value & "','" & Range("C10").Value & "','" & Range("D10").Value & "','" & Range("B10").Value & "')"
MyDatabase.Execute "INSERT INTO NelsonSiegel (Parameter, Currency, Time, Value) VALUES ('" & Range("A11").Value & "','" & Range("C11").Value & "','" & Range("D11").Value & "','" & Range("B11").Value & "')"
MyDatabase.Execute "INSERT INTO NelsonSiegel (Parameter, Currency, Time, Value) VALUES ('" & Range("A12").Value & "','" & Range("C12").Value & "','" & Range("D12").Value & "','" & Range("B12").Value & "')"
MyDatabase.Execute "INSERT INTO NelsonSiegel (Parameter, Currency, Time, Value) VALUES ('" & Range("A13").Value & "','" & Range("C13").Value & "','" & Range("D13").Value & "','" & Range("B13").Value & "')"

' Close database
MyDatabase.Close
End Sub
07. november 2010 - 10:32 #2
kan du bedre lide noget alla dette her...

Dim MyDatabase As ADODB.Connection
  Dim MyCommand As New ADODB.Command
  Dim MyRecordset As New ADODB.Recordset
  Dim lRow As Long
 
  Sheets("Coefficients").Select
  ' Open database connection
  Set MyDatabase = New ADODB.Connection
  MyDatabase.CursorLocation = adUseClient
    MyDatabase.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;" & _
        "Initial Catalog=Thorvall;Data Source=Testing;Use Procedure for Prepare=1;Auto Translate=True;" & _
        "Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False"

    For lRow = 2 To 13
        MyDatabase.Execute "INSERT INTO NelsonSiegel (Parameter, Currency, Time, Value) VALUES ('" & _
            Cells(lRow, 1).Value & "','" & Cells(lRow, 3).Value & "','" & _
            Cells(lRow, 4).Value & "','" & Cells(lRow, 2).Value & "')"
    Next lRow

    ' Close database
    MyDatabase.Close
End Sub
Avatar billede thorvall Nybegynder
08. november 2010 - 17:05 #3
Takker.
Bare opret et svar.
08. november 2010 - 17:37 #4
Du løste jo det meste selv :-)
Avatar billede thorvall Nybegynder
08. november 2010 - 17:43 #5
Ja, men da jeg skrev spørgsmålet havde jeg dog brugt en dag uden held, og den ekstra er også noget værd.
så tak!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester