Noch eine Frage diesmal Datenbank

Entschuldigt bitte, dass ich mehrere Sachen gleichzeitig frage aber ich habe mehrere Probleme.

Ich habe in einer Datenbank werte stehen "Data 1" "Data 2" usw. jetzt möchte ich gerne, dass dort neue Einträge gemacht werden also wenn ich auf den Button klicke, dann soll ein neuer Datenansatz erstellt werden.

Und dann nach inhalten suchen, die dann gelöscht werden.

Ich benutze Access-Datenbank.

Danke dir
 
aber ich habe die ja noch nichtmal aufgerufen das ist ja das Problem, wie man die Datei aufruft usw. das kann ich nicht.

Wäre net wenn du mir das erklären könntest.

Danke dir!
 
Hallo Stephan,

du hast ja leider nicht mal ansatzweise ein Konzept.
Wir wissen ja noch nicht mal wie du auf die Datenbank
zugreifen willst ADO,DAO,RDO ?
Entweder du erklärst etwas genauer was du willst oder zeigst
mal ein wenig Code.

Wie öffnest du die Datenbank.
Was genau soll passieren wenn du auf einen Button klickst ?
Wie sieht die Tabelle(n) aus?

Es gibt viele Möglichkeiten.
 
Hallo,

Danke für deine Antwort.

Ich habe mit Access eine Datenbank gemacht:

Name: list1
spalten ( in list1 ) : eins


jetzt wollte ich gerne das wissen:

  1. Wie öffne ich die Datenbank
  2. Wie lese ich verschiedene Spalten aus
  3. Wie stelle ich das Ergebnis mit msgbox dar?
  4. Wie kann ich etwas zu der Datenbank hinzufügen
  5. Wie kann ich etwas in der Datenbank ändern
  6. Wie kann ich was zur Datenbank hinzufügen
  7. Wie kann ich etwas aus der Datenbank löschen

mir würde reichen wenn ich Schritt 1-3 erklärt bekomme, den rest kann ich dann alleine dazulernen, das Problem ist halt, ich habe keinen Ansatz, wonach ich suchen könnte, ich finde nur Quelltexte ohne Erklärung und die sind über 20 Zeilen und ich verstehe daraus nichts.

Ich denke ich werde hier hilfe bekommen,
Ich hoffe ihr versteht was ich genau meine.

Danke.
 
Hallo Stephan,

da beste für dich wäre ein gutes Buch, aber ich wills mal versuchen.
Es gibt viele verschiedene Möglichkeiten eine Access Datenbank
zu öffnen.
Am einfachsten wäre es mit dem ADODC Steuerelement, aber
davon halte ich nichts.

Sicherer und vor allem übersichtlicher ist es , wenn man gleich per Code
eine Connection und ein Recordset öffnest und am besten ganz auf das ADODC
verzichtest. Es gibt nichts, was man ohne das ADODC nicht auch machen
kann und man hat dabei noch den Vorteil, sehr viel mehr Kontrolle
über alle Abläufe zu haben.

Also fangen wir mal an:

Also ich nutze ADO als Zugriffsmöglichkeit.
(DAO ist nicht mehr zeitgemäß und wird nicht mehr von MS
weiterentwickelt.)

Du mußt unter Veweise "Microsoft ActiveX Data Objects 2.X Library"
einbinden.
An Stelle des x's sollte mind. 5 besser 8 stehen. Die neueste mdac
Version von MS ist als 2.8 kostenlos herunterladbar.
Desweiteren sollte eine aktuelle Jet Engine installiert sein. Diese
gibt es mitlerweile in der Version SP8 für XP und 7 glaube ich für
Win98.
Bei XP brauchst du aber erst mal gar nichts zu installieren das ist
hauptsächlich bei prof. Anwendungen notwendig, fürs Beispiel geht
ohne die neuesten Versionen.

Ich gehe jetzt mal von einer Form ohne Module aus.
In der Form gibt es eine Listbox die ich mit der einen
Spalte deiner Tabelle fülle.


Im Deklarationsteil der Form:

Private cn As ADODB.Connection
Private rs As ADODB.Recordset

Im Load Ereignis der Form:


Code:
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset

With cn
         .Properties("Data Provider") = "Microsoft.Jet.OLEDB.4.0"
         .Properties("Data Source") = deine Datenbank
         .Properties("User ID") = "Admin"
         .Properties("Jet OLEDB:Database Password") = dein Passwort wenn es
         keins gibt kann das weggelassen werden
         .Cursorlocation = adUseClient
         .Open   --> hier wird die Datenbank geöffnet
End With

With rs
        rs.Source = "Select eins from List"
        rs.ActiveConnection = cn
        rs.CursorLocation = adUseClient       '---> bedeutet das das gesamte
                                                                                   Recordset sofort lokal in den
                                                                                    Speicher gelesen wird.  
        rs.CursorType = adOpenStatic
        rs.LockType = adLockOptimistic
        rs.Open   '---> Recordset wird geöffnet
End With

'Jetzt füllen wir die Listbox wenn Daten in der Tabelle vorhanden sind

Do while not rs.EOF       'Schleife solange laufen lassen bis End of File erreicht
                                            'ist
          List1.Additem rs.Fields("eins").Value          
    rs.Movenext                 ' zum nächsten Datensatz springen
Loop

rs.Close                          ' Recordset schliessen
set rs = Nothing             'Objekt zerstören

Im UnLoad Ereignis der Form:

cn.close
set cn = Nothing

Im Click Ereignis eines Buttons:

'Hinzufügen eines Datensatzes:

cn.Execute("Insert Into List (eins) Values (" & Variable & ")")

Wenn die Spalte ein Textfeld ist muss die Variable in Hochkommas
gesetzt werden also ..... Values ( ' " & Variable & " ' )")

Wenn in der Variable selbst Hochkommas vorkommen müssen diese
durch doppelte Hochkommas ersetzt werden
z.B. mit Variable = Replace(Variable" ' ", " '' " )


'Ändern eines Datensatzes

cn.Execute("Update List set eins = " & neuerWert & " where eins = " & alterWert )


Das mit dem Hinzufügen und Ändern kann auch über ein Recordset
mit Rs.Addnew oder rs.Update gemacht werden aber das führt
jetzt zu weit.

Es gibt viele Beispiele im Netz und du musst versuchen es langsam
zu erlernen.
Wenn dann ein paar Erfolge kommen macht das auch Spaß.

Ich hoffe das war ein wenig verständlich.

Gruß
Jens
 
Als Ergänzung, falls das vorherige Posting
ein Profi liest.

Das ganze ist natürlich nur sehr einfach ohne
Fehlerbehandlung gehalten.
Fehlerbehandlung in VB in sehr wichtig aber
ein Ding für sich, deshalb aus Zeitgründen und
dem besserem Verständis erst mal ohne.
 
Danke für deine sehr ausführliche Antwort.

Ich habe mal angefangen und erhalte Laufzeitfehler 91:

Objectvariable oder Width Variable nicht festgelegt


wäre für deine Hilfe dankbar.

MfG Stephan
 
Entschuldige bitte, mein Fehler.

Aber jetzt erhalte ich Laufzeitfehler 3265:

Ein Object, dass den angegebenen Namen oder dem Ordinalverweiß entspricht kann nicht gefunden werden.

Danke für eure hilfe!
 

Neue Beiträge

Zurück