Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Guten Morgen liebe Community,

ich bin soeben dabei, eine Verknüpfung auf Access-Ebene via C#-Code einzubinden. Mein Konstrukt sieht folgendermaßen aus:

ADOX.CatalogClass cat = new ADOX.CatalogClass();

ADOX.TableClass tbl = new ADOX.TableClass();


ADODB.ConnectionClass cn = new ADODB.ConnectionClass();


cn.Open(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=V:\\db1.mdb", "", "", -1);


cat.ActiveConnection = cn;


tbl.Name = "tName";

tbl.ParentCatalog = cat;



tbl.Properties["Jet OLEDB:Link Datasource"].Value = "V:\\db2.mdb";

tbl.Properties["Jet OLEDB:Remote Table Name"].Value = "tName";

tbl.Properties["Jet OLEDB:Create Link"].Value = true;


cat.Tables.Append(tbl);

cn.Close();

Die Verknüpfung legt er mir sauber an, allerdings bekomme ich es nicht hin, dass er den Append-Schritt auslässt, wenn die verknüpfte Tabelle schon existiert. Somit läuft er mir bei erneutem Drüberrattern in einen Fehler (das Objekt "tName" existiert bereits).

Mein zweites Problem ist dann die Pfadangabe via Variablen, die ich habe.

Der zweite Pfad (db2.mdb) scheint zu funktionieren, aber der erste (db1.mdb) will einfach nicht...

Ich bitte um Hilfe!

Vielen Dank im Voraus!

Gruß,

Pr3dat0r :.

Hi,

mach doch einfah eine IF-Anweisung drüber in der er nur reingeht und append ausführt wenn die Tabelle nicht vorhanden ist.

Soviel ich weis kann man die Parameter vom User/Password etc weglassen wenn keine vorhanden/genutzt nicht benötigt werden, dies machst du ja auch beim 2ten da lässt du es auch weg. Versuchs vll gehts ja wenn du die Parameter weglässt weil wenn "" drinsteht sucht er nach "" und findest es ned wär was anderes wenn du null/string.empty übergibst.

Hi und danke erst mal für die Antwort!

An einer If-Anweisung hab ich auch schon etwas rumexperimentiert. Aber wie frage ich denn ab ob die Tabelle schon existiert?

Wenn ich die DataSource auf

cn.Open(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=V:\\db1.mdb", -1);
anpasse, erscheint folgender Fehler:
Fehler 1 Keine Überladung für die Open-Methode nimmt 2 Argumente an.
Auch bei
cn.Open(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=V:\\db1.mdb");

kommt ein ähnlicher Fehler:

Fehler 1 Keine Überladung für die Open-Methode nimmt 1 Argumente an.

Ansonsten hilft auch der (OleDb)ConnectionStringBuilder.


PseudoCode:

ConnectionStringBuilder conBuilder = new ConnectionStringBuilder()

conBuilder.DataSource = "XXXXXX";


string conString = conBuilder.ToString();

Danke für die Antwort!

Das hab ich nach etwas Gebastel hinbekommen:

System.Text.StringBuilder sb = new System.Text.StringBuilder();

sb.Append(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=")

sb.Append(dbsFK);

cn.Open(sb.ToString(), "", "", -1);

Nu fehlt mir noch die Abfrage, ob es die Verknüpfung schon gibt...

Help!

Moin,

es gibt jeweils eine (OleDb)/(Sql)ConnectionStringBuilder-Klasse und eine StringBuilder-Klasse.

Beim ConnectionStringBuilder kommt halt noch der jeweilige Datenprovider davor. Die Klasse baut sich den ConnectionString dann auch korrekt zusammen.

Aber meine Lösung ist doch richtig, oder?

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.