Mai 17, 2021, 15:40:09

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Access 2016

Begonnen von wolfgang b, Februar 25, 2021, 18:25:13

⏪ vorheriges - nächstes ⏩

DF6GL

Hallo,


Zitathabe die Raute weggemacht und die Tabelle, die ich nicht habe.

Ist das Dein Ernst??

Du sollst nichts weglassen, sondern den Tabellen-Namen anpassen und den Verzeichnisnamen prüfen..


Was willst Du denn mit einer DB, in der keine Tabelle(n) sind?



Der Code öffnet ein Recordset auf eine Tabelle in einer externen DB, nichts weiter.  Mit den gelieferten Daten kannst Du dann anstellen, was Du willst.


Der Hinweis auf das  "#"-Zeichen ist eher als vorsorgliche Maßnahme zu verstehen.  Nicht alle Funktionen kommen mit solchen Sonderzeichen zurecht, auch wenn Windows daran nicht herummeckert.

Zudem steht immer noch die Frage zum fragwürdigen Tabellenaufbau, bzw. Datenbanken-Aufbau im Raum und die Antwort aus...

wolfgang b

Hallo Franz,
danke das Du Geduld hast !
Habe es so reingesetzt:
Dim rs As Dao.Recordset
Set rs = CurrentDb.OpenRecordset("Select * From tbl_Daten in '' [MS Access;database=C:\1_Verkauf\_Übersicht_Schränke.accdb]", dbOpenSnapshot)

Keine Fehlerhinweise aber die Datenbank: "_Übersicht_Schränke.accdb"   wird auch nicht geöffnet.

Zur offenen Frage:
Ich habe eine "Hauptdatenbank", hier sollen die Tabellen tbl_Daten aus _Übersicht_Schränke.accdb
und _Übersicht_Tische.accdb reinkopiert werden, da 2 Kolleginen an verschiedenen Standorten
Daten einpflegen.

Wenn die Datenbänke dann auf dem Hauptrechner sind soll es einfacher sein, wenn man die beiden
Datenbänke per Button öffnen kann und die Tabellen dann kompl. Kopiert und in der Hauptdatenbank einfügen
kann.

mfg wolfgang b



wolfgang b

Hallo Franz,
bitte schau nochmal #9   dieses VBA Makro läuft eigentlich gut.
Aber warum wird immer nur die Datenbank geöffnet, die vorher
geöffnet war !
Wenn ich also vorher Übersicht_Tische auf hatte, wird nur diese geöffnet, nicht
aber die ich wollte, Übersicht_Schränke !

Warum ?
Mit freundlichen Grüßen
Wolfgang b

DF6GL

Hallo,

na, ich würde sagen, Du bist mit Deiner Methode komplett auf dem Holzweg
...


Mal abgesehen von Datenverlust, bzw. Überschreiben von Daten wäre insgesamt ein gangbarer Weg die TranferDatabase-Methode (oder per VBA "Relink"), mit der die Tabellen aus den beiden (oder mehreren) anderen DBs in der "Hauptdatenbak" verlinkt (nicht importiert) werden könnten.

Anschließend kann in der Haupt-DB entschieden werden, welche Daten wohin (per SQL-Statements)übernommen  werden sollen.




wolfgang b

Hallo Franz,
ok, danke für die Information.

Was ist den noch mit:
Dim rs As Dao.Recordset
Set rs = CurrentDb.OpenRecordset("Select * From tbl_Daten in '' [MS Access;database=C:\1_Verkauf\_Übersicht_Schränke.accdb]", dbOpenSnapshot)

Keine Fehlerhinweise aber die Datenbank: "_Übersicht_Schränke.accdb"   wird auch nicht geöffnet !!!

Mit freundlichen Grüßen
Wolfgang b

DF6GL

Hallo.

habe es geschrieben:

ZitatDer Code öffnet ein Recordset auf eine Tabelle in einer externen DB, nichts weiter.  Mit den gelieferten Daten kannst Du dann anstellen, was Du willst.

Der Code öffnet keine "DB", so wie Du denkst!!!    Damit kann man auf die Tabellendaten in einer anderen DB zugreifen, ohne "Opendatabase" zu benutzen.

Außerdem vergiss, wie gesagt, diese Methodik.

wolfgang b

Guten Morgen Franz,
dann mach ich es so:
Private Sub Test_Schränke_Click()
    Dim Pfad As String
    Pfad = "C:\1_Verkauf"
    Shell "explorer.exe /n, /e, " & Pfad, vbMaximizedFocus
End Sub

Damit wird das Verzeichnis geöffnet und man kann die Datei dann öffnen und
bearbeiten.
Danke.

mfg wolfgang b

wolfgang b

Hallo Franz,

Ich habe eine Lösung:
Private Sub Test_Schränke_Click()
    Static bOpened As Boolean
    Dim strFullPath As String
   
strFullPath = "C:\1_Verkauf\_Übersicht_Schränke.accdb"
If Dir(strFullPath, vbDirectory) <> "" Then
Shell Environ("WinDir") & "\explorer.exe /n,/e," & strFullPath, vbNormalFocus
Else
    MsgBox "Verzeichnis oder Datei " & IIf(bOpened, " ", "") & " nicht vorhanden!", vbCritical
End If
    bOpened = True
End Sub


KLAPPT einwandfrei, es wird die Datenbank gestartet, es wird auch die gestartet die
ich hinterlegt habe und nicht die ich vorher geöffnet hatte.


mfg wolfgang b