locked
Vložení záznamu z Excelu do SQL databáze RRS feed

  • Dotaz

  • Ahoj,

    pokouším se vložit záznam do SQL databáze z Excelu. Bohužel nejsem úspěšný :(. Používáme SQl server 2008.

    Níže kód, kterým se snažím záznam vložit, bohužel při otevření propojení vyskočí error viz obrázek pod textem.  Kód vychází z vkládání dat do Accessu, který funguje bez problémů. Na webu jsem našel mnoho kódů, které jsem bohužel nerozchodil.

    Požádal bych o opravu kódu nebo link na kód, který základním způsobem vkládá data do SQL (ne kód, který mám nekonečno kontrol).

    Sub ADOFromExcelToSQL()
    Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long, Myconn
    
     Set cn = New ADODB.Connection ' connect to the database'
     Myconn = "driver=SQL Server Native Client 10.0;" & _
              "SERVER=SqlServerName;" & _
              "UID=;Trusted_Connection=Yes;" & _
              "APP=Microsoft Office 2010;" & _
              "database=Pokus"
              
          cn.Provider = "Microsoft.Jet.OLEDB.4.0"
          cn.Open Myconn
    
     Set rs = New ADODB.Recordset          ' open a recordset'
       rs.Open "List1", cn, adOpenKeyset, adLockOptimistic, adCmdTable
            With rs
                .AddNew                                     ' create a new record'
                .Fields("aa") = Range("A2").Value
                .Fields("cislo") = Range("B2").Value
                .Update                                      ' stores the new record'
            End With
      rs.Close
      Set rs = Nothing
      cn.Close
      Set cn = Nothing
    End Sub


    VALL2

    pátek 10. května 2013 9:50

Odpovědi

  • Hele Valle zkousel's hledat?! Integrated Security prostre VYPUST:

    Provider=SQLOLEDB;Server=SERVER;Database=DATABASE;User ID=USER; password=PASSWD

    MP


    pondělí 13. května 2013 9:10
    Moderátor

Všechny reakce

  • Odkud je pouzity skript?

    M.

    pátek 10. května 2013 10:24
    Moderátor
  • V Excel VBA.


    VALL2

    pátek 10. května 2013 10:29
  • Miloš se ptal, kdo ti tento script napsal.

    ADODB je totiž název úplně něčeho jiného: http://adodb.sourceforge.net/

    .

    Jak máš zajištěné připojení k databází?


    JCH

    pátek 10. května 2013 10:56
  • Stáhnuto z internetu. původce už nevím.

    Připojení k databázi - TCP IP (když importuji data (pomocí MS Query), tak ovladač sql native client 10.)


    VALL2



    • Upravený VALL2 pátek 10. května 2013 11:34
    pátek 10. května 2013 11:22
  • Pouzij

    ...
    cn.ConnectionString = "Provider=SQLOLEDB;Server=ADRESA;Database=NAZEVDTB;Integrated Security=SSPI"
    cn.Open
    ...

    MP

    • Navržen jako odpověď Jan Chaloupek sobota 11. května 2013 10:04
    pátek 10. května 2013 12:19
    Moderátor
  • Díky, již vkládám.

    požádal bych ještě o jednu radu, která se týká příkazu Integrated Security. Na http://www.dotnetspider.com/forum/277181-What-Integrated-Security-connection-string.aspx  jsem něco málo o tom našel, nicméně jsem nenašel variantu Integrated Security = False, kde musím zadat UId a PWD. Napsal jsem to jak jsem si myslel, že by to mohlo být. Chyba :(.

    Ve své podstatě potřebuji vkládat data bez ohledu na přihlášeného uživatele (mám jednoho obecného a pomocí kódu použiji jeho přihlašovací údaje).

    kód:

     Set cn = New ADODB.Connection  ' connect to the SQL' database
    Myconn = "Provider=SQLOLEDB;" & _
             "Server=ADRESA;" & _
             "Database=NAZEVdb;" & _
             "Integrated Security=FALSE" & _
             "User Id = JmenoUzivatelPrihlaseniWindows;" & _
             "Pwd = HESLO;"


    VALL2


    • Upravený VALL2 pondělí 13. května 2013 9:04
    pondělí 13. května 2013 9:00
  • Hele Valle zkousel's hledat?! Integrated Security prostre VYPUST:

    Provider=SQLOLEDB;Server=SERVER;Database=DATABASE;User ID=USER; password=PASSWD

    MP


    pondělí 13. května 2013 9:10
    Moderátor
  • Vždy před dotazem hledám řešení. I na odkazu, který jsi zaslal.

    Jinak díky.


    VALL2

    pondělí 13. května 2013 9:37