DatagridView (Gebunden an Access DB) zur Anzeige von Daten

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von chenjung.

    DatagridView (Gebunden an Access DB) zur Anzeige von Daten

    Hallo meine lieben,

    ich habe da mal wieder eine Frage bzw. Problem. Das ganz ist ansich schon kompliziert genug, da die Entwicklungsumgebung ebenfalls einige "Einschränkungen" hat.

    Also, mal grob erklärt.

    1) Entwicklungs PC ist ein VPC mit Windows 10 und Visual Basic 2019 / Visual Studio 2019 & MS Access 2016.
    2) Der Entwicklungs PC läuft auf meinem Arbeitsrechner auf Arbeit (dort ist die Installation von von Visual Basic bzw. Visual Studio 2019 untersagt. Daher der VPC.
    3) Warum dann die Softwareentwicklung überhaupt? Der Grund ist, wir arbeiten mit gefühlt 10000 Listen (Google Sheets) und weiteren Tabellen, Worddateien usw. Ein Chaos!

    Da wir am Tag mehrere dieser Listen abarbeiten müssen / abgleichen müssen und pflegen, aber uns ein Verwaltungsprogramm abgesagt wird, wurde ich nun selbst tätig. Heißt, ich arbeite in meiner Freizeit und ruhigen Mometen (seit Anfang Conrona im März 2019) an diesem Programm. Es ist somit expizit auf unsere Abteilung ausgerichtet.

    Gearbeitet wird mit Datagridview (Anzeigen der Daten) in diesem Fall in einer Access Datenbank (MySQL wird mir ebenfalls verboten).

    Entsprechen blieb dann nur noch Access DB oder eine Notepad Datei, die alles andere als "gut" wäre.

    Das Programm an sich ist zu rund 70% fertig. Ich teste gerade das ganze über unser Netzlaufwerk (kein GoogleDrive). Da das Programm über das Netzwerk ausgeführt werden soll (keine Installation möglich, da keine Adminrechte).

    Daher liegt die DB auf dem Netzwerkpfad und alle aus meinem Team sollen über die Desktopverknüpfung auf das Programm auf dem Netzlaufwerk zugreifen (geht soweit auch!).

    Nur nun habe ich das Problem, dass neue Daten zwar in der DB gespeichert wird, aber die neuen Einträge werden nicht auf der Form gezeigt. Ich vermute, da das Programm erstmal auf dem VPC Lokal lief, ist die Datenanbindung noch auf der Lolaken DB auf dem VPC - als er greift nur Lokal zu.

    Das weitere Problem, der VPC hat keinen Zugriff auf das Netzwerk. Ergo kann ich das Datagridview nicht auf den Netzlaufwerk verbinden.

    Die Frage ist nun: Kann ich den Pfad manuell angeben? Ich hoffe das war nicht zu verwirrend X/

    *Topic verschoben*
    Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    chenjung schrieb:

    Nur nun habe ich das Problem, dass neue Daten zwar in der DB gespeichert wird, aber die neuen Einträge werden nicht auf der Form gezeigt.
    Das klingt mir wie falsch programmiert.
    Ich ändere die Daten in meinem Programm, und schicke sie dann an die DB.
    Da ich die Daten in meinem Programm ändere werden sie in meinen Forms ja auch angezeigt.
    Oder in welchem Form bei dir werden sie nicht angezeigt?
    Hi ErfinderDesRades, sorry mein Fehler!!!

    Ich meinte nicht Form sondern im DateGridView.

    Hier ein Beispiel. Die Form Dienstleister Mitarbeiter lädt das DGV Mitarbeiter. Dort werden mir die "alten" Daten angezeigt, welche akutell nicht in der Datenbank auf dem Netzlaufwerk liegt.

    Alte Daten:
    ID
    NAME
    1
    Mann1
    2
    Mann2

    Trage ich nun über meine Form neue Daten ein (Datenbank) werden diese richtig in der Access Datenbank gespeichert (Netzlaufwerk). Dann schließe ich die Form und Programm öffene dieses neu und finde nach wie vor die alten Daten. Der Pfad wurde im Quellcode auf den Netzwerkpfad angepasst.

    Lokal war dieser: c:\verwaltung\datendb.mdb

    Netzwerk: P:\verwaltung\abteilung\datendb.mdb

    Andere Daten, wie z.b. Parkkarten eintragen laufen ohne Probleme. Dort laufen die neuen Daten einwandfrei und werden auch angezeigt (DGV).

    Dies erfolgt wie gehabt über Textboxen -> nach drücken auf Speichern werden diese in die DB geschreiben. Über die Suchmaske, wird über die Personalnummer gesucht und über die Form ausgegeben. Hier sind nur reine Textboxen. Öffent man die Forms Destails, werden Namen, Personalnummer, usw und das DGV angezeigt (eine Historie zur Person wird im DGV angezeigt). Läuft einwandfrei.

    Daher verstehe ich nicht ganz, warum im Bereich Wartung (Mitarbeiter) Wartungstermine die Daten nicht bzw. die neuen Daten angezeigt werden.


    Alte Daten werden angezeigt.


    Dies sind die neuen Daten in der DB.
    Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!

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

    Also wenn du dein Programm schliesst, und neu startest, und es zeigt dann andere Daten an als in der Datenbank sind - die du gleichzeitig anguckst.
    Dann befüllt sich dein Programm aus einer anderen Datenbank als die, in die du gleichzeitig guckst.

    Vielleicht hast du es ha iwie hingekriegt, dass es sich aus der einen DB befüllt, aber in eine andere abspeichert.

    Das hier zb

    chenjung schrieb:

    Der Pfad wurde im Quellcode auf den Netzwerkpfad angepasst.
    ist garnet so einfach, wenn man generierte DataAdapter verwendet.
    Hallo ErfinderDesRades,

    da gebe ich dir Recht. Alles nicht so einfach.

    Aber ich werde mir nochmal den Code ansehen, vielleicht habe ich irgendwo doch ne Fehler nur sehe ich ihn nicht.

    Erstmal danke für deine Hilfe!
    Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!
    Es scheint wirklich ne die loakle DB eingebunden zu sein. Wenn ich diese umbenennen, kommt der Fehler, dass er diese nicht finden kann.

    Dann muss ich wohl doch über die config Datei gehen? Sind das diese datenSet.xsd / .xss Dateien?
    Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!
    Hallo ErfinderDesRades,

    ich habe die Datei gefunden. Allerdings wir hier nur die My.MySettings.datenConnectionString3 angezeigt. Scheinbar ignoiert er die anderen ConnectionStrings in der Config?

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8" ?>
    2. <configuration>
    3. <configSections>
    4. </configSections>
    5. <connectionStrings>
    6. <add name="WindowsApp9.My.MySettings.datenConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=P:\verwaltung\daten1.mdb"
    7. providerName="System.Data.OleDb" />
    8. <add name="WindowsApp9.My.MySettings.datenConnectionString3"
    9. connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=P:\verwaltung\daten1.mdb"
    10. providerName="System.Data.OleDb" />
    11. </connectionStrings>
    12. <startup>
    13. <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
    14. </startup>
    15. </configuration>


    Die Pfade habe ich angepasst.
    Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!

    chenjung schrieb:

    Allerdings wir hier nur die My.MySettings.datenConnectionString3 angezeigt.
    Hä? ich sehe da zwei connectionstrings angezeigt: datenConnectionString und datenConnectionString3.
    Fehlt noch einer?
    Was noch auffällt, dass beide identisch sind - wen willst du dadurch verwirren?



    chenjung schrieb:

    Scheinbar ignoiert er die anderen ConnectionStrings in der Config?
    Wer?
    Wer ignoiert die anderen ConnectionStrings in der Config?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    OK, ich glaube ich verwirrte mich und dich! Sorry dafür.

    Ich sagte ja, es ist schwierig X/

    Also, ich habe einige Formen, welche auch verschiedene DGVs haben.

    Diese hatte im VB erstmal lokal angegeben und dann dort jeweiles die Tabellen ausgewählt (aus der daten1.mdb). D.h. pro Form mit einem DGV habe ich die jeweilige Tabelle ausgewählt.

    Z.b. Form5 hat ein DGV Form7 hat ein DGV usw.

    Im Code der Form (Störmeldung) seht z.b.:
    Me.StoermeldungTableAdapter7.Fill(Me.Daten1DataSet22.stoermeldung)

    Im Code der Form (Lager) seht z.b.:
    Me.LagerortTableAdapter.Fill(Me.Daten1DataSet8.lagerort)

    ich hoffe das wird jetzt bisschen ersichtlicher. Jetzt frage ich mich, wenn in der Config der Pfad zur DB steht, reicht das aus, damit das Programm weiß, dass er auf diese DB zugreifen soll (was er wohl bis jetzt nicht macht?)

    Sorry für das Chaos ;(

    Es wäre einfacher, wenn ich auf meinem Arbeits PC wirklich auch die IDE hätte, aber man lässt mich ja nicht :S
    Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „chenjung“ ()

    In den generierten TableAdaptern muss irgendwo zu finden sein, welchen Connectionstring er nimmt: Entweder datenConnectionString oder datenConnectionString3.
    Gut wäre, wenn alle TableAdapter denselben nehmen. Dann kannste den anderen löschen.

    chenjung schrieb:

    (was er wohl bis jetzt nicht macht?)
    Eiglich müsst er das machen - wer immer "er" auch sein mag - die Frage hast du noch nicht beantwortet.
    Wenn du meinst, dass "er" das nicht macht, dann guckst du vermutlcih eine andere .Config an als "er".
    Die Config, die ein Programm ausliest heisst <NamedesProgramms>.exe.config, und liegt im selben Ordner wie die .exe.
    Keine andere.
    Guten Morgen ErfinderDesRades,

    ich hab echt Tomaten auf den Augen X/

    Habe jetzt die Datei gefunden, die sehe ich mir mal an.

    Und mit er, meinte ich die <NamedesProgramms>.exe.config, hatte aber tatsächlich die falsche Datei geöffnet.

    Nachtrag!
    JA ES GEHT! Dank deiner Hilfe, ErfinderDesRates, ich verneige mich vor deiner Weisheit und kreiche im Staub vor dir! DANKE!!!!
    Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!

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