vielfrager: excel-Frage

hallo an selfhtml

ich bin ein office-doofie und krieg nix hin :-(

Dim strPfad As String
Dim rsKunden As DAO.Recordset
Dim dbCurrent As Database
Dim dbRemote As Database

strPfad = "C:\ofengalerie_kircher\daten\ofengalerie.mdb"""
Set dbCurrent = CurrentDb
Set dbRemote = DBEngine.Workspaces(0).OpenDatabase(strPfad)
Set rsKunden = dbRemote.OpenRecordset("info_kunden", dbOpenDynaset)
rsKunden.MoveLast
rsKunden.MoveFirst
MsgBox rsKunden.RecordCount

Ich habe dieses Codefragment (und auch andere, die auch irgendwie nicht funktionieren) irgendwo aus einem Tutorial entnommen.

Weil ich will kapieren, wie eine Verbindung zu einer Datenbank mit Möglichkeiten der Suche nach Daten in ihr sowie der Eingabe von Daten in die Datenbank funktioniert, aber ich schaffs einfach nicht.
Aber das kann doch nicht so schwer sein !

wenn ich das in excel ausführe, kommt die Fehlermeldung: "Fehler beim kompilieren, benutzerdefinierter Typ nicht definiert"
(Debugger markiert "Dim rsKunden As DAO.Recordset")

Ich hab Office 2002 mit word, excel, access usw auf win ME installiert. Kennt excel 2002 diese Typen nicht, oder was mach ich falsch ?

Bitte helft mir

Gruss, Vielfrager

  1. Hi,

    Ich hab Office 2002 mit word, excel, access usw auf win ME installiert. Kennt excel 2002 diese Typen nicht, oder was mach ich falsch ?

    nun hinter diesen "Typen" verbergen sich DLLs, die manchmal eben explizit eingebunden werden muessen. Schau mal nach ob Du da irgendwelche Verweise auf M$ DAO setzen kannst. Unter "Projekteigenschaften".

    Gruss,
    Ludger

    --
    "Doof sein heisst nicht doof bleiben."
    1. Wo ist das, im vba-Editor oder in excel?

      (Ich kriege häufiger - in anderen Anwendungen - Fehlermeldungen a la "xyz verursachte einen Fehler in abc.dll, xyz wird geschlossen"

      Das ist seitdem mein Computer mal abgestürtzt ist. Ist da bei Windows irgendwas kaputt? kann ich das reparieren? was sind .dll- dateien?

      1. Hi,

        Wo ist das, im vba-Editor oder in excel?

        (Ich kriege häufiger - in anderen Anwendungen - Fehlermeldungen a la "xyz verursachte einen Fehler in abc.dll, xyz wird geschlossen"

        Das ist seitdem mein Computer mal abgestürtzt ist. Ist da bei Windows irgendwas kaputt? kann ich das reparieren? was sind .dll- dateien?

        ->M$ Excel->Alt+F11->Extras->Verweise->M$ DAO hinzufuegen

        Fehlermeldungen wie die o.g. kommen haeufig von fehlerhaft arbeitenden Treibern. Du kriegst den Suender ja gemeldet, also kannst Du die Fehlerursache analysieren und entsprechende Massnahmen (Rechner wegwerfen z.B.) ergreifen.

        Gruss,
        Ludger

        --
        "Die SPD im Aufwind?"
        1. (vielfrager beisst sich in den A...)

          Danke für den Tipp.
          In dieser Liste stehen ungefähr 120 verschiedene dings drinnen, davon 4 markiert. Sollte ich einfach mal alle markieren, damit alle zur Verfügung stehen? Oder mache ich dann was kaputt?

          gruss vielfrager

          1. habe mal M$ DAO 3.6 aktiviert, jetzt scheint es zu funzen..

            sind das verweise auf sogenannte DLLs?

            gruss vielfrager

            1. Hi,

              sind das verweise auf sogenannte DLLs?

              indirekt. Es sind Verweise auf COM-Objekte. Und die sind meist als DLLs realisiert, müssen aber nicht.

              Gruß,
              Martin

              1. Danke nochmal. Das ist alles so schwer...

  2. folgendes Codefragment funktioniert jetzt

    sub öffnedieDatenbankoderstirb()
      Dim Db As Database
      Dim Tb As Recordset
      Set Db = OpenDatabase("C:\daten\irgendeinedatenbank.mdb")
      Set Tb = Db.OpenRecordset("info_kunden", dbOpenDynaset)
      datensatz_value = Tb!Nachname
      MsgBox (datensatz_value)
    End Sub

    ...zeigt das erste Element der Spalte "Nachname" an. Wie kann ich auf eine andere Spalte zugreifen?

    Gruss, Vielfrager

    1. Quatsch, nicht auf eine andere Spalte, sondern auf ein anderes Element in derselben Spalte (z.b. das fünfte von oben in der Spalte "Nachname")

      gruss vielfrager

      1. Hallo vielfrager,

        Quatsch, nicht auf eine andere Spalte, sondern auf ein anderes Element in derselben Spalte (z.b. das fünfte von oben in der Spalte "Nachname")

        Dein aktueller Datensatz ist der erste Datensatz.
        Dein Zieldatensatz ist der fünfte Datensatz.

        Nach Adam Riese musst Du Dich vier Datensätze weiterbewegen.

        Mit folgendem Codefragment solltest Du das hinkriegen.

        i = 0
        While (i < 4)
            Tb.MoveNext ' Gehe zum nächsten Datensatz
            i = i + 1   ' Erhöhe den Zähler um 1
        Wend

        Selbstverständlich gehört da noch eine Abfrage dazu, dass Du nicht schon das Ende des Recordsets erreicht hast ...

        Freundliche Grüsse,

        Vinzenz

        1. Hi,

          Nach Adam Riese musst Du Dich vier Datensätze weiterbewegen.

          wer war denn Adam Riese?

          http://www.googlefight.com/cgi-bin/compare.pl?q1=adam+ries&q2=adam+riese&B1=Make+a+fight!&compare=1&langue=us

          ;-)

          Viele Grüße

          Jörg

          1. Hallo Jörg,

            wer war denn Adam Riese?

            selbst innerhalb der letzten 50 Jahre wurde mein Familienname auf diversen Grabsteinen von Verwandten unterschiedlich geschrieben - da nehme ich mir die Freiheit, den Familiennamen Deines Verwandten ebenfalls unterschiedlich zu schreiben :-)

            <ausrede type="an_den_Haaren_herbeigezogen">
            nach mit veralteter Dativform von Ries, dem Riese :-)
            </anmerkung>

            Freundliche Grüsse,

            Vinzenz

            1. Hi Vinzenz,

              selbst innerhalb der letzten 50 Jahre wurde mein Familienname auf diversen Grabsteinen von Verwandten unterschiedlich geschrieben - da nehme ich mir die Freiheit, den Familiennamen Deines Verwandten ebenfalls unterschiedlich zu schreiben :-)

              Das ist ja schon fast makaber.

              <ausrede type="an_den_Haaren_herbeigezogen">
              nach mit veralteter Dativform von Ries, dem Riese :-)
              </anmerkung>

              *g* Bevor ich diesen Zettel (ich war ziemlich überrascht) bekam, war ich auch immer der Meinung, daß der Name Adam Riese wäre. Aber den gibt es ja auch wirklich: http://www.adamriese.info/

              ;-)

              Viele Grüße

              Jörg

        2. vielen Dank Vinzenz für die Antwort und danke Jörg für eine neue Nachschlageseite :-)

          vielfrager