Kleine Sektflaschen Hochzeit
Hallo THK, zugegeben ist dein Unterfangen etwas ungewöhnlich. Ich hatte vor Jahren ein ähnliches Problem (Hin- und Herschalten zwischen Test- und Produktions-DB) und mein Ansatz war, alle SQL-Statements (Abfragen) zur Laufzeit von einem Modul übersetzen zu lassen. Dazu muss man natürlich eiges tun, z. B. im Load-Event eines Formulars alle SQL-Quellen (Form selbst, Subforms, Komboboxen usw. ) übersetzen. Inzwischen kenne ich die Tempvars. Vielleicht wäre es möglich, mit ihnen beim Start der Anwendung und Prüfung online/offline zu arbeiten. Nach dem Schema: Beim Start der Anwendung für jede Tabelle genau eine Tempvar anlegen und in Abhängigkeit von Online/Offline den passenden Tabellen-Namen zuweisen, z. ' Tempvar-Name ist "TV_TabSample" if online then "TV_TabSample", "Tab_Sample1" else "TV_TabSample", "Tab_Sample2" endif Somit hättest du EINEN neuen Namen, den du in Selects benutzen könntest, z. select
from TV_TabSample... Tabellen umbenennen. statt select from Tab_Sample1... Du müsstest nur sicherstellen, dass dein Definitions-Modul aufgerufen wird.
Im nächsten Beispiel bist du klüger und verwendest eine For-Next-Schleife. Sub NameNeu2() Dim i As Integer For i=1 To Worksheets(i)("B"&i+4) Next i Die Variable i ist eine Zählvariabel. Die Anweisung "" zählt die vorhandenen Arbeitsblätter. Die Schleife durchläuft alle vorhandenen 12 Arbeitsblätter und nimmt nacheinander die Umbenennung in die Monatsnamen aus dem Bereich B5:B16 vor. Range("B"&i+4) wählt im ersten Schritt die Zelle in Spalte B, auf die i+4 (1+4=5) zutrifft, also B5. Das erste Arbeitsblatt, Worksheets(1), erhält dadurch den Namen "Jan", das zweite "Feb" usw. Entscheidest du dich, die Umbenennung rückgängig zu machen, brauchst du einen zweiten Hilfsbereich, der "Tabelle1", "Tabelle2" usw. auflistet. Lege ihn z. VBA-Forum - Das Forum zu Microsoft VBA. in Spalte C an. Dieses Makro kannst du verwenden. Sub NameNeu3() Worksheets(i)("C"&i+4) Dann haben die Blätter wieder die ursprünglichen Namen. Beispiel 3 Die Umbenennung kannst du ebenso mit einem Makro vornehmen, in dem du den Bereich B5:B16 als Variable deklarierst und mit der Anweisung "Set" referenzierst.
Die Tempvars bleiben dann solange erhalten, bis Access beendet oder ein neuer Wert zugewiesen wird. Access vba datei umbenennen 2016. Ich habe das hier jetzt nicht getestet, aber vielleicht wäre es ein Ansatz. Bitte suche selbst einmal nach Tempvars in Access. Übrigens könnten die Umbenennungs-Fehler auch darauf zurückzuführen sein, dass du Verknüpfungen zwischen Tabellen hast. Dann müsste man zuerst die Verknüpfung löschen, dann die Tabellen umbenennen und die Verküpung neu erstellen.