#Fehler bei Abfrage

Moderator: ModerationP

#Fehler bei Abfrage

Beitragvon cardur » 05. Sep 2021, 13:45

Hallo,
in einer Abfrage soll ein Feld als Alias nur den Dateinamen anzeigen. Im Tabellenfeld steht der vollständige Dateipfad.
Wenn im Feld Dateipfad kein Wert steht, kommt richtigerweise "unbekannt"; gibt es einen Wert kommt "#Feh-ler"
Code: Alles auswählen
Ausdr1: Wenn(Nz([Dateipfad];0)<>0;Teil$([Dateipfad];InStrRev([Dateipfad];"\")+1);"unbekannt")

Nimmt man als anderes Alias-Feld nur
Code: Alles auswählen
Teil$([Dateipfad];InStrRev([Dateipfad];"\")+1)

So kommt bei NULL-Werten "#Fehler", ansonsten richtigerweise der Dateiname.
Leider finde ich nicht, was bei Ausdr1 nicht stimmt, um den Dateinamen statt #Fehler zu bekommen.
Gruß
Carlo
cardur
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 18
Registriert: 13. Mai 2021, 10:21

Re: #Fehler bei Abfrage

Beitragvon KlausMz » 05. Sep 2021, 14:14

Hallo,
Dateiname ist je ein Text und Texte kann man nicht mit der Zahl 0 vergleichen auch die Zuweisung der Zahl 0 bei Nz macht keinen Sinn.

Entweder so:
Code: Alles auswählen
Ausdr1: Wenn(Nz([Dateipfad];"0")<>"0";Teil$([Dateipfad];InStrRev([Dateipfad];"\")+1);"unbekannt")

oder so:
Code: Alles auswählen
Ausdr1: Wenn(Nz([Dateipfad];"")<>"";Teil$([Dateipfad];InStrRev([Dateipfad];"\")+1);"unbekannt")

oder so (was ich bevorzugen würde):
Code: Alles auswählen
Ausdr1: Wenn([Dateipfad] Ist Nicht Null;Teil$([Dateipfad];InStrRev([Dateipfad];"\")+1);"unbekannt")
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Benutzeravatar
KlausMz
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 40253
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: #Fehler bei Abfrage

Beitragvon Gast » 05. Sep 2021, 23:32

Hallo,
danke, das funktioniert.
Code: Alles auswählen
Wenn(Nz([Dateipfad];0)<>0
konnte wohl tlw. ausgewertet werden, da der false-Teil ja stimmt.
Logisch wäre, wenn da auch ein "#Fehler" käme. So gesehen vielleicht eine Ungenauigkeit der If-Funktion?
Wie auch immer, ich nehme demnächst not IsNull oder Is Not Null.
Gruß Carlo
Gast
 

Re: #Fehler bei Abfrage

Beitragvon cardur » 06. Sep 2021, 09:49

Hallo,
ich habe jetzt den Ausdruck
Code: Alles auswählen
=Wenn([Dateipfad] Ist Nicht Null;Teil$([Dateipfad];InStrRev([Dateipfad];"\")+1);"unbekannt")

für die Textbox eingebracht und alles wird richtig gezeigt.
Jetzt kann man aber den Pfad nicht ändern, was nur über das Tabellenfeld geht. Also umständlich.
Müsste man nun zwei Tabellenfelder in Folge zwei Textboxen für das Formular haben?
Eins für die Anzeige des Namens und das andere für den Pfad, um die Datei ggf. ändern und öffnen zu können?
Gruß Carlo
cardur
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 18
Registriert: 13. Mai 2021, 10:21

Re: #Fehler bei Abfrage

Beitragvon andyfau » 06. Sep 2021, 13:18

Hallo,

die folgende Funktion habe ich vor langer Zeit mal irgendwo gefunden und sie leistet oft gute Dienste (Danke hier an den unbekannten Kollegen, der sie geschrieben hat.):

Code: Alles auswählen
' Ermittelt den Pfad oder den Dateinamen aus Pfad+Dateiname
Public Function GetPathOrFileName(sFileName As String, _
  IsPath As Boolean) As String
 
  Dim nPos As Long
  Dim sPos As Long
 
  ' nach dem letzten Backslash suchen
  ' ab VB6 kann man anstelle der Do..Loop-Schleife
  ' auch die InStrRev-Funktion nutzen!
  ' (nPos = InStrRev(sFilename, "\")
  sPos = 0
  Do
    sPos = InStr(sPos + 1, sFileName, "\")
    If sPos > 0 Then nPos = sPos
  Loop Until sPos = 0
 
  ' Wenn der Pfad ermittelt werden soll...
  If IsPath Then
    ' Ist im String überhaupt ein Backslash vorhanden?
    If nPos > 0 Then
      GetPathOrFileName = Left$(sFileName, nPos)
    End If
  Else
    ' Wenn die Datei ermittelt werden soll...
    GetPathOrFileName = Mid$(sFileName, nPos + 1)
  End If
End Function
Beste Grüße
Andreas
andyfau
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 41
Registriert: 17. Mär 2021, 21:45

Re: #Fehler bei Abfrage

Beitragvon KlausMz » 06. Sep 2021, 15:11

Hallo,
Müsste man nun zwei Tabellenfelder in Folge zwei Textboxen für das Formular haben?
Wenn der Pfad unabhängig vom Dateinamen ist, so sind 2 Tabellenfelder notwendig.
Ggf. kann es sinnvoll sein, den Pfad in einer eigenen Tabelle zu speichern und hier noch unter Umständen weitere Merkmale zum Pfad, z.B. den User.
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Benutzeravatar
KlausMz
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 40253
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: #Fehler bei Abfrage

Beitragvon cardur » 07. Sep 2021, 08:48

Hallo,
vielen Dank
@Andreas
ich vermute, dass mit der Funktion dasselbe Problem auftritt. Die Anzeige des Dateinamens in der Textbox wird funktionieren, die Änderung des Pfades aber nicht.
@Klaus
Wenn der Pfad unabhängig vom Dateinamen ist, so sind 2 Tabellenfelder notwendig.

Der Name einer Datei X hat einen bestimmten Pfad, Datei Y kann einen anderen Pfad haben.
Letztlich kann Pfad & Name einer Datei m.M.n. in einem Tabellenfeld stehen, aber kann eine Textbox für zwei Aufgaben verwendet werden, Pfad & Name in ein Tabellenfeld schreiben und anschließend nur den Namen zu zeigen? Dass die Textbox auch noch die Änderung ermöglichen soll, ist wahrscheinlich nicht besonderes, da es einer Neueingabe entspricht.
Gruß Carlo
cardur
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 18
Registriert: 13. Mai 2021, 10:21

Re: #Fehler bei Abfrage

Beitragvon Bitsqueezer » 07. Sep 2021, 11:05

Hallo,

verwende die Textbox doch einfach zur reinen Anzeige des Dateinamens ohne Pfad, ohne Editiermöglichkeit.
Daneben stellst Du einen Button, mit dem ein FilePicker-Dialog geöffnet wird. Den kennt der User und kann nach Belieben Pfade und Dateinamen auf die Weise eingeben, wie er will. Speichern kannst Du dann wieder den kompletten Pfad - fertig.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8468
Registriert: 21. Jun 2007, 12:17

Re: #Fehler bei Abfrage

Beitragvon cardur » 07. Sep 2021, 12:49

Hallo,
danke - Gute Idee
Werde ich starten
Gruß Carlo
cardur
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 18
Registriert: 13. Mai 2021, 10:21


Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste