Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Bernie110 am April 09, 2014, 16:40:30

Titel: Fehler bei Filterung
Beitrag von: Bernie110 am April 09, 2014, 16:40:30
Hallo Zusammen,

ich bekomm folgende Fehlermeldung ( AC2007)

Laufzeitfehler-2147417848(80010108)
Die Methode "Filter" für das Objekt Form_Dispoplan_DT_Erfassung_Ufo ist fehlgeschlagen.

Der Fehler kommt nicht immer. Gefühlt nach jeder 20sten Filterung.

Info:
HF ( nicht Tabellend beassierend )
UFO ( Abfrage bassierend )

Code :
[size=8pt]
Public Sub Sendung_Suchen()
' **************************************
' *         SENDUNGEN SUCHEN           *
' **************************************
'Me.Filter = ""
'Me.FilterOn = True

 
Dim Krit As String
  Krit = ""
  'Beispiel für Filtersetzen mit Text, Zahl, Datum LagerCode

  If Not IsNull(Me!LfdNr) Then Krit = Krit & " And LfdNr =" & Me!LfdNr

  If Not IsNull(Me!AG_FirmenName1) Then Krit = Krit & " And AG_FirmenName1 Like '*" & Me!AG_FirmenName1 & "*'"
  If Not IsNull(Me!STATUS) Then Krit = Krit & " And Abfrage_DISPOPLAN_DT_ERFASSUNG_UFO.Status =" & Me!STATUS
  If Not IsNull(Me!LieferscheinNr) Then Krit = Krit & " And LieferscheinNr Like '" & Me!LieferscheinNr & "*'"
  If Not IsNull(Me!Auftragsnummer) Then Krit = Krit & " And Auftragsnummer Like '*" & Me!Auftragsnummer & "*'"
 

   If Not IsNull(Me!LagerCode_Sendung) Then Krit = Krit & " And LagerCode Like '" & Me!LagerCode_Sendung & "*'"
 
  If Not IsNull(Me!Auftragsnummer) Then Krit = Krit & " And Auftragsnummer Like '*" & Me!Auftragsnummer & "*'"

  If Not IsNull(Me!LTW) Then Krit = Krit & " And LTW Like '" & Me!LTW & "*'"
 
  If Not IsNull(Me!EMPF_Land) Then Krit = Krit & " And Empf_Land Like '" & Me!EMPF_Land & "*'"
  If Not IsNull(Me!EMPF_Plz) Then Krit = Krit & " And Empf_Plz Like '" & Me!EMPF_Plz & "*'"
  If Not IsNull(Me!EMPF_Ort) Then Krit = Krit & " And Empf_Ort Like '*" & Me!EMPF_Ort & "*'"
 
  If Not IsNull(Me!Ladedatum) Then Krit = Krit & " And Ladedatum Like '*" & Me!Ladedatum & "*'"

 
    If Me.BT_Alle_ungeplanten = True Then Krit = Krit & " And Isnull(DT_Erfassung.TourNr)"
    If Me.BT_Alle_geplante = True Then Krit = Krit & " And Not Isnull(DT_Erfassung.TourNr)"

    If Not IsNull(Me!TOURNR) Then Krit = Krit & " And DT_Erfassung.TourNr =" & Me!TOURNR
 
  If Not IsNull(Me!Express) Then Krit = Krit & " And Express =" & Me!Express
  If Not IsNull(Me!Fixtermin) Then Krit = Krit & " And Fixtermin =" & Me!Fixtermin
  If Not IsNull(Me!Check_Rohre) Then Krit = Krit & " And Check_Rohre =" & Me!Check_Rohre
 
    If Not IsNull(Me!SNDG_ART) Then Krit = Krit & " And SNDG_ART =" & Me!SNDG_ART
   

 
If Krit <> "" Then Krit = Mid(Krit, 6)
Me!DISPOPLAN_DT_ERFASSUNG_UFO.Form.Filter = Krit
Me!DISPOPLAN_DT_ERFASSUNG_UFO.Form.FilterOn = True
End Sub[/size]


Kann mir hier jemand weiterhelfen, warum es zu diesem Fehler kommt?
Hab den gleichen Code seit 3 Jahren in einer AC2003 Version und nie einen Fehler bekommen.

Danke
Lg Bernie
Titel: Re: Fehler bei Filterung
Beitrag von: DF6GL am April 09, 2014, 17:02:27
Hallo,


warum ist die Auftragsnummer doppelt behandelt?

"And Abfrage_DISPOPLAN_DT_ERFASSUNG_UFO.Status"   warum ist hier der Abfragename mit angegeben. Heißt der wirklich so und gibt es "Status" in mehreren Tabellen?

