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

Fortgeschrittene Programmierung
Re: Fehler bei Boolschen Operationen? 
Autor: Dirk
Datum: 13.08.07 12:15

Habe noch nie Probleme mit boolschen Operanden gehabt. Geh' mal davon aus, dass das Problem da eher auf deiner Seite liegt.

Füge doch mal eine paar Debug Printings ein. Also z.B.:
Debug.Print ((bIsDetail) And (iDetailSheetVar = 0))
und für die anderen Bedingungen ebenfalls.

Dein if/else Konstrukt sieht überarbeitungswert aus.

Zitat:

If (bIsDetail) And (iDetailSheetVar = 0) Then
                                iDetailSheetVar = 1
                                ReDim Preserve objDetailSheetList(iDetailSheet)
                                Set objDetailSheetList(iDetailSheet) = _
                                  objCurrentSheet
                                iDetailSheet = iDetailSheet + 1
 
                            ElseIf (Not bIsDetail) Then
                                ReDim Preserve objSheetList(iSheet)
                                Set objSheetList(iSheet) = objCurrentSheet
                                iSheet = iSheet + 1
                            ElseIf (bIsDetail) And (iDetailSheetVar = 1) Then
                                ReDim Preserve objDetailSheetList(iDetailSheet)
                                Set objDetailSheetList(iDetailSheet) = _
                                  objCurrentSheet
                                iDetailSheet = iDetailSheet + 1
                            End If


Wenn ich das so sehe, erkenne ich nur 2 Fälle. Und zwar 1. bIsDetail = True und 2. else, denn wenn bIsDetail = False und ((iDetailSheetVar = 1) oder (iDetailSheetVar = 0)) machste das Gleiche, einen else Zweig gibt es nicht (typischer Fehler, übrigens)

If (Not bIsDetail) Then
                                ReDim Preserve objSheetList(iSheet)
                                Set objSheetList(iSheet) = objCurrentSheet
                                iSheet = iSheet + 1
                            Else
                                ReDim Preserve objDetailSheetList(iDetailSheet)
                                 iDetailSheetVar = 1
                                Set objDetailSheetList(iDetailSheet) = _
                                  objCurrentSheet
                                iDetailSheet = iDetailSheet + 1
                            End If
Wenn es noch andere Fälle gibt, als (iDetailSheetVar = 1) oder (iDetailSheetVar = 0), sind die nicht abgehandelt. Weder bei dir, noch bei mir. Siehe nächstes Beispiel.

If (bIsDetail) And ((iDetailSheetVar = 0) Or (iDetailSheetVar = 1)) Then
                                iDetailSheetVar = 1
                                ReDim Preserve objDetailSheetList(iDetailSheet)
                                Set objDetailSheetList(iDetailSheet) = _
                                  objCurrentSheet
                                iDetailSheet = iDetailSheet + 1
 
                            ElseIf (Not bIsDetail) Then
                                ReDim Preserve objSheetList(iSheet)
                                Set objSheetList(iSheet) = objCurrentSheet
                                iSheet = iSheet + 1
                            Else
                                Debug.Assert False 'Diesen Punkt sollte man 
                                ' eigentlich nicht erreichen
                            End If

Gruß
Dirk

--
?Get it right the first time

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Fehler bei Boolschen Operationen?1.151bolero10.08.07 17:16
Re: Fehler bei Boolschen Operationen?819bolero10.08.07 17:23
Re: Fehler bei Boolschen Operationen?806Dirk13.08.07 12:15
Re: Fehler bei Boolschen Operationen?657MarcG14.08.07 16:29

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