Är det inte så att du vill ha en ny kund om tmpKund != tmpRad(2) != tmpRad(3), dvs att inget av värdena är likadana? If (tmpKund <> tmpRad(2)) And (tmpKund <> tmpRad(3)) Then Debug.Print "Ny Kund" Hej Vill du bara ha en ny kund om tmpRad(3) är tom ("")? Jag läser en kommaseparerad textfil rad för rad Hej Exempel på fil Hej AZ Enkelt beskrivet vill jag bara kolla om tmpKund är lika med Hej igen Var något sömnig. Så det kan bli.Dum fråga men vad gör man..
Förutsättningar:
1.lagrar ett strängvärde i tmpKund
Läser sedan radvärden från en fil och får vid varje loop
nya värden i tmpRad(2) eller tmpRad(3)
Vill få utskrivet "Ny Kund" om värdet i tmprad(2) el tmpRad(3)
skiljer från tmpKund.
Får inte Or fungera som jag tycker.
Detta fungerar inte :
If tmpKund <> tmpRad(2) Or tmpKund <> tmpRad(3) Then Debug.Print "Ny Kund"Sv: Dum fråga men vad gör man..
Då blir if satsen såhär:
if (tmpKund <> tmpRad(2)) And (tmpKund <> tmpRad(3)) then Debug.Print "Ny Kund"Sv: Dum fråga men vad gör man..
Du måste använda And.
If tmpKund <> tmpRad(2) And tmpKund <> tmpRad(3) Then
Debug.Print "Ny Kund"
End If
Or används aldrig på det sättet som du gjorde för något av påståendena måste ju vara rätt:
tmpKund = 4
tmpRad(2) = 1
tmpRad(3) = 4
tmpKund <> tmpRad(2) = Sant.
tmpKund <> tmpRad(3) = Falskt.
Or reagerar om ett av dem eller båda argumenten är sanna.
XOr reagerar om ETT av argumenten är sanna men inte båda.
And reagerar om båda argumenten är sanna.
Ovanstående så kan ju inte båda påståendena inte vara falska, någon måste vara sann, därför får du hela tiden "Ny Kund".Sv: Dum fråga men vad gör man..
1.
Ingen reaktion merd följande värden.
Vill i dessa lägen ha "Ny Kund"
tmKund=""
tmpRad(2)="24"
tmprad(3)=""
2.
tmpkund="24"
tmpRad(2)="251"
tmpRads(3)""
Vill i detta läge inte ha ny kund:
tmpkund="24"
tmpRad(2)=""
tmpRad(3)="24"Sv: Dum fråga men vad gör man..
Scannade lite snabbt det borde bli så här
If (tmpKund = tmpRad(2)) Or (tmpKund = tmpRad(3)) Then Debug.Print "Ny Kund"
tror
SvenSv: Dum fråga men vad gör man..
Isåfall gör du så här:
If tmpRad(3) = "" Then Debug.Print "Ny Kund"
//J.LundqvistSv: Dum fråga men vad gör man..
för varje ny kund innehåller fält 2 ett kundnr
transaktionsrader till denna kund kommer efter men denna gången
med kundnr i fält 3.
Därefter kan ytterligare en kundpost komma på samma kund men med ett annat distrikt och den posten har ånyo kundnr i fält 2
därefter transaktioner enligt ovan.
Brytningen till ny kund är alltså när fält 2 diffar från antingen
fält 2 eller fält 3
Så länge fält 2 eller fält 3 är lika är det alltså samma kund. Sv: Dum fråga men vad gör man..
>Brytningen till ny kund är alltså när fält 2 diffar från antingen
fält 2 eller fält 3
Lite förvirrande att du skriver att fält2 skall diffa med fält 2.
???-)
SvenSv: Dum fråga men vad gör man..
Min kommentar
;Kalle;24 Ny kund (24)
;;24;Art 1 Artiklar tillhöriga kund 24 och rubrik Kalle
;;;24;Art2 -"-
;Olle;24 Samma kund (24) men ny rubrik Olle
;;;24;Art 1 Artikel tillhörig kund 24 med rubrik Olle
;Pelle;251 Ny kund (251)
;;;251;Art 1 Artikel tillhörig kund 251 och rubrik Pelle
;Sven;1001 Ny kund (1001)
;;1001;Art 1 Artikel tillhörig kund 1001 och rubrik Sven
;;;1001;Art 2 -"-
;;;1001;Art 3 -" -
;;;1001;Art 4 -"-
;Harald;1001 Samma kund (1001) men ny rubrik Harald
;;;1001;Art 1 Artikel tillhörig kund 1001 med rubrik Harald
;Ragnar;1001 Samma kund (1001) men ny rubrik Ragnar
;;;1001;Art 1 Artikel tillhörig kund 1001 och rubrik Harald
;;;1001;Art 2 -"-
;;;1001;Art 3 -"-
;;;1001;Art 4 -"-
;;;1001;Art 5 -"-
;Henry;1001 Samma kund (1001) men ny rubrik Henry
;;;1001;Art 1 Artikel tillhörig kund 1001 och rubrik Henry Sv: Dum fråga men vad gör man..
Det här blev ganska rörigt ,positivt tänkande Vi skall fixa detta.
Vi måste göra en modell-simulering.Nu vill jag kolla med dig.
Är detta riktigt.
1.
tmKund=""
tmpRad(2)="24"
tmprad(3)=""
**************True Ny Kund
2.
tmpkund="24"
tmpRad(2)="251"
tmpRads(3)""
***************True Ny Kund
3.
tmpkund="24"
tmpRad(2)=""
tmpRad(3)="24"
****************False inte Ny kund
undrar
SvenSv: Dum fråga men vad gör man..
fält tmpRad(2) eller fält tmprad(3)
Jämförvärdet för tmpKund kan alltså ligga i något av dessa fält.
På svenska:
Om tmpKund = tmpRad(2) eller om tmpKund=tmpRad(3) gör något.
Raden kan anta följande värden
Om "24" = "" eller om "24"="24" gör något annars inte
Om "24" = "24" eller om "24"="" gör något annars inte
AZSv: Dum fråga men vad gör man..
Det blev ju goddag yxskaft
Så här skrev du i inledningen
Vill i detta läge inte ha ny kund:
tmpkund="24"
tmpRad(2)=""
tmpRad(3)="24"
Nu skriver du
Om tmpKund = tmpRad(2) eller om tmpKund=tmpRad(3) gör något.
Dvs registrera ny kund
????????????
DSSv: Dum fråga men vad gör man..
Så här skall det givetvis vara.
Enkelt beskrivet vill jag bara kolla om tmpKund skiljer sig från
fält tmpRad(2) eller fält tmprad(3)
Jämförvärdet för tmpKund kan alltså ligga i något av dessa två fält
och så länge något av dom är lika med tmpKund så skall ny kund inte skapas. Vet inte i förväg vilket av fälten som är tomt.
På svenska:
Om tmpKund <> tmpRad(2) eller om tmpKund <> tmpRad(3) gör något.
Raden kan anta följande värden
Om "24" <> "" eller om "24"<>"24" gör något annars inte
Om "24" <> "24" eller om "24"<>"" gör något annars inte
Ps. Ser vid denna uppställning att dessa uttryck alltid är sanna eftersom
ett av fälten alltid är tomt
Måste antagligen först kolla första uttrycket och därfter det andra
(2 if satser)
AZ