Fragen zum Thema Datenbank / Join / Generelle DB Fragen

  • Allgemein

SSL ist deaktiviert! Aktivieren Sie SSL für diese Sitzung, um eine sichere Verbindung herzustellen.

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

    Update:

    Habs geschafft, zwar ist jetzt keine Checkbox mehr, dafür ein Dropdown-Menü. Aber es erfüllt seinen zweck.



    Habe ja einige Wochen davor gestanden und überlegt, (auch hier und danke für eure Tipps) - bis ich auf die Idee kam, es doch sehr einfach "umzusetzen".

    Und war setzt der Wert im DDM nur die Werte Ja oder Nein.


    Dieser Wert geht in die Access Datenbank und bestimmt so, was der User kann. Einfach nur Ja oder Nein. Mehr habe ich nicht gebraucht.

    Beim Login werden die Daten dann abgefragt. Und siehe da, es geht :)

    Der User Admin z.b. kann alles.

    Der User Test kann nur gucken, aber sonst nichts, keine Daten hinzufügen / Löschen oder in die Userverwaltung gehen.

    Optimal :)

    Update:Die Rechtevergabe sieht nun aus (mit Liste aller Benutzer die als Admin aktiv sind bzw. vorhanden sind).
    Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!

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

    Eine Anfängerfrage habe ich noch *g*

    Was mir aufgefallen ist, wenn ich z.b. eine Suchabfrage mache, wähle ich die ID,Wert,Wert1,Wert2 from database WHERE Name = ' " & textfeld & " ' " <- das funktioniert tadellos. Ich kann somit Daten suchen, Ändern usw. Sprich die Textfelder werden mit den jeweiligen Infos aus den Wert1,2,3 usw. geladen.

    Aber wenn ich jetzt z.b. eine zweite Abfrage, (Also ein weiterer Button der sich das selbe Suchfeld Teilt suche.text ) der gleichen Database mache, nur mit dem WHERE Nr [..] - passiert nichts. VB gibt im Error View nur folgenden Code aus:

    A first chance exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll

    Das Programm läuft weiter aber es wird nichts geladen zb. danach gesucht. Dabei ist alles identisch nur der Abfrage Wert ist anders. Woran kann das liegen? Was übersehe ich?
    Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!
    Und die Lösung gefunden. Ich sah den Wald vor lauter Bäumen nicht mehr.

    1 Textfeld 1 Button reichen für eine mehrfach Suche. Die Lösung war "or" zwischen den Werten ... oh man.

    Wieder was gelernt.

    Hier ein kleiner beispielcode:
    Spoiler anzeigen
    ​"select ID, LNr, Kartennr, Personalnummer, Name, Vorname, Hinweis, ausgegeben, Bemerkung, entzogen, Status from Kartenausgabe WHERE Name or Vorname or Kartennr ='" & ksuche.Text & "'"
    Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!

    chenjung schrieb:

    WHERE Name or Vorname or Kartennr ='" & ksuche.Text & "'"

    Das kann so nicht funktionieren.
    Du musst die Bedingungen als einzelne logische Ausdrücke spezifizieren.

    SQL-Abfrage

    1. ​... WHERE Name='bla' OR Vorname='bla' OR Kartennr='bla'
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Du hast Recht, ich habe da vorhin wohl falsch geschaut.

    Es kommt somit immer nur der 1. Eintrag, egal was ich eingebe. Hab ich mich da so getäuscht *g*

    Weil feste Werte für Namen vergeben, wäre auf die Art mega Umständlich. Bei Rund 300 Einträgen xD
    Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!
    Hi Toorms,

    Sicher darst du Fragen, warum auch nicht.

    Ich erkläre es mal ausführlicher.

    Dieser Topic wurde gestartet, da ich Anfangs Werte aus den Comboboxen holten und speichern wollte. Was nun auch geht, denn die Rechtevergabe der User in meiner Software, sollen nach möglichkeit geregelt werden können, was nun auch geht (siehe Screenshot Post21 -der untere). Die Software hat somit eine Aktive Userverwaltung, wo wir User anlegen können, deren Rechte vergeben können und auch somit eine Übersicht haben, welche User aktiv sind. Ebenfalls können wir den Zugriff Zeitlich beschränken. Die Logdatei speichert alle vorgänge der jeweiligen User, die mit der Software arbeiten.

    Das Programm, welches ich dafür erstellt habe, ist dazu da, Schließfachkarten zu Verwalten, die unsere Firma für die Mitarbeiter zur Verfügung stellt. Meine Suchmaske durchsucht die Access Datenbank (zur Zeit leider wieder nur nach Name (Textbox1) oder nach Kartennummer (Textbox2)). Ich wollte daher versuchen, die Suche Dynamisch auf einen Button und ein Textfeld für die Suche anzeigen. Was ich gesern nun dachte, dass OR zwischen den Werte reichen würde, was es aber nicht tat.

    Und die Suchwerte "Starr" in den Quellcode zu legen macht auch keinen Sinn, da es ein kommen und gehen ist, mit den Schließfachkarten. Daher muss es dynamisch bleiben. Ich meine, es geht auch so, unser Team Arbeitet gern mit der Suchmaske und es geht. Aber ich persönlich fände es besser, nur ein Suchfeld zu haben. Da die Planung mit der Ausgabe der Karten nicht wirklich gut durchdacht war, blieb die Arbeiter wieder an uns hängen. Sprich mit der Verwaltung der Karten. Eine Vernetzung mit den Schließfächern wird ausgeschlossen, ebenso die Möglichkeit, die direkte Verbindung mit den Buchungsterminal. Daher erfolgte diese Lösung.

    Hier ein paar Screenhots:






    Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!
    Also vorab: cooles Projekt. Finde es immer gut, wenn man die Firma durch sowas unterstützen kann.

    Ein großes Ding sehe ich, was mir Magenschmerzen macht. Passwortspeicherung im Klartext - Ich denke aber, dass die DB geschützt ist? Wieso keine Passwortverschlüsselung? :)
    Talking is cheap, show me your Code! - Having trouble in Windows? Reboot! Having trouble in Linux? Be root!
    Danke für deinen Kommentar. Freut mich, wenn ich lese, dass es auf Anerkennung trifft.

    Guter Einwand, allerdings sehe ich keine Notwendigkeit, die Passwörter im AdminMode unkenntlich zu machen.

    Die Datenbank selbst liegt auf dem PC, worauf nur wir als Team Zugriff haben. Verschlüsselt bzw. gesichert ist die Datenbank in der Hinsicht nicht *g* - Die Suchmaske läuft sozusagen noch als Test, aber da nur 3 Personen daran arbeiten, ist das ganze noch zu verschmerzen. Werden es später aber mehr, dann muss man eine Sicherheit schon in Erwägung ziehen, daran wird noch gearbeitet.
    Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!
    Wie würde ich jetzt zu meinen Azubis sagen: Sehr bequemes denken du hast. (Yoda, damals)

    Ist mir halt nur aufgefallen; bin da eher so der Typ von "gleich vernünftig machen". Die Datenbank ist auch nicht gesichert? ... Mach's vernünftig, so hast du die Arbeit im Nachhinein nicht. Entspannt das ganze und du hast später keine Quälereien, "wenn es mal schnell umgestellt werden muss". :)
    Talking is cheap, show me your Code! - Having trouble in Windows? Reboot! Having trouble in Linux? Be root!
    Ich poste es dennoch mal Eiei, ich stehe vor folgendem Problem.Ich versuche über eine Abfrage (Suche nach Nachnamen) in mehreren Tabellen. Die Idee ist, es soll nach dem Nachnamen gesucht werden und wenn die Infos aus den anderen Tabellen gefunden werden, sollen diese in den jeweiligen Textboxen bei den Suchergebnissen angezeigt werden. Ich habe eine Datenbank (Access) MasterDB. Diese MasterDB hat mehrere weitere Tabellen, auz1, auz2, auz3. Dort sind Daten hinterlegt, wie z.b. Schüssel, Parkkarten usw. Ich gehe davon aus, dass ich jetzt eine Art Join machen muss?Suchabfrage über die Textbox und dann sowas in der Art?

    VB.NET-Quellcode

    1. SELECT Name,Vorname,Personalnummer, Kartennummer FROM masterdbINNER JOIN auz1, auz2, auz3ON (auz1.name = auz2.personalnummerAND auz3.Kartennummer = auz3.Personalnummer
    Die Personalnummer kommt in den anderen DBs vor / kann vorkommen, falls eine Karte ausgegeben wurde.Ist das der richtige Weg? *g*
    Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!

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

    ich sehs ähnlich wie Toorms: lieber von Anfang an vernünftig.

    Allerdings komme ich zu einem ganz anneren Ergebnis.
    Weil der Anfang ist nicht, eine Datenbank zu erstellen, sondern überhaupt erstmal Datenmodellierung zu erlernen.
    Und ich bin sogar radikaler als Toorms: Ich finde, es hat ühaupt keinen Sinn, ersteres zu unterfangen, wenn zweiteres nicht ausreichend beherrscht wird.

    Und da vermute ich jetzt massive Probleme, wenn du sagst, du habest Db-Tabellen des Namens auz1, auz2, auz3.
    Weil sowas legen eiglich nur Leuts an, die in relationaler Datenmodellierung nicht firm sind.

    Aber um sicher zu gehen, wäre es sinnvoll, du würdest einen Screenshot des ER-Diagramms deines Datenmodells posten - zB die Dataset-Designer-Ansicht eines von deiner Db generierten typisierten Datasets.

    Wie gesagt: Ist das Datenmodell verfehlt, brauchst du nicht weiterzumachen - kann nur Grütze bei rauskommen.
    Ok, die Abkürzungen waren wohl nicht so gut. Ja ich bin, was das Programmieren angeht, mehr als ein noob. Aber machen + Lernen und weiterbilden ist meine Einstellung.

    Wobei sich die JOIN frage jetzt nicht direkt auf das Programm hier bezieht, sondern auf ein anderes, was ich zur Zeit mache. Daher wollte ich jetzt kein 2. Thema dazu aufmachen. *g*

    Die Suchmaske aus dem Topic hier, läuft zuverlässig und gut :)

    Das Programm, worauf sich jetzt die JOIN Frage bezieht, hat Taps:

    Parkkarten | Ausnahme PK | Ausnahme Tower185 | Fahrradraum | Gäste Inter.

    Database: masterdb.mdb
    in dieser Database befinden sich folgende Tabellen mit jeweiligen Werten.



    Alle Felder bis auf ID sind "Kurzer Text" ID hat jeweils Autowert + PK.
    Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!

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

    Die Aufteilung so macht für mich keine Sinn

    Ich würde das ganze anders aufteilen, dann hast du auch keine Schwierigkeiten mit Joins.
    1. Alle Personendaten in eine Tabelle
    2. Tabellen für Besonderheiten (Transponder o.ä.)

    Dann kannst du einfach die Besonderheiten per ID mit den Personendaten verbinden
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Hi und danke für dein Hinweis.

    Zur Zeit vereine ich alle Exceltabellen, welche auf dem Netzwerk rumliegen in die Tabellen, weil wir hier ca. 4000 Dateien haben xD

    Das Programm sollte alles zusammenfassen. Daher auch die ganzen Tabellen / Bezeichnungen und co.

    Aber deine Idee ist gar nicht so schlecht, alle Daten zusammen tragen und dann in einer Tabelle bearbeiten zbw. auf den neuesten Stand halten.

    Muss mal gucken, ob das der Chef auch so will xD
    Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!