Juli 12, 2020, 17:23:00

Neuigkeiten:

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


Alle Datensätze per Makro exportieren

Begonnen von ManusDei, Dezember 21, 2010, 12:39:24

⏪ vorheriges - nächstes ⏩

ManusDei

Hallo Gemeinde,

folgendes Problem:
Ich habe eine Abfrage erstellt, die mir zu einer bestimmten Nummer die Datensätze, in denen die Nummer in dem bestimmten Feld vorkommt, anzeigt. Jede Nummer kann auch mehrfach vorkommen.  Die Abfrage habe ich mit einem Modul verknüpft, so dass sich vor der Abfrage eine Dialogbox öffnet, wo ich die Nummer eingeben kann. Das funktionert soweit sehr gut.
Wie kann ich allerding alle Datensätze (also alle Nummern) mit den entsprechenden Datensätzen anzeigen lassen? Wenn ich das Dialogfeld leer lasse, kommt es zu keiner Ausgabe. Wie kann ich z.B. bei einer Eingabe von "alle", mir auch alle ausgeben lassen?

Vmtl. ein ziemlich einfaches Problem, ich habe es trotzdem nicht geschafft.

Manus


Hier mein Modul:


Function WelcheNummer() As String
WelcheNummer = _
InputBox$("Objekte für welche Nummer exportieren:")
End Function


DF6GL

Hallo,



"Die Abfrage habe ich mit einem Modul verknüpft"

was heißt das?


Welchen Sinn hat das "Modul" (eigentlich: die Prozedur in einem Modul)  ?
Es wird lediglich die Inputbox geöffnet und der Eingabewert der Variablen "WelcheNummer", die gar nicht deklariert ist, zugewiesen.

Ist das Modul, in dem sich die Prozedur befindet, ein Standard-Modul (Datenbankfenster/Module) oder handelt es sich um ein Klassenmodul?

Wie heißt der SQL-String der Abfrage?




Vermutlich kannst Du das Ganze einfacher haben mit einer Abfrage ähnlich:


Select * from tblNummern where Nummer = [Welche Nummer exportieren?]  or [Welche Nummer exportieren?]  is null

ManusDei

Also, es geht um eine archäologische Datenbank mit verschiedenen Kleinfunden (Keramik, Münzen, Holzreste etc.) Jeder Fund besitzt eine dreidimensionale Koordinate und ist einem Befund (Schicht) zugeordnet, aus dem er stammt und bekommt eine Klassifikationsnummer. Jeder Befund kann natürlich mehrere Kleinfunde beinhalten. Um die Koordinaten in AutoCad zu benutzen, exportiere ich sie. Manchmal möchte nur Kleinfunde aus einem ganz bestimmten Befund, deswegen die Dialogbox. Das funktioniert. Nun möchte ich aber die Kleinfunde aus allen Befunden anzeigen lassen. Was gebe ich nun in die Dialogbox ein?
Ich nehme an, ich habe ein Standardmodul.

Der SQL-String der Abfrage ist:

SELECT Kleinfundverzeichnis.Inventarnummer, Kleinfundverzeichnis.Befund, Kleinfundverzeichnis.[X-Koordinate], Kleinfundverzeichnis.[Y-Koordinate], Klassifizierung.Klassifizerungsnummer, Kleinfundverzeichnis.[Z-Koordinate]
FROM Kleinfundverzeichnis INNER JOIN Klassifizierung ON Kleinfundverzeichnis.Klassifizierung=Klassifizierung.Klassifizierung
WHERE (((Kleinfundverzeichnis.Befund)=WelcherBefund()) AND ((Kleinfundverzeichnis.[X-Koordinate])<>"0")) OR (((Kleinfundverzeichnis.Befund) Is Null));

DF6GL

Hallo,

ok, habe mich vorhin verlesen, Die "Variable" in der Prozedur ist ja die Funktion selber, was so ok ist.

Wenn Du die Funktion weiter benutzen willst (und nicht gleich den Abfargeparamter, wie vorhin vorgeschlagen, dann könnte das Ganze so heißen:



.
.
WHERE Kleinfundverzeichnis.Befund  like  WelcherBefund()  AND Kleinfundverzeichnis.[X-Koordinate])<>"0" ;


Wenn nun ein Sternchen  in die Inputbox eingegeben wird, zeigt die Abfrage alle DS an...

(Wobei hier  nun plötzlich die Funktion anders heißt....)


ManusDei

Super, funktionert.
Es lag also nur am "like"-Ausdruck?!

Danke