folgendes sollte so lauten:
    If nz(Me!BT_Alle_ungeplanten,0) Then Krit = Krit & " And DT_Erfassung.TourNr is Null"
    If nz(Me!BT_Alle_geplante,0) Then Krit = Krit & " And Not DT_Erfassung.TourNr is Null"
Titel: Re: Fehler bei Filterung
Beitrag von: Bernie110 am April 10, 2014, 09:11:00
Hallo Franz,

das mit der Auftragsnummer hatte ich übersehen. Ja ist nicht gewollt.

ZitatAbfrage_DISPOPLAN_DT_ERFASSUNG_UFO.Status"
Ja ich filtere 2 Ufos mit leider dem gleichem Namen "Status"

Hab alles so geändert. Trotzdem kommt der gleiche Fehler erneut , aber wie gesagt erst nach so der 20 ten Filterung.

Da es im ACC2003 funktioniert, muss man da vll  igrend etwas  in ACC2007 einstellen ?

Lg Bernie

Titel: Re: Fehler bei Filterung
Beitrag von: DF6GL am April 10, 2014, 11:08:54
Hallo,

das ist was anderes faul...(Vermutlich an den Qualifizierern oder den Abfrage-Verknüpfungen)

Poste mal den (Abfrage-)SQL-String, der für das Formular, das im UFO-Steuerelement "DISPOPLAN_DT_ERFASSUNG_UFO" angezeigt wird, verwendet ist.

Titel: Re: Fehler bei Filterung
Beitrag von: Bernie110 am April 10, 2014, 11:22:33
Hi,

Zitat(Vermutlich an den Qualifizierern oder den Abfrage-Verknüpfungen)

Die Abfrage wurde aus einer einzigen Tabelle "DT_Erfassung" unter Access Abfragen erstellt.
Das einzige was in der Abfrage erfolgt ist:

STATUS = Zahlenfeld  mit Kriterium 1 Oder 2 Oder 3 Oder 4 Oder 5 Oder 8
STATUS_SNDG = Zahlenfeld mit Kirterium >1
ZustellerCode = Textfeld mit Krit : <>"UPS"
und zwei Felder wo eine Zusammenfassung erfolgt :
Abgangsort:: [ABG_Land] & "-" & [ABG_Plz] & " " & [ABG_Ort]
Empfangsort: [EMPF_Land] & "-" & [EMPF_Plz] & " " & [EMPF_Ort]

Sorry ich weiss nicht wie ich an den (Abfrage-)SQL-String
rankomme. Wie gesagt ist eine ACCESS Abfrage.

Lg Bernie
Titel: Re: Fehler bei Filterung
Beitrag von: Bernie110 am April 10, 2014, 11:24:02
ok, gefunden. :-)

Hier bitte ;

