vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Datenbanken
Beziehung (ADO) erstellen 
Autor: NoProfi
Datum: 01.10.06 14:30

Hallo Experten für Datenbanken...
Ich habe folgendes Problem.
Ich habe ein kleines Verwaltungsprogramm geschrieben mit einer Anbindung an eine Access-Datenbank das bisher super funzt.
Um die Daten zu verwalten nutze ich ADO 2.8, DAO 3.6 und ADOX 2.8, die Datenbank ist Access 2000.
Nun zu meinen Problem:
Ich möchte, da dieses Programm auch in Australien mehreremal eingesetzt wird, die Datenbank um mehrere Tabellen erweitern
und eine Beziehung zur Haupttabelle per VB6 erstellen. Das mit den Fields einfügen in der Haupttabelle und das erstellen
der neuen Tabelle klappt vorzüglich NUR die Beziehung 1:N von der neuen Tabelle zur Haupttabelle erstellen will einfach
nicht klappen.
Wie kann ich ich denn in der Haupttabelle ein Indiez (Duplikate möglich) und in den neuen Tabellen ein Indiez (Ohne Duplikate)
unter VB6 anlegen ??? In Access ist mir das klar, nur ich möchte nicht deswegen nach Australien fliegen um dort die
Datenbanken zu erweitern. Auch kann ich nicht die Anwender dazu beauftragen die Datenbank persöhnlich zu erweitern
da viele Newbies darunter sind und die Datenbanken schon eine beachtliche Anzahl an Einträgen haben wodurch eine
neue Datenbank mit den neuen Tabellen auch nicht in Frage kommt.

So sollte die Beziehung aussehen:



Hier einige Auszüge aus dem Code:
Hinweis: Das "Jet OLEDB: Database" im Code ist natürlich OHNE Space !! sonst bekomme ich

Option Explicit
 
' Alle öffentlichen Variablen
Public oConn As ADODB.Connection
Public DB_Path As String
Public DB_Name As String
Public DB_PW As String
Public RetVal As String
Public DB_Open As Boolean
 
' Bestehende Datenbank öffnen
Public Sub DB_Oeffnen()
  Dim sConn As String
 
  Set oConn = New ADODB.Connection
  With oConn
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .Properties("Data Source") = DB_Name
    .Properties("Persist Security Info") = False
    ' Falls die Datenbank durch ein Passwort geschützt ist...
    .Properties("Jet OLEDB: Database Password") = DB_PW
  End With
  ' Falls die Datenbank durch ein Passwort geschützt ist...
  sConn = sConn & "Jet OLEDB: Database Password=" & DB_PW & ";"
 
  oConn.Open sConn
  DB_Open = True
End Sub
 
' Neues Field in Haupttabelle einfügen
Public Sub TabellenField_zufügen(sTable As String, _
    sFieldName As String, sSize As Integer)
 
  If DB_Open Then
    If Not dbFieldExists(sTable, sFieldName, oConn) Then
      oConn.Close
      FieldErzeugen sTable, sFieldName, sSize
    Else
      Exit Sub
    End If
  Else
    DB_Oeffnen
    If Not dbFieldExists(sTable, sFieldName, oConn) Then
      oConn.Close
      FieldErzeugen sTable, sFieldName, sSize
    End If
  End If
End Sub
 
' Tabellenfeld nachträglich hinzufügen
Private Sub FieldErzeugen(sTable As String, sField As String, _
    sSize As Integer)
  Dim Db As Database
  Dim Feld As New DAO.Field
 
  ' Datenbank exklusiv öffnen
  Set Db = DBEngine.OpenDatabase(DB_Name, True, False, _
     ";pwd=" & DB_PW)
 
   ' DatenField in Haupttabelle einfügen  
With Db.TableDefs(sTable).Fields
    ' Feld "Ausgeliehen und Bestellt" definieren
    Feld.Name = sField
    Feld.Type = dbText
    Feld.Size = sSize
    Feld.AllowZeroLength = True
 
   '  Jetzt sollte der Indiez (Mit Duplicate) gesetzt werden
   ' und dafür habe ich keine Vorstellung wie das geht !!!!!!
 
   ' Feld hinzufügen
    .Append Feld
    Set Feld = Nothing
  End With
 
  ' Datenbank schliessen und zerstören
  Db.Close
  Set Db = Nothing
 
  ' Datenbank zur Bearbeitung wieder öffnen
  DB_Oeffnen
End Sub
Bis hierher klappt alles vom feinsten, nur mit der Erstellung einer Beziehung will es einfach nicht klappen.

Ich hoffe das ich mich so ausgedrückt habe das Ihr es versteht was mein Belangen ist und einer von Euch mir einen
Hinweis, oder vieleicht ein kleines Beispiel geben kann.

Mit den allesbesten Grüßen
Jürgen
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Beziehung (ADO) erstellen1.825NoProfi01.10.06 14:30
Re: Beziehung (ADO) erstellen1.122wincnc01.10.06 15:23
Re: Beziehung (ADO) erstellen1.076NoProfi01.10.06 16:11
Re: Beziehung (ADO) erstellen1.155wincnc01.10.06 16:59
Re: Beziehung (ADO) erstellen1.068NoProfi01.10.06 20:19

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel