VBA-Fragen zu Datenbank und Excel (akti

Liebe Leute,

ich habe zwei Problem bei einer VBA-Anwendung:

  1. Ich will einen Datensatz in eine Access DB einfuegen. Eigentlich recht einfach mit dem folgenden:

Dim sql As String
Dim Conn As ADODB.Connection
Dim PO_DB_Location As String

PO_DB_Location = „c:\Documents and Settings\mwunderlich\My Documents\MyDB.mdb“

sql = „INSERT INTO MyTable(MyColumn) VALUES (‚SomeData‘)“

Set Conn = New ADODB.Connection

With Conn
.Provider = „Microsoft.Jet.OLEDB.4.0“
.ConnectionString = PO_DB_Location
.Open
End With

Conn.Execute CommandText:=sql

Conn.Close
Set Conn = Nothing

Nun will ich allerdings wissen, welche Auto-ID dem neuen Datensatz zugewiesen wurde. Gibt es eine Moeglichkeit, sich die ID automasch zurueckgebenzulassen, aehnlich der Anzahl der geaenderten Datensaetze bei UPDATE?

  1. Mit Excel hab ich folgendes Problem:

Ich erstelle eine neue Arbeitsmappe, deren Name sich erst nach einer Reihe von Befehlen ergibt. Eine Nebenwirkung dieser Befehle besteht darin, dass sich die aktive Arbeitsmappe aendert. Wie kann ich dann zu der neu erstellten Arbeitsmappe zurueckkehren, wenn ich doch deren Namen nicht kenne?

Ich hoffe, das hier solch detaillierte technische Frage ok sind.

Bis denne,

Martin

zu 2, Rückkehr zur Arbeitsmappe

Ich erstelle eine neue Arbeitsmappe, deren Name sich erst nach
einer Reihe von Befehlen ergibt. Eine Nebenwirkung dieser
Befehle besteht darin, dass sich die aktive Arbeitsmappe
aendert. Wie kann ich dann zu der neu erstellten Arbeitsmappe
zurueckkehren, wenn ich doch deren Namen nicht kenne?

Hi Martin,
ins Blaue hinaus, da wenig Info.
Als Ansatz, evtl muss noch der Dateiname aus dem Komplettpfad extrahiert werden o.ä.

' hier ist der neue Name bekannt

frei = FreeFile
Open "c:\test\Dateiname.txt" For Output As #frei
Print #frei, ThisWorkbook.Name
Close


'.... weiterer Code


frei = FreeFile
Open "c:\test\Dateiname.txt" For Input As #frei
Input #frei, Satz
Close
Workbooks(Satz).Activate

'...

Gruß
Reinhard

Hallo Reinhard,

danke fuer die Antwort. Ich glaube, ich haette doch ein bisserl Code mitschicken sollen. Also, folgende Situation:

’ Neue Excel-Datei erstellen, noch ohne Dateiname
Workbooks.Add
Application.SheetsInNewWorkbook = 1

’ Weitere Befehle, unter anderem der Wechsel zu einer anderen
’ geoeffneten Mappe

Application.Workbooks(„SomeFile.xls“).Activate

’ Und hier will ich jetzt wieder das zuvor im ersten Schritt neu
’ erstellte Workbook wechseln.
???

Ich hoffe, das Problem wird dadurch etwas klarer.

Gruss,

Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

danke fuer die Antwort. Ich glaube, ich haette doch ein
bisserl Code mitschicken sollen. Also, folgende Situation:

Hi Martin,
so:?

Option Explicit

Sub tt()
Dim StartDatei, NeueDatei
StartDatei = ThisWorkbook.Name
MsgBox ActiveWorkbook.Name
Application.SheetsInNewWorkbook = 1
Workbooks.Add
Application.SheetsInNewWorkbook = 3
NeueDatei = ActiveWorkbook.Name
MsgBox ActiveWorkbook.Name

'...
' Weitere Befehle, unter anderem der Wechsel zu einer anderen
' geoeffneten Mappe

Application.Workbooks("SomeFile.xls").Activate
MsgBox ActiveWorkbook.Name
'...

Workbooks(NeueDatei).Activate
MsgBox ActiveWorkbook.Name

End Sub

Gruß
Reinhard