collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 77
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 2
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 14129
  • stats Beiträge insgesamt: 68347
  • stats Themen insgesamt: 9206
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: If Then And mit 2 Recordsets  (Gelesen 126 mal)

Offline jblues

  • Newbie
  • Beiträge: 5
If Then And mit 2 Recordsets
« am: Dezember 05, 2018, 14:00:17 »
Glück Auf!
Ich habe ein Problem .....
Ich will Datensätze aus einer Tabelle in eine andere übernehmen und zusammenfassen. in der ersten Tabelle sind DS, die bei der Ein- oder Auslagerung von Ersatzteilen mit einem Scanner entstehen. Diese können also auch mehrfach vorhanden sein. Bei der Übernahme in die neue Tabelle wird nun unterschieden zwischen vorhanden DS (Teilenummer, Lagerort vorhanden) dann soll nur der Bestand(Menge) geändert werden. Ansonsten wird ein neuer DS erstellt. Der zweite Teil klappt hervorragend. Bei der verschachtelten If/Then Bedingung "biegt mir Access falsch ab!" Obwohl die einzelnen bedingungen erfüllt sind, übergeht Acces die Anweisungen. Wäre schön wenn mir jemand helfen könnte!If RS("ArtNrTS") = rs1("ArtNrTS") And RS("Lagerort") = rs1("Lagerort") And RS("Lagerbox") = rs1("Lagerbox") Then
            RS.Edit
            strBestandLagerAlt = RS("Anzahl")
            strMengeRF = rs1("Menge")
            strBestandLagerNeu = (Int(strBestandLagerAlt) + Int(strMengeRF))
            RS("Anzahl") = strBestandLagerNeu
            RS.Update
            RS.MoveFirst
           
            rs1.Edit
            rs1("bearbeitet") = True
            rs1.Update
            rs1.MoveNext
 

Online markus888

  • Access-Profi
  • **
  • Beiträge: 247
Re: If Then And mit 2 Recordsets
« Antwort #1 am: Dezember 05, 2018, 14:15:56 »
Access arbeitet nach Regeln.
Gib einfach den Inhalt aller Felder mittels Debug.print aus, dann kommst du dem Problem auf die Schliche.
Was viele übersehen ist, dass bei einem Variant zwischen Null, 0 und Leerstring unterschieden wird.

Außerdem gilt für Null Werte:
(Null = Null) = Null statt wie von vielen erwartet (Null = Null) = True.

Edit:
Eine einfache Funktion zur Prüfung:
Function IsEqual(ByVal v1 As Variant, ByVal v2 As Variant) As Boolean
   
    If IsNull(v1) Or IsNull(v2) Then
        IsEqual = (IsNull(v1) = IsNull(v2))
    Else
        IsEqual = (v1 = v2)
    End If
End Function

Die Klammern sind nur für die bessere Lesbarkeit.
« Letzte Änderung: Dezember 05, 2018, 14:23:54 von markus888 »
10 Jahre Access
 

Offline jblues

  • Newbie
  • Beiträge: 5
Re: If Then And mit 2 Recordsets
« Antwort #2 am: Dezember 05, 2018, 14:44:53 »
Hallo Markus888,
Ich habe mir die Inhalte der RS per MsgBox ausgeben lassen. Sie sind definitiv vorhanden und es handelt sich dabei um Duplikate aus der Quelldatei, also die per Schanner eingelesenen Werte. Auch wenn ich im Debugger die einzelnen RS mit der Maus anfahre, sehe ich das die Werte vorhanden und identisch sind.....
 

Online markus888

  • Access-Profi
  • **
  • Beiträge: 247
Re: If Then And mit 2 Recordsets
« Antwort #3 am: Dezember 05, 2018, 14:48:10 »
Wenn du anders nicht drauf kommst dann mache die Ausgabe so:

debug.print: "ArtNrTS: ", RS("ArtNrTS") = rs1("ArtNrTS"), RS("ArtNrTS"), rs1("ArtNrTS")
Natürlich für jedes Feld.
Du musst ja nur genau hinsehen, dann löst sich das Problem auf.
Natürlich gehört das in den else Zweig.
10 Jahre Access
 

Offline jblues

  • Newbie
  • Beiträge: 5
Re: If Then And mit 2 Recordsets
« Antwort #4 am: Dezember 05, 2018, 15:04:43 »
Hallo Markus888,
danke für Deine Hilfe, Ich hatte die Ausgangsfelder in den Tabellen unterschiedlich Formatiert (Zahl/Text), da in einer ersten Version Buchstaben in der Artikelnummer vorkommen sollten!
Manchmal sieht man den Wald vor lauter Bäumen nicht, gerade als Anfänger .....

Gruß und Glückauf!
Peter
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1965
Re: If Then And mit 2 Recordsets
« Antwort #5 am: Dezember 05, 2018, 16:06:20 »
Hallo Peter,
Zitat
Buchstaben in der Artikelnummer vorkommen sollten
Das ist ja auch kein Problem, solange alle Felder mit der Nummer den
gleichen Typ haben, - in dem Fall eben Text.
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline ebs17

  • Access-Meister
  • ***
  • Beiträge: 948
Re: If Then And mit 2 Recordsets
« Antwort #6 am: Dezember 05, 2018, 17:54:13 »
Zitat
Ich will Datensätze aus einer Tabelle in eine andere übernehmen
Statt datensatzweise durch Recordsets zu hoppeln, könnte man auch gleich richtige Abfragen verwenden. Eine Anleihe könntest Du Dir hier nehmen: Grundlagen - SQL ist leicht (4) - Aktualisierung einer Tabelle
Mit freundlichem Glück Auf!

Eberhard
 

Offline jblues

  • Newbie
  • Beiträge: 5
Re: If Then And mit 2 Recordsets
« Antwort #7 am: Dezember 06, 2018, 05:21:45 »
Beaker s.a.
Stimmt und ist mir bekannt, leider hatte ich nur eine Spalte nicht umbenannt, as wir uns dagegen entschieden hatten.

ebs17
Da ich die Eingabe in diese Tabelle mit einem Scanner vornehmen lasse und nicht alle immer alles richtig machen, ist es mir so lieber. die Anzahl der Datensätze wird auch im Normalfall eher gering sein. etwa um 20 Stück. So bleibt mir die Kontrolle und die Möglichkeit der Korrektur bevor ich es übernehme!
 

Online markus888

  • Access-Profi
  • **
  • Beiträge: 247
Re: If Then And mit 2 Recordsets
« Antwort #8 am: Dezember 06, 2018, 08:51:06 »
@jblues,
entscheidend ist bei der Fehlersuche, dass man nicht davon ausgeht, dass Access einen Bug hat (gibts natürlich schon).
Dann sucht man ganz anders und findet in 99% der Fälle auch das Problem.  :)
Andererseits profitieren natürlich auch andere von diesen Diskussionen.
10 Jahre Access
 

Offline jblues

  • Newbie
  • Beiträge: 5
Re: If Then And mit 2 Recordsets
« Antwort #9 am: Dezember 06, 2018, 09:00:09 »
@ Markuss888
Ich bin eher von einer falschen/fehlenden Klammer oder ähnlichem ausgegangen!
 

 

finden und öffnen eines recordsets

Begonnen von tobsn121Board Access Programmierung

Antworten: 6
Aufrufe: 2535
Letzter Beitrag Juni 30, 2015, 17:07:01
von tobsn121