vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

Allgemeine Diskussionen
INNER JOIN 
Autor: Ralf
Datum: 13.11.01 15:07

Hallo,

ein paar kennen mein Problem vielleicht schon, aber hier nochmal die erläuterung:

Eine DBF-Datei (Vorgang) wird 1zu1 in eine Access-Datenbank kopiert. Dann soll aus einer anderen DBF-Datei (VMateria) entsprechende Datensätze geholt werden. Und zwar ist der Primärschlüssel der Vorgang das Feld V_Nummer. Ein zweites wichtiges Feld ist die Ref_Nr in der Vorgang. Nun sollen nur die Datensätze der Vmateria importiert werden, in denen die V_Nummer übereinstimmt, zusätzlich soll die Ref_Nr ans Ende der Tabelle geschrieben werden. Ich habe nun folgenden Code:


Set TabAccess = dbAccess.OpenRecordset(NameDBase)
Set rs2 = dbAccess.OpenRecordset("Vorgang")

While Not TabDBase.EOF

' Protokollnr. aus Tabelle Vorgang hohlen
strProtNr = FeldInhalt(rs2("V_nummer"))
VorgNr = FeldInhalt(rs2("Ref_Nr"))
LiefArt = FeldInhalt(rs2("Liefer_Art"))
BelArt = FeldInhalt(rs2("EIN_AUS"))
VorgDat = FeldInhalt(rs2("E_Datum"))

' zunächst Selektieren
strVorgNr = Left$(FeldInhalt(TabDBase("Va_Artnr")), InStrRev(FeldInhalt(TabDBase("Va_Artnr")), "-") - 1)

If Len(strVorgNr) = 4 Then
strVorgNr = " " & strVorgNr
ElseIf Len(strVorgNr) = 5 Then
strVorgNr = " " & strVorgNr
ElseIf Len(strVorgNr) = 6 Then
strVorgNr = strVorgNr
End If

PosNr = Right$(FeldInhalt(TabDBase("Va_Artnr")), 1)
SQL = "SELECT DISTRICT * INTO Vmateria FROM TabDBase INNER JOIN ON '" & strVorgNr & "' = '" & strProtNr & "' AND NOT '" & strVorgNr & "' = ''"

If strVorgNr <> "" Then

Set rs4 = dbAccess.OpenRecordset(SQL, dbOpenSnapshot, dbOpenForwardOnly)

If rs4.RecordCount <> 0 Then
TabAccess.AddNew
For i = 0 To TabDBase.Fields.Count - 1
TabAccess(i) = TabDBase(i)
Next i
TabAccess("ProtNr") = strProtNr
TabAccess("VorgNr") = VorgNr
TabAccess("Lieferart") = LiefArt
TabAccess("BelegArt") = BelArt
TabAccess("PosNr") = PosNr
TabAccess("VorgDat") = VorgDat
TabAccess.Update
End If
rs2.MoveNext
End If

rs4.Close
Set rs4 = Nothing

strProtNr = ""
strVorgNr = ""
strPosNr = ""

TabDBase.MoveNext

Wend


Das funktioniert soweit ganz gut, bis auf die Sache das die RefNr, nich korrekt zu den Positionsdaten geschrieben wird. Wo liegt der Fehler?

Danke und Gruss

Ralf
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
INNER JOIN54Ralf13.11.01 15:07
Re: INNER JOIN396unbekannt14.11.01 21:19
Re: INNER JOIN84Ralf15.11.01 08:51

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-2025 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