FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 
smartsuitefaq.martinholz.de Foren-Übersicht

SQL mit Datumsabfrage

 
Neues Thema eröffnen   Neue Antwort erstellen    smartsuitefaq.martinholz.de Foren-Übersicht -> Approach
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
albune
Neuer User


Anmeldungsdatum: 02.02.2008
Beiträge: 4
Wohnort: Deutschland

BeitragVerfasst am: Sa 02.02.2008 13:28    Titel: SQL mit Datumsabfrage Antworten mit Zitat

Hallo, ich bin eher ein forgeschrittener Anwender, kriege aber eines nicht auf die Reihe..

Tabelle A: Feld1, Datum_ab, Datum_bis
Tabelle B: Feld_Ausgabe, Datum_eingang

nun soll folgendes passieren:

Select Feld1 from Tabelle_A, Tabelle_B into "feld_auf_formular" where Feld_Ausgabe = Feld1 and Datum_eingang between Datum_ab and Datum_b

Relation von Feld1 zu Feld_Ausgabe ist eingerichtet.

Über den Assistenten kriege ich nur den "letzten" Eintrag aus Tabelle A angezeigt im Formular...könnt ihr mir Tips geben? mit den Scripten komme ich nicht klar...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Martin
Site Admin


Anmeldungsdatum: 31.12.2004
Beiträge: 389
Wohnort: Düsseldorf

BeitragVerfasst am: Sa 02.02.2008 15:18    Titel: Antworten mit Zitat

Ich vermute Du möchtest alle Datensätze aus Tabelle B sehen bei denen das Suchkriterium passt.

Hast Du's schon mal mit 'ner Tabelle im Formular versucht (Stichwort: Repeating Panel)?

Machst Du die Abfrage tatsächlich über SQL?
Wenn ja ... mit ODBC oder über die DBF?
_________________
FAQ gelesen?
=> http://smartsuitefaq.martinholz.de/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden AIM-Name Yahoo Messenger MSN Messenger
albune
Neuer User


Anmeldungsdatum: 02.02.2008
Beiträge: 4
Wohnort: Deutschland

BeitragVerfasst am: Sa 02.02.2008 15:26    Titel: Antworten mit Zitat

ich habe ein Formular, in dessen Feld ich eine Eingabe (z.B. Postleitzahl) mache. Zu dieser Eingabe möchte ich dann einen Text anzeigen (z.B. Ort). Nun hat aber die PLZ zu bestimmten Zeiten einem anderen Ort gehört - d.h. ich möchte dann die historisierte Anzeige bekommen. Gespeichert ist die PLZ in der "führenden" Haupttabelle, der Ort steht in einer Referenztabelle mit PLZ , Ort, gilt_ab, gilt_bis
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Martin
Site Admin


Anmeldungsdatum: 31.12.2004
Beiträge: 389
Wohnort: Düsseldorf

BeitragVerfasst am: Sa 02.02.2008 15:55    Titel: Antworten mit Zitat

Ähh ... und was ist jetzt das Problem?
Irgendwie werde ich aus Deinen Postings nicht so recht schlau.

Aber ich versuch's nochmal.

Du hast drei Bedingungen:
Bedingung 1 = PLZ
Bedingung 2 = ein Datum
Bedingung 3 = ein anderes Datum (aber > Bedingung 2)

und nun sollen Dir alle Orte angezeigt werden, die einmal diese PLZ hatten - und zwar im angegebenen Zeitraum.

Deine Abfrage gibt aber nur einen Datensatz zurück, obwohl dort mehr als ein Datensatz auf die angegebenen Kriterien zutreffen - richtig?

Wenn Dein Formular nicht über einen "Repeating Panel" verfügt, kann es auch nur einen Datensatz darstellen. Das heisst zu den anderen musst Du blättern (unten links .. Datensatz n von n).

Wenn ich das immer noch nicht begriffen habe, mach' mal einen Screenshot des Formulars.
_________________
FAQ gelesen?
=> http://smartsuitefaq.martinholz.de/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden AIM-Name Yahoo Messenger MSN Messenger
albune
Neuer User


Anmeldungsdatum: 02.02.2008
Beiträge: 4
Wohnort: Deutschland

BeitragVerfasst am: Sa 02.02.2008 16:44    Titel: Antworten mit Zitat

also...

...habe selber editiert - beim weitersuchen habe ich gesehen, was ich möchte, geht nicht mit DBF sondern nur mit ODBC...also bastel ich selber - Anleitung habe ich schon im Script-Teil gefunden Smile

Sorry für deine mühe "umsonst"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Martin
Site Admin


Anmeldungsdatum: 31.12.2004
Beiträge: 389
Wohnort: Düsseldorf

BeitragVerfasst am: Sa 02.02.2008 19:09    Titel: Antworten mit Zitat

OK - verstanden (auch wenn die Daten der Screenshots etwas inkosistent sind 1391 <> 1371; 20.03.02 < 01.05.02 bzw. 01.07.02).

Dennoch muss ich mich mal wiederholen:
Wie fragst Du denn die DBen ab? Über SQL wie beschrieben?
Und wie ist die Datenanbindung gelöst?

In Approach funktionieren SQL-Queries nicht immer so wie sie sollen. Insbesondere die WHERE-Clause ist da etwas sehr Banane ... ausser die Datenbankanbindung ist über ODBC gelöst.

Nichts desto trotz ... ich habe mal etwas gespielt:
Es geht mit SQL und der dBase-Verbindung nicht mit WHERE-Clause.
Ich habe es dennoch mit der dBase-Geschichte gemacht. Nicht schön aber funktioniert.

Mit ODBC sollte es etwas einfacher sein (Karlheinz ... Dein Auftritt Wink ).

Hier mein Script:
Code:
Sub SucheOrt
   Dim Ansicht As Variant
   Set Ansicht = CurrentView.Objectlistall
   
   Dim Eingabe_Stempel As Long
   Eingabe_Stempel = Clng(Ansicht(3).text) ' <--- Feld stempel auslesen
   Dim Eingabe_Datum As Variant
   Eingabe_Datum = Datevalue(Ansicht(2).text) ' <--- Feld datum_ruecksendung auslesen
   
   Dim Ausgabe_Ort As String
   
   Dim Verbindung As New Connection
   Dim Abfrage As New Query
   Dim Ergebnis As New Resultset
   
   Dim Pfad As String
   Pfad = CurrentDocument.path
   
   If Verbindung.ConnectTo("dBase IV") Then
      Set Abfrage.Connection = Verbindung
      Abfrage.SQL = "SELECT ""stempel"",""datum_von"",""datum_bis"",""ort"" FROM """ & Pfad & "TabelleA.dbf"""
      Set Ergebnis.Query = Abfrage
      If (Ergebnis.execute) Then
         Ergebnis.FirstRow
         For i = 1 To Ergebnis.NumRows
            Abfrage_Stempel = Clng(Ergebnis.GetValue(1))
            Abfrage_Datum_Von = Datevalue(Ergebnis.GetValue(2))
            Abfrage_Datum_Bis = Datevalue(Ergebnis.GetValue(3))
            Abfrage_Ort = Ergebnis.GetValue(4)
            
            If ((Abfrage_Stempel = Eingabe_Stempel) And (Abfrage_Datum_Von <= Eingabe_Datum) And (Abfrage_Datum_Bis >= Eingabe_Datum)) Then
               Ausgabe_Ort = Abfrage_Ort
               Ansicht(4).text = Ausgabe_Ort ' gefundenen Ort in die Ansicht schreiben
            End If
            
            Call Ergebnis.NextRow
         Next
      End If
   End If
   
End Sub


Und hier die Beispieldatei: http://smartsuitefaq.martinholz.de/download/Datensatz_nach_Datum_und_Kennzahl_auswaehlen.zip

HTH
Martin

[edit:] Also sowas ... da wartet unser Neuzugang nicht mal meine Superhervorragende Antwort ab ... tststs ... Smile[/edit]
_________________
FAQ gelesen?
=> http://smartsuitefaq.martinholz.de/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden AIM-Name Yahoo Messenger MSN Messenger
albune
Neuer User


Anmeldungsdatum: 02.02.2008
Beiträge: 4
Wohnort: Deutschland

BeitragVerfasst am: Sa 02.02.2008 19:20    Titel: Antworten mit Zitat

vielen Dank - probiere ich morgen aus und gebe Info...aber die Idee ist tricky!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    smartsuitefaq.martinholz.de Foren-Übersicht -> Approach Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Protected by Anti-Spam ACP