SELECT DT_ERFASSUNG.LfdNr, DT_ERFASSUNG.Geändert_am, DT_ERFASSUNG.Geändert_von, DT_ERFASSUNG.Import_Status, DT_ERFASSUNG.Aufklappen, DT_ERFASSUNG.Lieferinfo, DT_ERFASSUNG.Versandanweisung, DT_ERFASSUNG.Auftragsnummer, DT_ERFASSUNG.LieferscheinNr, DT_ERFASSUNG.Buchungsdatum, DT_ERFASSUNG.LS_Anzahl_gedruckt, DT_ERFASSUNG.Verkäufer, DT_ERFASSUNG.Kostenstelle, DT_ERFASSUNG.Belegdatum, DT_ERFASSUNG.Express, DT_ERFASSUNG.STATUS, DT_ERFASSUNG.STATUS_SNDG, DT_ERFASSUNG.Monat, DT_ERFASSUNG.Jahr, DT_ERFASSUNG.Woche, DT_ERFASSUNG.LTW, DT_ERFASSUNG.LTW_Träger, DT_ERFASSUNG.AG_ID, DT_ERFASSUNG.AG_MatchCode, DT_ERFASSUNG.AG_FirmenName1, DT_ERFASSUNG.AG_FirmenName2, DT_ERFASSUNG.AG_Adresse1, DT_ERFASSUNG.AG_Adresse2, DT_ERFASSUNG.AG_Land, DT_ERFASSUNG.AG_Plz, DT_ERFASSUNG.AG_Ort, DT_ERFASSUNG.AG_Kontakt, DT_ERFASSUNG.AG_TelNr, DT_ERFASSUNG.AG_Faxnr, DT_ERFASSUNG.AG_Email, DT_ERFASSUNG.AG_RefNr, DT_ERFASSUNG.AG_Ext_KommNr, DT_ERFASSUNG.ABG_ID, DT_ERFASSUNG.ABG_MatchCode, DT_ERFASSUNG.ABG_FirmenName1, DT_ERFASSUNG.ABG_FirmenName2, DT_ERFASSUNG.ABG_Adresse1, DT_ERFASSUNG.ABG_Adresse2, DT_ERFASSUNG.ABG_Land, DT_ERFASSUNG.ABG_Plz, DT_ERFASSUNG.ABG_Ort, DT_ERFASSUNG.ABG_Kontakt, DT_ERFASSUNG.ABG_TelNr, DT_ERFASSUNG.ABG_Faxnr, DT_ERFASSUNG.ABG_Email, DT_ERFASSUNG.EMPF_ID, DT_ERFASSUNG.EMPF_MatchCode, DT_ERFASSUNG.EMPF_FirmenName1, DT_ERFASSUNG.EMPF_FirmenName2, DT_ERFASSUNG.EMPF_Adresse1, DT_ERFASSUNG.EMPF_Adresse2, DT_ERFASSUNG.EMPF_Land, DT_ERFASSUNG.EMPF_Plz, DT_ERFASSUNG.EMPF_Ort, DT_ERFASSUNG.EMPF_Kontakt, DT_ERFASSUNG.EMPF_TelNr, DT_ERFASSUNG.EMPF_Faxnr, DT_ERFASSUNG.EMPF_Email, DT_ERFASSUNG.EMPF_ObjektCode, DT_ERFASSUNG.PaketverfolgunsNr, DT_ERFASSUNG.LagerCode, DT_ERFASSUNG.Transportzeit, DT_ERFASSUNG.ZustellerCode, DT_ERFASSUNG.Zustellertansportart, DT_ERFASSUNG.Ladedatum, DT_ERFASSUNG.Ladezeit, DT_ERFASSUNG.Lade_von, DT_ERFASSUNG.Lade_bis, DT_ERFASSUNG.Lieferart, DT_ERFASSUNG.Ladetag, DT_ERFASSUNG.EntLadedatum, DT_ERFASSUNG.EntLadezeit, DT_ERFASSUNG.EntLade_von, DT_ERFASSUNG.EntLade_bis, DT_ERFASSUNG.Entladetag, DT_ERFASSUNG.Ankunftszeit, DT_ERFASSUNG.Ankunftszeit_Ist, DT_ERFASSUNG.Fixtermin, DT_ERFASSUNG.Lieferzeitpunkt, DT_ERFASSUNG.Lieferbedingung, DT_ERFASSUNG.Lieferbedingung_beschreibung, DT_ERFASSUNG.Lieferbedingung_Code, DT_ERFASSUNG.Packstücke, DT_ERFASSUNG.Letztes_Druckdatum, DT_ERFASSUNG.[Letzes_Druckdatum-zeit], DT_ERFASSUNG.Verkauf_anDebitorenNr, DT_ERFASSUNG.Colli, DT_ERFASSUNG.Kg, DT_ERFASSUNG.Qbm, DT_ERFASSUNG.LM, DT_ERFASSUNG.EP_Tausch, DT_ERFASSUNG.GB_Tausch, DT_ERFASSUNG.ROHRE, DT_ERFASSUNG.LadePos, DT_ERFASSUNG.EntladePos, DT_ERFASSUNG.TU_ID, DT_ERFASSUNG.TU_MatchCode, DT_ERFASSUNG.TU_FirmenName1, DT_ERFASSUNG.TU_FirmenName2, DT_ERFASSUNG.TU_Adresse1, DT_ERFASSUNG.TU_Adresse2, DT_ERFASSUNG.TU_Land, DT_ERFASSUNG.TU_Plz, DT_ERFASSUNG.TU_Ort, DT_ERFASSUNG.TU_Kontakt, DT_ERFASSUNG.TU_TelNr, DT_ERFASSUNG.TU_Faxnr, DT_ERFASSUNG.TU_Email, DT_ERFASSUNG.TU_Fahrzeug, DT_ERFASSUNG.TU_LKW_Nr_A, DT_ERFASSUNG.TU_LKW_Nr_B, DT_ERFASSUNG.TU_Handy_Fahrer, DT_ERFASSUNG.TOURNR, DT_ERFASSUNG.TU_Ankunftszeit, DT_ERFASSUNG.TU_Fracht, DT_ERFASSUNG.TU_Fracht_TU_RE, DT_ERFASSUNG.TU_Fracht_Diff, DT_ERFASSUNG.Info_Paletten, DT_ERFASSUNG.Info_Notes, DT_ERFASSUNG.Info_Schäden, DT_ERFASSUNG.Inf_Avis, DT_ERFASSUNG.Dispoplan_Markierung, [ABG_Land] & "-" & [ABG_Plz] & " " & [ABG_Ort] AS Ausdr1, [EMPF_Land] & "-" & [EMPF_Plz] & " " & [EMPF_Ort] AS Ausdr2, DT_ERFASSUNG.TU_Manuell, DT_ERFASSUNG.TU_Fahrzeug, DT_ERFASSUNG.Tourenart, DT_ERFASSUNG.Fahrzeugart, DT_ERFASSUNG.TU_Fahrzeug_ID, DT_ERFASSUNG.TU_Fracht, DT_ERFASSUNG.STATUS_Geändert_am, DT_ERFASSUNG.STATUS_Geändert_von, DT_ERFASSUNG.SNDG_ART, DT_ERFASSUNG.SNDG_ART, DT_ERFASSUNG.Fixtermin, DT_ERFASSUNG.TU_Fracht_Kalk, DT_ERFASSUNG.TU_Fracht_Versicherung, DT_ERFASSUNG.TU_Fracht_Zuschlag, DT_ERFASSUNG.Dispoplan_Markierung, DT_ERFASSUNG.TU_OFFERTE, DT_ERFASSUNG.Sperrigkeit_Qbm, DT_ERFASSUNG.Sperrigkeit_LM, DT_ERFASSUNG.Sperrigkeit_EP_bis_140, DT_ERFASSUNG.Sperrigkeit_EP_über_140, DT_ERFASSUNG.Sperrigkeit_GB, DT_ERFASSUNG.Sperrigkeit_EW_bis_60x80, DT_ERFASSUNG.Sperrigkeit_EW_bis_120x80, DT_ERFASSUNG.Sperrigkeit_EW_über_120x80, DT_ERFASSUNG.LM_Ab, DT_ERFASSUNG.Check_Rohre, [EMPF_Adresse2] & "  " & [EMPF_Adresse1] AS EMPF_Strasse, DT_ERFASSUNG.Anzahl_Kanäle
FROM DT_ERFASSUNG
WHERE (((DT_ERFASSUNG.STATUS)=1) AND ((DT_ERFASSUNG.STATUS_SNDG)>1) AND ((DT_ERFASSUNG.ZustellerCode)<>"UPS")) OR (((DT_ERFASSUNG.STATUS)=2)) OR (((DT_ERFASSUNG.STATUS)=3)) OR (((DT_ERFASSUNG.STATUS)=4)) OR (((DT_ERFASSUNG.STATUS)=5)) OR (((DT_ERFASSUNG.STATUS)=8))
ORDER BY DT_ERFASSUNG.TOURNR DESC;
Titel: Re: Fehler bei Filterung
Beitrag von: DF6GL am April 10, 2014, 12:02:32
Hallo,


