String of integer

Status
Niet open voor verdere reacties.

old Hippy

Gebruiker
Lid geworden
24 mei 2008
Berichten
911
Hallo allemaal.

Mijn vraag
ik heb een datagridview met een waarschuwing in kleur.
zie afbeelding.
Dit werk goed.

de code is als volgt
Code:
Function Alert_WaarS() As Boolean

        For Each NRow In Me.OmschrijvingartikelenDataGridView.Rows
            If NRow.Cells(6).Value IsNot DBNull.Value Then
                If CType(NRow.Cells(6).Value(), Integer) > 0 Then
                    NRow.DefaultCellStyle.ForeColor = Color.Black

                Else
                    NRow.DefaultCellStyle.ForeColor = Color.Red
                    Label1.Text = "LET OP " & vbNewLine & "Geen voorraad" & vbNewLine & vbNewLine & vbNewLine & "Van de rood geaceered artikelen"
                    Label1.Image = ImageList1.Images(0)
                End If
            Else
            End If
        Next
        For Each NRow In Me.OmschrijvingartikelenDataGridView.Rows
            If NRow.Cells(7).Value IsNot DBNull.Value Then
                If CType(NRow.Cells(7).Value(), String) = "Niet meer leverbaar" Then
                    NRow.DefaultCellStyle.ForeColor = Color.Blue
                End If
            Else
            End If
        Next
    End Function

Wat ik graag wil is dat het werkt als er b.v.b uitverkocht, of tijdelijk niet leverbaar, of wat dan ook staat het ook werkt


dus dat het ziet of er een string of een integer word gebruikt. hopelijk is dit duidelijk genoeg.
Artikel.JPG
 
Wat moet er met die errors gebeuren dan? ik neem aan dat je geen lijst van errors onder elkaar wil? of juist wel? Of begrijp ik het probleem dat je wil oplossen verkeerd?
 
Dit checkt of de variabele integer of string is.

[cpp]If VarType(value) = vbInteger Then
''//integer
ElseIf VarType(value) = vbString Then
''//string
End If[/cpp]
 
Het zijn geen errors.
Ik kan in de lijst artikelen direct zien wat invoorraad is.
Zwart normaal voorraad.
Rood niet meer in voorraad.
Blauw Niet meer leverbaar.

Zwart voorraad
Rood gerelateerd aan werkvoorraad.
Blauw gerelateerd aan Minvoorraad (minimalevoorraad) Als in min voorraad (Niet meer verkrijgbaar) staat Blauw.


maar ik wil dat als er text in minvoorraad staat Blauw (string)
En als er een getal in staat (Integer)

Zodat ik vanalles kan invullen in de minvoorraad b.v.b tijdelijk niet leverbaarof vervangend artikel.
 
@old Hippy: Mijn code checkt daar toch op? Of begrijp ik je verkeerd?
 
Beste Joz1 Ik ben net met je code bezig om hem uit te proberen.
zijn elkaar gekruist met het beantwoorden.
dus kreeg je oplosing terwijl ik Wampier aan het antwoorden was.
sorry ga nu je oplosing in de code frunnikken dan hoor je van mij alvast bedankt
 
OK :p, dat heb ik wel vaker meegemaakt.

Succes ermee! :D
 
Je kunt het zo oplossen, maar het is netter om dat in een lus te doen. Je herhaald nu dezelfde lus op 2 kollommen om de kleuren te doen, maar dat is niet echt efficient. het zou better zijn de kleuren en errors in een enkele loop te doen
 
Mij beste Wampier
je praat over Errors ik begrijp niet wat je bedoeld hier mee.

Even proberen een korte uitleg van het programma.
Het programma is bedoeld voor mensen die sieraden zelf maken.
Ze kopen losse kralen en maken hier een sieraad van b.v.b een armband.

In de App heb je de mogelijkheid om de verkoopprijs van je product te berekenen.
Incl. Uurloon extrakosten ezv.
Als er een product gemaakt word kan het zijn dat er een onderdeel niet meer verkrijg baar is.
Dan kan het product welgemaakt worden maar met een vervangend onderdeel.
Om nu in mijn overzicht een onderscheid te krijgen tussen wat er wel is en wat niet gebruik ik de kleuren.
Als er een minimale voorraad van een product nodig is om dat er 5 of 10 in gaan staat de minvoorraad op bv.10.
Is het niet meer verkrijgbaar staat er dus tekst.

Maar als je een nette oplossing hier voor weet hou ik mij aanbevolen.
ik heb de oplossing van JoZ1 nog niet aan de praat in mijn code
heb hier nog een probleem VarType(value)

Met vriendelijke groet Old Hippy
 
Laatst bewerkt:
Ja, dat klopt. value staat natuurlijk nergens gedeclareerd. Het betekent gewoon 'waarde'. Je kunt dus de value-property van die DatagridCell gebruiken om te kijken of het een integer of string is :).

Snap je het?
 
Ga het proberen snappen doe ik het niet maar dat geeft niets ik ben geen programmeur.
Maar een oude hobby knipper en plakker en google zoeker met veel geduld tijd en lol in wat ik maak.
 
Met "error" bedoel ik dus uitzonderingen, die je wil kleuren.

Code:
Function Alert_WaarS() As Boolean

        For Each NRow In Me.OmschrijvingartikelenDataGridView.Rows
            If NRow.Cells(6).Value IsNot DBNull.Value Then
                If val(NRow.Cells(6).Value()) < 1 Then
                    NRow.DefaultCellStyle.ForeColor = Color.Red
                    Label1.Text = "LET OP " & vbNewLine & "Geen voorraad" & vbNewLine & vbNewLine & vbNewLine & "Van de rood geaceered artikelen"
                    Label1.Image = ImageList1.Images(0)

            Elseif NRow.Cells(7).Value IsNot DBNull.Value Then
                If VarType(NRow.Cells(7).Value()) = vbString Then
                    NRow.DefaultCellStyle.ForeColor = Color.Blue
                End If

            Else
                   NRow.DefaultCellStyle.ForeColor = Color.Black
            End If
        Next
  
    End Function

ongetest dus mogelijk heb ik een knip/plak foutje gemaakt, maar zo zou je het in een enkele lus kunnen doen.
 
Laatst bewerkt:
Ik ben ook geen programmeur hoor :).

Ik probeer het nog eens uit te leggen:

In die code die ik gaf, staat value. Daarvan zegt jouw compiler natuurlijk dat het fout is, omdat dat nergens staat gedeclareerd. (Dim value....)

Het was ook de bedoeling dat je dat weg zou halen en je eigen waarde zou plaatsen. Dus de variabele waarvan je het datatype wilt weten, kun je daarin plaatsen.

Snappez-vous ? :P
 
Ok dacht zo iets dus maar dat werkt niet
Code:
For Each NRow In Me.OmschrijvingartikelenDataGridView.Rows
            If NRow.Cells(7).Value IsNot DBNull.Value Then
                If VarType(CType(NRow.Cells(7).Value(), Integer) > 0) = vbInteger Then
                    NRow.DefaultCellStyle.ForeColor = Color.Black
                ElseIf VarType(CType(NRow.Cells(7).Value(), String).ToString) = vbString Then
                    NRow.DefaultCellStyle.ForeColor = Color.Blue
                Else

                End If
            End If
        Next
krijg de volgende fout melding (De conversie van tekenreeks niet meer leverbaar naar type Integer is ongeldig.)
 
En zo?

[CPP]For Each NRow In Me.OmschrijvingartikelenDataGridView.Rows
If NRow.Cells(7).Value IsNot DBNull.Value Then
If VarType(NRow.Cells(7).Value) = vbInteger Then
NRow.DefaultCellStyle.ForeColor = Color.Black
ElseIf VarType(NRow.Cells(7).Value) = vbString Then
NRow.DefaultCellStyle.ForeColor = Color.Blue
Else

End If
End If
Next[/CPP]
 
Laatst bewerkt:
nu deze fout
Bij = vbInteger ThenError 1 Comma, ')', or a valid expression continuation expected.
 
Oeps! Haakje vergeten :o.

Ik heb mijn post aangepast. :)
 
Kan het niet met:
Code:
IsNummeric()
??

dus iets van:

Code:
If IsNummeric(value) Then
      'code
End If

Verder kan je dan code gebruiken van JoZ1.


PS: Dan check je niet of het een integer is, maar of het een getal is...


*EDIT* Ik ben ook geen programmeur, ik doe het ook gewoon voor de lol.
 
Laatst bewerkt:
Ik had de haakjes verkeerd geplaatst:

Post is weer aangepast.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan