Neuigkeiten:

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

Mobiles Hauptmenü

Filedialog in Tabelle/Formular einbauen

Begonnen von fantacola, Dezember 14, 2011, 09:28:08

⏪ vorheriges - nächstes ⏩

fantacola

Hallo zusammen
Gleich vorweg, ich bin absoluter Newbie in Sachen VBA...
Folgendes möchte ich machen: Habe die Tabelle Q-Infosatz und da die Spalte Dateien. Aus einem Verzeichnis möchte ich die Datei/-en auswählen und deren Pfad in die Spalte Dateien speichern.
Mit Help und Google bin ich auf den Filedialog gestossen (siehe nach meinem Text). Man sieht ich hab den sogar einem
Button zuordnen können. Nun folgende Probleme:

1. Nach Knopfdruck kommt Kompilierfehler Objekt unbekannt Me.FileList.RowSource = ""
   Meine Vermutung: Access hat keine Ahnung was diese Filelist ist...ich auch nicht
2. Irgendwie muss das Ergebnis dieses Filedialogs in meine Spalte Dateien....
   Keine Ahnung wo das in den Code rein muss.

Herzlichen Dank
Daniel

Die Sub aus der

Private Sub Befehl25_Click()


  ' Requires reference to Microsoft Office 11.0 Object Library.

  Dim fDialog As Office.FileDialog
  Dim varFile As Variant

  ' Clear listbox contents.
  Me.FileList.RowSource = ""

  ' Set up the File Dialog.
  Set fDialog = Application.FileDialog(msoFileDialogFilePicker)

  With fDialog

     ' Allow user to make multiple selections in dialog box
     .AllowMultiSelect = True
           
     ' Set the title of the dialog box.
     .Title = "Please select one or more files"

     ' Clear out the current filters, and add our own.
     .Filters.Clear
     .Filters.Add "Access Databases", "*.ACCDB"
     .Filters.Add "Access Projects", "*.ADP"
     .Filters.Add "All Files", "*.*"

     ' Show the dialog box. If the .Show method returns True, the
     ' user picked at least one file. If the .Show method returns
     ' False, the user clicked Cancel.
     If .Show = True Then

        'Loop through each file selected and add it to our list box.
        For Each varFile In .SelectedItems
           Me.FileList.AddItem varFile
        Next

     Else
        MsgBox "You clicked Cancel in the file dialog box."
     End If
  End With
End Sub



DF6GL

Hallo,

Du mußt nur lesen   ;)


and add it to our list box.


Soll heißen, "Filelist" ist der Name des Listenfeldes oder Kombifeldes in Deinem Formular , das die Datei-Pfade anzeigen soll.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

fantacola

Hi,
mhh habe ich wohl gelesen, aber nicht verstanden.
Also habe im Formular eine ungebunden Listbox eingefügt mit Namen Filelist.
Wenn ich den Button drücke kommt folgende Kompilierfehlermeldung (siehe Bild), dass das Methode oder Datenobjekt me.Filelist.rowsource = "" nicht gefunden wurde...

Ziel, wenn dieses Problem gelöst ist:

Den Wert dieses Listenfelds in die entsprechende Spalte in der Tabelle QInfo schreiben

Wie löst sich denn das Kompilierproblem und wie erreiche ich mein Ziel?

Gruss





[Anhang gelöscht durch Administrator]

DF6GL

Hallo,
mhmm,  der Fehler sagt aus , dass es kein Listenfeld mit Namen "Filelist" gibt. (Eigentlich , dass es keine Rowsource-Eigenschaft für das Steuerelement "FileList" gibt, die ein Listenfeld aber hat.)


Prüf das noch mal nach.


"Den Wert dieses Listenfelds in die entsprechende Spalte in der Tabelle QInfo schreiben"

wird erreicht, wenn das Listenfeld an das Tabellenfeld "Dateien" gebunden ist/wird (Im Steuerelementinhalt des Listenfeldes diesen Spaltennamen hinein schreiben)..

Die Eigenschaft "Mehrfachauswahl" des Listenfeldes  sollte dabei auf "keine" stehen .

 
Um welche Access-Version handelt es sich?
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

fantacola

Hi
Wir kommen der Sache näher..habe tatsächlich das Listenfeld nicht richtig benannt. Der Dialog startet jetzt und ich kann echt Dateien einfügen...
Hmm die spalte "Datei" habe zum Steuerelement eingetragen, aber gespeichert wird sie nicht. Im Gegenteil, wenn ich zum nächsten Datensatz springe bleibt der Link im Feld. Wenn ich dann das formular schliesse und wieder öffne ist gar nix mehr da und in der Tabelle ist auch nichts gespeichert unter Datei...

Gruss

[Anhang gelöscht durch Administrator]

DF6GL

#5
Hallo,