ohne weiter auf den SQL-String einzugehen...,

was bedeutet dann dieses:  ??

If Not IsNull(Me!STATUS) Then Krit = Krit & " And Abfrage_DISPOPLAN_DT_ERFASSUNG_UFO.Status =" & Me!STATUS



Wirf mal das Rot-Markierte weg.. eine solche Abfrage/Tabelle ist nicht in der Datensatzherkunft (deinem SQL-String) vorhanden.

Titel: Re: Fehler bei Filterung
Beitrag von: Bernie110 am April 10, 2014, 12:52:39
Hi,

ZitatIf Not IsNull(Me!STATUS) Then Krit = Krit & " And Abfrage_DISPOPLAN_DT_ERFASSUNG_UFO.Status =" & Me!STATUS

heisst dann so oder ?

If Not IsNull(Me!STATUS) Then Krit = Krit & " And DT_ERFASSUNG.Status =" & Me!STATUS

DT_Erfassung wäre die Tabelle worauf sich die geamste Abfrage bezieht.

Das war hier so  im Forum vorgeschlagen, da ich im HF ja mehre Filter auf 2 Ufos ausführe und jedes dieser UFOS ein Feld "Status" enthält.
Das hatte nämlich Proble verursacht.

Richtig ?

Lg Bernie

Titel: Re: Fehler bei Filterung
Beitrag von: DF6GL am April 10, 2014, 14:06:24
Hallo,

ja, das heißt so...   wobei sich "Me!Status"   auf das Feld in demjenigen Formulur bezieht, in dem der Code abläuft..

"da ich im HF ja mehre Filter auf 2 Ufos ausführe und jedes dieser UFOS ein Feld "Status" enthält"   ???
Titel: Re: Fehler bei Filterung
Beitrag von: Bernie110 am April 11, 2014, 08:42:57
Guten Morgen,

ok es scheint ersteinmal zu funktionieren.
Vielen Dank für deine Hilfe

lg Bernie