DetailPage-MSS-KB

Knowledge Base

Artikel-ID: 108147 - Geändert am: Mittwoch, 8. Januar 2003 - Version: 1.1

 

Auf dieser Seite

Zusammenfassung

Unten ist ein Beispiel beschrieben, wie eine Tabelle aus einer Datenbank zu kopieren, mit einem anderen die Professional Edition von Visual Basic Version 3.0.

Weitere Informationen

Beispiel-Programm

Der folgende Beispielcode enthält zwei Funktionen, die vom Projekt Beispiel VISDATA aus dem Codemodul VISDATA.BAS nahezu unverändert übernommen. Die unten aufgeführten Command1_Click Prozedur ruft diese zwei Funktionen, CopyStruct und CopyData. Hinweis: Die Projektdatei VISDATA.MAK wird in das Verzeichnis VB SAMPLES\VISDATA installiert.

In diesem Beispiel werden die Datenbanken Microsoft Access-Format vorausgesetzt. Dieselben Verfahren gelten für die anderen unterstützten Datenbanktypen.

  1. Starten Sie ein neues Projekt in Visual Basic. Form1 wird standardmäßig erstellt.
  2. Fügen Sie eine Befehlsschaltfläche zu Form1 hinzu. Fügen Sie dem Command1 Click-Ereignis folgenden Code:
       Sub Command1_Click ()
          Dim dbsource As database
          Dim dbdest As database
          ' The following hard-coded database names could be changed to
          ' selections from a text box, list box, or combo box to make the
          ' program more generic:
          Set dbsource = OpenDatabase("c:\vb3\biblio.mdb", True, True)
          Set dbdest = OpenDatabase("c:\vb3\test1.mdb", True, False)
          Print CopyStruct(dbsource, dbdest, "titles", "ctitles", True)
          Print CopyData(dbsource, dbdest, "titles", "ctitles")
          dbsource.Close
          dbdest.Close
       End Sub
    						
  3. Fügen Sie den folgenden Code hinzu Abschnitt Allgemeine Deklarationen von Form1:
       'Place the following Function statement on one, single line:
       Function CopyStruct (from_db As Database, to_db As Database,
          from_nm As String, to_nm As String, create_ind As Integer) As Integer
    
          On Error GoTo CSErr
    
          Dim i As Integer
          Dim tbl As New Tabledef    'table object
          Dim fld As Field           'field object
          Dim ind As Index           'index object
    
          'Search to see if the table exists:
          namesearch:
          For i = 0 To to_db.TableDefs.Count - 1
             If UCase(to_db.TableDefs(i).Name) = UCase(to_nm) Then
                If MsgBox(to_nm + " already exists, delete it?", 4) = YES
                Then
                   to_db.TableDefs.Delete to_db.TableDefs(to_nm)
                Else
                   to_nm = InputBox("Enter New Table Name:")
                   If to_nm = "" Then
                      Exit Function
                   Else
                      GoTo namesearch
                   End If
                End If
                Exit For
             End If
          Next
    
          'Strip off owner if necessary:
          If InStr(to_nm, ".") <> 0 Then
             to_nm = Mid(to_nm, InStr(to_nm, ".") + 1, Len(to_nm))
          End If
          tbl.Name = to_nm
    
          'Create the fields:
          For i = 0 To from_db.TableDefs(from_nm).Fields.Count - 1
             Set fld = New Field
             fld.Name = from_db.TableDefs(from_nm).Fields(i).Name
             fld.Type = from_db.TableDefs(from_nm).Fields(i).Type
             fld.Size = from_db.TableDefs(from_nm).Fields(i).Size
             fld.Attributes = from_db.TableDefs(from_nm).Fields(i).Attributes
             tbl.Fields.Append fld
          Next
    
          'Create the indexes:
          If create_ind <> False Then
             For i = 0 To from_db.TableDefs(from_nm).Indexes.Count - 1
             Set ind = New Index
             ind.Name = from_db.TableDefs(from_nm).Indexes(i).Name
             ind.Fields = from_db.TableDefs(from_nm).Indexes(i).Fields
             ind.Unique = from_db.TableDefs(from_nm).Indexes(i).Unique
             If gstDataType <> "ODBC" Then
                ind.Primary = from_db.TableDefs(from_nm).Indexes(i).Primary
             End If
             tbl.Indexes.Append ind
             Next
          End If
    
          'Append the new table:
          to_db.TableDefs.Append tbl
    
          CopyStruct = True
          GoTo CSEnd
    
          CSErr:
          CopyStruct = False
          Resume CSEnd
    
          CSEnd:
       End Function
    
       'Place the following Function statement on one, single line:
       Function CopyData (from_db As Database, to_db As Database,
          from_nm As String, to_nm As String) As Integer
    
          On Error GoTo CopyErr
          Dim ds1 As Dynaset, ds2 As Dynaset
          Dim i As Integer
          Set ds1 = from_db.CreateDynaset(from_nm)
          Set ds2 = to_db.CreateDynaset(to_nm)
          While ds1.EOF = False
             ds2.AddNew
             For i = 0 To ds1.Fields.Count - 1
                ds2(i) = ds1(i)
             Next
             ds2.Update
             ds1.MoveNext
          Wend
          CopyData = True
          GoTo CopyEnd
          CopyErr:
          CopyData = False
          Resume CopyEnd
          CopyEnd:
       End Function
    						
  4. Starten Sie das Programm oder drücken Sie die Taste [F5].
  5. Sie können überprüfen, wenn die Tabelle ordnungsgemäß in die TEST1.MDB kopiert wurde Datenbank TEST1.MDB mit Microsoft Access oder mit dem Daten-Manager mit Visual Basic bereitgestellten öffnen. Führen Sie das Data Manager-Programm aus im Menü Fenster in Visual Basic oder den Windows Datei-Manager DATAMGR.EXE in Visual Basic-Verzeichnis ausführen lassen können.

REFERENZ

Die VISDATA.MAK-Datei im Verzeichnis VB3\SAMPLES\VISDATA installiert lädt ausführliche Beispielen für den Zugriff auf Daten. Das VISDATA-Beispielprogramm verwendet jede Daten Zugriff-Funktion in Visual Basic. Finden Sie in der VISDATA-Quellcode für Beispiele, die zeigen, wie jedes Data Access-Funktion verwenden.

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual Basic 3.0 Professional Edition
Keywords: 
kbmt KB108147 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 108147  (http://support.microsoft.com/kb/108147/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Zurückgezogener KB-ArtikelDisclaimer zu nicht mehr gepflegten KB-Inhalten
Dieser Artikel wurde für Produkte verfasst, für die Microsoft keinen Support mehr anbietet. Der Artikel wird deshalb in der vorliegenden Form bereitgestellt und nicht mehr weiter aktualisiert.
Freigeben
Weitere Supportoptionen
Microsoft Community-Supportforen
Kontaktieren Sie uns direkt
Zertifizierten Partner finden
Microsoft Store