Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Startformular Suchabfrage funktioniert nicht

Begonnen von Neuling1, Dezember 01, 2010, 07:21:25

⏪ vorheriges - nächstes ⏩

oma

Hallo,

anbei die DB wie sie wenigstens funktioniert.

Ohne Worte zum Handling 8)

Gruß Oma 

[Anhang gelöscht durch Administrator]
nichts ist fertig!

Neuling1

Der Suchbutton funktioniert, toll, danke! Wenn man einen neuen Namen eingeben will, zeigt das Formular keinen Datensatz an. Es sind aber 6 drin in der Tabelle. Warum ist das so und kann das nicht zu Fehlern führen?
Datenerhebung dient dem Nachweis, nicht der Form der Prozedur, deren Qualität mit Hilfe von Datenerhebung nachgewiesen werden soll

oma

Hallo,

ZitatWenn man einen neuen Namen eingeben will, zeigt das Formular keinen Datensatz an

wo wird kein Datensatz angezeigt?

Gruß Oma
nichts ist fertig!

Neuling1

Startformular, Button "Neuen Arzt eingeben". Klick und das Formular F_Ärzte öffnet sich. Aber im Systemfeld sieht man dann, dass dies dann der erste Datensatz sein wird, der angelegt wird.
Ich hatte ja irgendwo programmiert:Docmd.goto.....ac newrecord. Weil sonst immer der erste Datensatz angezeigt wird, der in der Tabelle ist. Der Nutzer soll das Formular ja öffnen und es ist bereit zur Eingabe. D.h. er soll nicht den ersten oder letzten Datensatz in der Tabelle sehen un ein zweites Mal klicken, um einen neuen Namen anlegen zu können.
Datenerhebung dient dem Nachweis, nicht der Form der Prozedur, deren Qualität mit Hilfe von Datenerhebung nachgewiesen werden soll

Neuling1

doch nichts mit new record, aber die Tatsache, dass kein Datensatz angezeigt wird, bleibt bestehen....

Private Sub Neuer_Arzt_Click()
On Error GoTo Err_Neuer_Arzt_Click

    Dim stDocName As String
    Dim stLinkCriteria As String
   
    DoCmd.Close acForm, "F_Startfenster", acSaveNo
    stDocName = "F_Ärzte"
    DoCmd.OpenForm stDocName, , , stLinkCriteria, acFormAdd
    'Forms(stDocName)!Übernehmen.Visible = False

Exit_Neuer_Arzt_Click:
    Exit Sub

Err_Neuer_Arzt_Click:
    MsgBox Err.Description
    Resume Exit_Neuer_Arzt_Click
   
End Sub
Datenerhebung dient dem Nachweis, nicht der Form der Prozedur, deren Qualität mit Hilfe von Datenerhebung nachgewiesen werden soll

oma

Hallo,

Zitatich habe irgendwo:...Docmd.goto.....ac newrecord.

hast du nirgends. du solltest dich in den wenigen Zeilen Code auskennen ;D

du hast ...acFormAdd    benutzt; damit kann der Benutzer neue Datensätze hinzufügen, aber keine vorhandenen Datensätze bearbeiten.!!

Gruß Oma
nichts ist fertig!

Neuling1

na er fügt aber keine Datensätze hinzu, er öffnet das Formular, als wenn es keinen vorherigen Datensatz gäbe
Datenerhebung dient dem Nachweis, nicht der Form der Prozedur, deren Qualität mit Hilfe von Datenerhebung nachgewiesen werden soll

oma

Hallo,

Zitatna er fügt aber keine Datensätze hinzu, er öffnet das Formular, als wenn es keinen vorherigen Datensatz gäbe

auch das stimmt wieder nicht, mit deinem jetzigen Code wird ein neuer leerer DS geöffnet u. du kannst einen neuen Arzt erfassen!!

Wenn du es anders haben willst, musst du deinen Code auch entsprechend ändern! Siehe Anlage

Gruß Oma

[Anhang gelöscht durch Administrator]
nichts ist fertig!

Neuling1

Ich hab mir Sorgen gemacht, weil kein Datensatz im Systemmenue steht.
Habs umgeändert, nun funktioniert es.
Wahrscheinlkich banal, aber immerhin

Private Sub neuer_Name_Click()
On Error GoTo Err_neuer_Name_Click

DoCmd.OpenForm "F_Ärzte", acNormal
DoCmd.GoToRecord , , acNewRec

Exit_neuer_Name_Click:
    Exit Sub

Err_neuer_Name_Click:
    MsgBox Err.Description
    Resume Exit_neuer_Name_Click
   
End Sub
Datenerhebung dient dem Nachweis, nicht der Form der Prozedur, deren Qualität mit Hilfe von Datenerhebung nachgewiesen werden soll

Neuling1

Vielen Dank für deine Zeit und deine Hilfe.
Ich mache jetzt Feierabend, sitze seit heute früh 7 Uhr hier. :) :) :D
Datenerhebung dient dem Nachweis, nicht der Form der Prozedur, deren Qualität mit Hilfe von Datenerhebung nachgewiesen werden soll

oma

Hallo,

ZitatIch mache jetzt Feierabend, sitze seit heute früh 7 Uhr hier.

und das alles, wenn man bedenkt, dass du die jetzige Lösung auch ohne eine Zeile Code bekommen könntest.
Jeder User kann doch die zugehörigen Menübefehle für "Neuer Datensatz" und "Suchen" benutzen!

Gruß Oma
nichts ist fertig!

Neuling1

soll er aber nicht! Es muss alles sozusagen unter Verschluss sein!
Datenerhebung dient dem Nachweis, nicht der Form der Prozedur, deren Qualität mit Hilfe von Datenerhebung nachgewiesen werden soll

oma

Hallo,

Zitat...Es muss alles sozusagen unter Verschluss sein

sorry, aber nun muss ich doch lachen. Erkläre mir mal, was bei dir unter "Verschluss" ist.

Gruß Oma
nichts ist fertig!

Neuling1

Guten Morgen, da bin ich wieder!

Mit "unter Verschluss" ist gemeint, dass ich gern ein Formular entwickeln würde, in dem es für den User nichts rumzuklicken gibt. Es soll alles automatisiert gehen. Der User soll nicht groß über Access nachdenken müssen, er soll die Daten eingeben.

Na, mein nächstes Formular wartet schon darauf, entwickelt zu werden, da brauche ich bestimmt nochmal Hilfe.

Eine Frage habe ich aber noch:
Was mir nicht klar ist, warum der Code "acFormAdd" einen neuen Datensatz anlegt und den aktuellen Datensatz zeigt, als wenn er der erste ist, der in die Tabelle reinkommt.  Das hat mich ja so zweifeln lassen, dass ich den Button verändert habe.

Aber vielen, vielen Dank nochmal für deine Hilfe!! :) :)
Ich weiß, dass ich nicht viel von VBA verstehe, hatte mit Access auch über Jahre gar nichts mehr zu tun, beschäftige mich erst in diesem Jahr wieder damit.
Nicht so einfach, wenn man noch genug andere Sachen auf dem Tisch hat und keine Geduld, sich stundenlang mit den alten Büchern zu beschäftigen....
Nichtsdestotrotz bin ich schon ehrgeizig genug, es vernünftig machen zu wollen.
Datenerhebung dient dem Nachweis, nicht der Form der Prozedur, deren Qualität mit Hilfe von Datenerhebung nachgewiesen werden soll

oma

Hallo,

ZitatWas mir nicht klar ist, warum der Code "acFormAdd" einen neuen Datensatz anlegt und den aktuellen Datensatz zeigt, als wenn er der erste ist, der in die Tabelle reinkommt.

mit accFormAdd wird das Formular geoffnet u. ein neuer leerer Datensatz zur Eingabe gereitgestellt, gleiches erreichst du mit der Einstellung des Formulars: Daten eingeben = Ja oder   bzw. per Code mit    DataEntry = True

es ist nicht der aktuelle sondern ein neuer zum Anlegen, nach Eingabe der ersten Zeichen in einem Feld im Formular wird der DS "vorgemerkt" und nach Verlassen des DS dann richtig gespeichert!

Nochmals zur Bedienerführung: wenn du die DB alleine benutzt kannst du sie so gestalten wie du denkst; wenn andere User auch damit arbeiten sollen, ist dein eigener Geschmack weniger interssant!

Ich weiss nach vielen hitzigen Diskussionen in Entwicklungsphasen von DBs. wovon ich spreche!

Grundprinzip solle immer sein, dass der User zunächst etwas sieht, bevor er dann möglicherweise zu Klicken anfängt.

Wenn du meinen Vorschlag folgen würdest, sieht der User zunächst mal alle Ärzte in einer Tabelle. Manche Operationen können gleich realisiert werden, da mit scrollen oder sortieren schnell eine Übersicht u. sogar ein finden eines Arztes möglich ist.

Zur Erfassung von Herrn Dr. Braun, Anton brauche ich garnicht erst eine Suchfunktion starten ob er denn schon erfasst ist; ich "sehe" den Arzt gleich in der Tabelle (Ärzte sind alphabetisch sortiert in Tabelle) oder eben nicht

Am besten bei so etwas, immer einige User in die Diskussion mit einbeziehen (was dann auch manchmal Überraschungen bezüglich zu den eigenen Annahmen mit sich bringt)

Aber du wirst das schon meistern; viel Erfolg bei der weiteren Entwicklung!


Gruß Oma
nichts ist fertig!