Access aus visual basic mit bestimmtem Datensatz öffnen

  • VB6

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Dagobert.

    Access aus visual basic mit bestimmtem Datensatz öffnen

    Hallo zusammen,

    ich bin neu hierund weiß nicht, ob ich diese Frage im richtigen Forum stelle. Ich versuche es einfach 'mal, Ihr werdet es mich sicher wissen lassen. Nun zu meiner Frage:

    ich möchte aus einem Visual Basic 6 Projekt, wenn ich auf einen
    Button klicke, eine Access Datenbank mit einem bestimmten Datensatz
    öffnen.

    Wenn ich nur die Datenbank öffnen will schreibe ich:


    Dim stappname As String

    stappname = Chr$(34) & "C:\Programme\Microsoft Office\OFFICE11\MSACCESS.EXE" &

    Chr$(34) & " " & _

    Chr$(34) & "Z:\mdb\" & "DIL-PKW.mdb" & Chr$(34)

    Shell stappname, 1



    Welche Code muss ich einfügen, bzw. neu schreiben damit ein bestimmter Datensatz geöffnet wird?


    Über Hilfe würde ich mich freuen.


    Im Voraus besten Dank
    Gruß Dagobert

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Dagobert“ ()

    Hallo @Dagobert! Willkommen im Forum!

    Dagobert schrieb:

    damit ein bestimmter Datensatz geöffnet wird
    Heißt für dich was? Du startest deine (VB6) Anwendung, klickst auf einen Button, Access öffnet sich und der Cursor springt auf den gewünschte Datensatz? Oder willst du lediglich einen bestimmten Datensatz aus der Access DB lesen und in deinem Programm anzeigen?

    Für ersteres wüsste ich kein Lösung (wenn jemand anderes was weiß, tut Euch keinen Zwang an ;D)
    Für zweiteres müsstest du "lediglich" einen Datenbankzugriff über OLEDB erstellen, ein SQL Statement absetzen und das Ergebnis anschließend anzeigen. Für den Datenbankzugriff schau mal hier für den ConnectionString vorbei und google mal nach "vb datenbankzugriff".

    Für weitere Informationen stehen wir dir gerne bereit :D

    Lg Radinator
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Hallo Radinator,
    vielen Dank erst einmal für Dein Interesse.
    Ja, ich möchte die Datenbank mit einem bestimmten Datensatz öffnen.


    Aus der Access Datenbank (anderes Formular) konnte ich auf einen bestimmten Datensatz im Formular PKW zugreifen:

    hier der Code:
    Dim strKrit As String
    strKrit = "Adressenlistennr =" & Me!ListeTA
    DoCmd.OpenForm "PKW", , , strKrit
    DoCmd.Close acForm, "TÜV"



    Gruß Dagobert

    Dagobert schrieb:

    ich möchte die Datenbank mit einem bestimmten Datensatz öffnen.

    Radinator schrieb:

    Heißt für dich was?
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Ich denke nicht, dass Microsoft Parameter in Access eingebaut hat, die das Öffnen von bestimmten Datensätzen ermöglichen.

    Daher wirst du vermutlich nicht darum herum kommen, Access fernzusteuern. Entweder per OLE oder per SendKeys & Co.

    Zur Steuerung via OLE habe ich bzgl. Access auf die Schnelle nichts gefunden, aber hier ein Tutorial für Excel: developer.com/net/vb/article.p…n-with-Visual-Basic-6.htm
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Hallo Marcus.
    Vielen Dank für Dein Interesse und Deine Hinweise.

    Stimmt, ich habe auch keine Parameter gefunden.

    Hier habe ich welche gefunden, leider ist für mich nichts dabei.

    https://support.office.com/de-de/article/Befehlszeilenswitches-f%C3%BCr-Access-558cfe1d-3c98-4292-bee8-1f5df9702bf1

    Wie dem auch sei, dann muss ich eben versuchen es anders hinzubekommen.

    Gruß Dagobert

    PS Kann ich auch per email benachrichtigt werden, wenn eine neue Nachricht vorliegt?
    Also, eine Datenbank mit einem bestimmten Datensatz zu öffnen geht sowieso nicht. Wenn dann musst du nach dem Öffnen der Datenbank noch ein z.B. Formular (oder ggf. Report, Tabelle, Abfrage...) öffnen und darin kannst du dann nach einem bestimmten Datensatz filtern.

    Falls es das ist was du meinst dann geht das eigentlich ganz einfach:

    VB.NET-Quellcode

    1. Imports Microsoft.Office.Interop
    2. Public Class Form1
    3. Sub OpenAccess()
    4. Dim AcApp As Access.Application = New Access.ApplicationClass
    5. AcApp.OpenCurrentDatabase("Pfad\zu\deiner\Db.mdb")
    6. AcApp.Visible = True
    7. Dim TestID As Integer = 35
    8. AcApp.DoCmd.OpenForm("DeinFormular", , , "ID=" & TestID)
    9. End Sub
    10. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    11. OpenAccess()
    12. End Sub
    13. End Class


    Ich hoffe, du weißt dass du den Code einfach in ein Testformular mit eine "Button1" drauf einfügen musst ;)
    Achja - sauber aufräumen musst du die Objekte dann anschließend auch noch...
    Hallo Thisoft,
    das sieht doch schon einmal sehr gut aus.
    Ja, ich möchte eine Access Datenbank öffnen und es soll zu einem bestimmten Datensatz gesprungen, bzw. angezeigt werden.
    Kannst Du mir sagen, wie der VB.NET-Quellcode in VB6 umgeschrieben werden kann?
    Vielen Dank im Voraus
    Gruß Dagobert

    Dagobert schrieb:

    PS Kann ich auch per email benachrichtigt werden, wenn eine neue Nachricht vorliegt?

    vb-paradise.de/index.php/NotificationSettings/
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Ich habe eine Lösung gefunden.
    Das ist zwar nur eine "Krücke", aber es funktioniert.

    In einem VB6-Objekt werden in einer Listbox die Inhalte (Zahlen) eines Textfeldes aller Datensätze angezeigt. Mein Ziel war es, bei Doppelklick auf einen Eintrag des Listfeldes den dazugehörigen Datensatz einer Access Datenbank aufzurufen, bzw. anzuzeigen.

    Wenn jetzt auf einen Eintrag der Listbox doppelgeklickt wird, wird die Zwischenablage geleert und der Wert (die Zahl aus der Listbox) in die Zwischenablage kopiert. Danach wird die Datenbank geöffnet und ein Makro gestartet.

    Dim stappname As String
    stappname = Chr$(34) & "C:\Programme\Microsoft Office\OFFICE11\MSACCESS.EXE" & _
    Chr$(34) & " " & _
    Chr$(34) & "Z:\mdb\" & "DIL-PKW.mdb" & Chr$(34) & "/x Makro2"
    Shell stappname, 1


    Dieses Makro öffnet eine Funktion:
    Es wird der Inhalt der Zwischenablage im Kombinationsfeld angezeigt, darin befinden sich ebenfalls alle Zahlen eines bestimmten Textfeldes. Bei Klick auf einen Eintrag wird zu diesem Datensatz gesprungen.
    Danach wird ein RETURN simuliert, es wird zum gewünschten Datensatz gesprungen.

    Ich würde natürlich eine elegantere Lösung bevorzugen und hoffe noch auf einen entscheidenen Hinweis.

    Gruß Dagobert

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Dagobert“ ()