--benenne das Feld nicht "Datei", eher "PfadDateiName" oder ähnlich.

--von Hyperlinkfeld war nicht die Rede. Ändere das in ein normales Feld mit Datentyp "TEXT" (in der Tabelle) und entferne auch die Hyperlink-Definition im Formular , falls vorhanden/möglich.

-- Das Formular selber muss an die TAbelle gebunden sein (Tabellenname in der Eigenschaft "Datenherkunft")
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

fantacola

#6
Hallo
Danke für die Ratschläge. Habe sie versucht umzusetzen, dabei kam folgende Fehlermelung (siehe Bild1, die Eigenschaften der Feldlist im bild2)

Gruss

PS Ich arbeite mit Access 2007



[Anhang gelöscht durch Administrator]

DF6GL

Hallo,

naja, genau das Problem, das die Fehlermeldung aussagt, besteht wahrscheinlich auch...



Stell im Tabellenentwurf die Feldgröße des Textfeldes auf 255 ein.

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

fantacola

#8
hi,
ha so cool...es geht. die pfade sind auch riesig, das ist etwas kacke. kein wunder passten die nicht ins feld...ein link geht jetzt.

wie stell ich es denn an, dass ich mehrere links einfüge. habe eine tabelle tblDateienQInfo erzeugt, die n:1 mir der tblQinfo verknüpft ist.
Dann ein Unterformular, endlos und jede Zeile mit Button ausgestattet...es funktioniert nicht .-(

DF6GL

Hallo,

naja,  "funktioniert  nicht" sagt mir nichts....


Was steht denn "hinter" dem Button   (in dessen Klick-Ereignisprozedur)?

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

fantacola

#10
hallo
ja meine erklärung war etwas dürftig..
habe ein unterformular erstellt (endlosformular) mit diesem listenfeld und dem button für den filedialog. leider kann ich nur genau einen datensatz im ufrm anlegen, es kommt dann keine neue zeile für einen weiteren. komischerweise bleibt der inhalt des datensatzes auch drin, sprich, wenn ich im hauptformular eins weiterspringe, steht im unterformular immer noch dieser datensatz mit dem link.
ob da eine einstellung nicht passt...

habe mal bilder angehängt, hoffe die helfen...

guten start in die woche
gruss

[Anhang gelöscht durch Administrator]

DF6GL

Hallo,

mhmm, blicke nicht durch...  Soll das Feld neben dem Button im Detailbereich das Listenfeld ("FileList") sein?

Das würde aber lediglich nur einen (den ersten) Eintrag anzeigen können...


Gibst Du direkt in das normal geöffnete Formular die Daten ein?

Das wird dann vermutlich am nicht existierenden (bekannten) PK-Wert aus der zugehörenden 1-Tabelle scheitern.




Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

fantacola

hallo
ja genau, das war meine absicht. im uf als endlosformular wird immer ein neues filelist-feld mit button erzeugt und in einen neuen datensatz geschrieben. bei anderen endlosformularen geht das ja ganz gut. in kombifeld zb etwas eingeben und schwupps erscheint eine neue zeile mit einem leeren datensatz usw. mit dem filedialog irgendwie nicht...

der ansatz ist wahrscheinlich falsch. ein zweiter wäre von hand einfach z.b. filelists1 - filelist10 mit jeweils einem button zu erstellen. dann kann ich einfach 10 datein so ablegen. lieber wäre mir das halt variabel, weil zum Teil habe ich 20 Dateien, manchmal aber auch nur eine...

gruss

DF6GL

Hallo,

irgendwie hab ich den Faden verloren, den Du ausgerollt hast..


Wenn Du in ein TEXTfeld (nicht Listenfeld) einen Pfaddateinamen (kompletter Dateiname) eingeben, bzw. aussuchen willst. bietet sich ein API-Filedialog oder der Application.Filedialog (sofern die passende A-Version benutzt wird) zur Auswahl an. Das hat mit einem Kombifeld (und dem Füllen des Listenteils des Kombifeldes) nichts zu tun.

Natürlich kannst Du auch per Code ein Kombifeld mit DAteinamen füllen. Dann musst Du halt die Dateinamen z. B: mittels DIR()-Funktion in einer Schleife suchen und dabei z. B. mittels AddItem-Methode die Wertliste des Kombi(listen)feldes zusammenbauen.

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

fantacola

Hi du
Hehe ja den faden muss ich auch wieder finden....
Folgendes ist zu bewerkstelligen: mehrere dateien aus einem verzeichnis einem datensatz beilegen.
Folgendes habe ich mir überlegt: haupttabelle + untertabelle für diese dateinamen mit 1:n beziehung.
Füllen mit formular und ufrm.

Benutzen tu ich access 2007 und kann bisher nicht mehr als code kopieren :-) muss mir mal passende codeschnippsel für deine vorschläge googeln....