Werte von Zellen in DB speichern

Manii

Mitglied
Halloo.. ein weiteres von hoffentlich nicht mehr vielen anderen.

Ich möchte die Werte von Zellen in einem Excel-Dokument in die Datenbank speichern.
Mein zusammengestückeltes Etwas, das ich bisher habe, allerdings nicht funktioniert:

Code:
'Speichert Daten in Datenbank
'13.07.2007 von Winkler Manuel erstellt
'
Sub saveLS()

    'Verbindung mit Datenbank herstellen
    Set cnn = New ADODB.Connection
    cnn.Open " Provider=SQLOLEDB;Integrated Security=SSPI;" & _
              "Persist Security Info=False;Initial Catalog=Lieferscheine; Data Source=BURTSCHERHELEN"
                            
    'Auf Tabelleninhalte zugreifen
    Dim rs As New ADODB.Recordset
    
    rs.Open "Insert into Lieferscheine.dbo.Lieferscheinanzeige1 (nLSNRRNR) VALUES" & "('" & Range("F6") & "), cnn"
    
'rs.Open "Insert into Lieferscheine.dbo.Lieferscheinanzeige1 (nLSNR, strAdresse, strBESTNR, strPROJEKT, strAUFTRAG, strKNDNR, strUIDNR, strLIEFERNR, dDATUM, strZEICHEN, strLB) VALUES" & "('" & Range("F6") & "'" & ",'" & TextBox2 & "'" & ",'" & Range("B18") & "','" & Range("F18") & "'" & ",'" & Range("I18") & "','" & Range("K18") & "','" & Range("B21") & "','" & Range("F21") & "','" & Range("I21") & "','" & Range("K21") & "','" & Range("G23") & "'" & ")", cnn
       
    rs.Fields("nLSNR") = Range("F6")
    
    'rs.Fields("strText") = txt                     'Funktioniert (noch) nicht
    
    rs.Fields("strBESTNR") = Range("B18")
    rs.Fields("strPROJEKT") = Range("F18")
    rs.Fields("strAUFTRAG") = Range("I18")
    rs.Fields("strKNDNR") = Range("K18")
    
    rs.Fields("strUIDNR") = Range("B21")
    rs.Fields("strLIEFERNR") = Range("F21")
    rs.Fields("dDATUM") = Range("I21")
    rs.Fields("strZEICHEN") = Range("K21")
    
    rs.Fields("strLB") = Range("G23")

End Sub

Der Fehler, den ich beim Ausführen bekomme:
Die Verbindung kann nicht verwendet werden, um diesen Vorgang auszuführen. Sie ist entweder geschlossen oder in diesem Zusammenhang ungültig.

Der Fehler tritt beim ersten rs.Open auf.

lG Mani
 
Ich glaub ich hab ne Ahnugn warum du dein Textrfeld nicht füllen kanst das hängt alles miteinader zusammen
Ich öffne meine DB-Verbidung immer so :

Code:
On Error GoTo DB_Err

    Set Cn = New ADODB.Connection
        With Cn
            .CursorLocation = adUseClient
            .Mode = adModeShareDenyNone
            .Provider = "Microsoft.Jet.OLEDB.4.0"
            .Properties("Data Source") = "Comback.mdb"
            .Open
        End With
 Exit Property
 
DB_Err:
    MsgBox "Datenbank ist nicht vorhanden!" & vbCrLf _
      & "Sie müssen das Programm beenden!", 16, "Warnung!"
    End
Öffnet Die DB
Code:
 On Error GoTo Tabelle_Err
    Set Rs = New ADODB.Recordset
        With Rs
            .ActiveConnection = Cn
            .CursorLocation = adUseClient
            .CursorType = adOpenKeyset
            .LockType = adLockOptimistic
            .Source = "SELECT * FROM tbl_User"
            .Open
        End With
 Exit Sub
    
Tabelle_Err:
    MsgBox "Tabelle 'User' ist nicht vorhanden!" & vbCrLf _
      & "Bitte Prüfen Sie die Datenbank 'Comback'", 16, "Warnung!"
    End
Das Rs.

Änder mal den Code passend für dich ab und probiers mal :)

lg
Piti
 
Hm, ich brings nicht her, deine Art der Verbindung in Gang zu setzen. Die Error-Funktionen streiken voll und ganz und das .Open spuckt auch einen Fehler aus. Also diese Art der Verbindung bei mir rein zu würgen stell ich mir als sehr Zeitaufwendig und kompliziert vor. Vor allem, weil bei mir alles läuft, bis auf die Textbox zu öffnen... und alles zusammen zu speichern. Das kann ich noch net. Hast du da vielleicht eine andere Idee? Mit meiner Art der Verbindung? Und was für eine Vermutung hast du, warum ich mit den Textboxen nichts machen kann?

Mach erstmal Mittagspause ;)

lG und trozdem vielen Dank

Mani
 
das textfeld jetzt mit den werten aus der datenbank zu füllen funktioniert ;)

alles was ich jetzt noch brauch ist... wie verdammt bekomm ich die daten in die datenbank rein? raus geht mittlerweile alles... einlesen muss ich noch.. und ich schaffs net...

jemand ne idee/ahnung oder gar lösung?

lg mani :)
 
Code:
rs.Open "Insert into Lieferscheine.dbo.Lieferscheinanzeige1 (nLSNR, strADRESSE, strBESTNR, strPROJEKT, strAUFTRAG, strKNDNR, strUIDNR, strLIEFERNR, dDATUM, strZEICHEN, strLB, strLINK) VALUES" _
    & "('" & LSNR & "'" & ",'" & ADRESSE & "','" & BESTNR & "'" & ",'" & PROJEKT & "','" & AUFTRAG & "','" & KNDNR & "','" & UIDNR & "','" & LIEFERNR & "','" & DATUM & "','" & ZEICHEN & "','" & LB & "','" & LINK & "'" & ")", cnn

diese zeilen habens schliesslich gebracht !

erledigt :)
 
Zurück