Hoofdcategorieën
Device Settings
Topicacties

[VB6] Foutmelding bij veel declaraties *

Pagina: 1

Reageer Nieuw Topic
Berichten: 245
Reg. datum: 04 juni 2003
Geen matches

Hoi tweakers,

Ik schrijf een programma die het aantal bouten berekent van een serre met een aantal in gevoerde gegevens.
Alles werkte goed, maar ik dacht, ik zou beter m'n module structureren waar de formules worden uitgewerkt. Dit heb ik gedaan en de variabelen beter verdeeld.
Het declaren ervan zie je hieronder

Option Explicit

Public cat2, cat3, cat4, cat5, cat6, cat7, cat8, cat9, cat10 As String
Public cat11, cat12, cat13, cat14, cat15, cat16, cat17, cat18, cat20 As String
Public cat41, cat42, cat43, cat44, cat45, cat46, cat47, cat48, cat49, cat50 As String
Public cat51, cat52, cat53, cat54, cat55, cat56, cat57, cat58, cat60 As String
Public cat61, cat62, cat63, cat64, cat65, cat66, cat67, cat68, cat69, cat70 As String
Public cat71, cat72, cat73, cat74, cat75, cat76, cat77, cat78, cat79, cat80 As String
Public cat81, cat82, cat83, cat84, cat85, cat86, cat87, cat88, cat89, cat90 As String
Public cat59 As String
Public cat As String
Public cat21 As String
Public cat30, cat31, cat32, cat33, cat34, cat35, cat36, cat37 As String
Public cat38, cat39 As String
Public cat40 As String

Nu alles komt overeen, niets dubbel ingevuld, en in de formules zitten ook geen fouten. Toch geeft hij een foutmelding: Runtime error '13' Type mismatch

Zou het kunnen liggen om dat ik teveel Public As String gebruikt heb? Het is maar een wilde gok. Weet iemand raad?

Hij heeft de foutmelding vanaf cat60, waneer ik formule 60 verwijder. Heeft hij terug een foutmelding bij cat61 enz...
Groeten

Dreetn wijzigde dit bericht 31-01-2004 16:31 (5%)

 
Matched: array

Niet direct een antwoord op je vraag maar kun je niet beter een Array gebruiken?

Is op zoek naar een MS Dynamics NAV ontwikkelaar, trainees ook welkom! DM voor info!

Berichten: 245
Reg. datum: 04 juni 2003
Matched: array

Wat is een Array? Sorry werk nog niet lang met VB6
 
Berichten: 245
Reg. datum: 04 juni 2003
Matched: array

quote:
Dreetn schreef op 31 januari 2004 @ 16:32:
Wat is een Array? Sorry werk nog niet lang met VB6. Hij heeft de foutmelding vanaf cat60, waneer ik formule 60 verwijder. Heeft hij terug een foutmelding bij cat61 enz...

 
producing dance music
Berichten: 937
Reg. datum: 22 november 2000
Matched: visual, array, basic

Volgens mij heb jij nog nooit gehoord van arrays of wel? ;)
Je kan al die variabelen vervangen door 1 array declaratie:

Visual Basic:
1
Public Cat(40As String


En zonder relevante code die de type mismatch zou veroorzaken kunnen we je ook niet helpen.

Daarbij bij een declaratie als:

Visual Basic:
1
Public cat2cat3cat4cat5cat6cat7cat8cat9cat10 As String


Is alleen cat10 een String en zien cat2-cat9 Variants.

De correcte declaratie:

Visual Basic:
1
Public cat2 As Stringcat3 As Stringcat4 As String etc.

Maar zoals al verteld is dit is niet echt een bepaald efficiënt gebruik van variabelen. Kijk anders eens op deze site http://www.vbtutor.net

pjonk wijzigde dit bericht 31-01-2004 16:39 (46%)

Berichten: 245
Reg. datum: 04 juni 2003
Matched: array

Nee, heb nog nooit van een Array gehoord
Wat doe je dan als je Public cat(40) As string gebruikt
Zal hij dan alle cat's declareren tot cat40?

Nuja, de code is te lang om te geven. Zijn enkel formules ( een 100-tal ) die berekeningen uitvoert. Het heeft altijd gewerkt, maar vanaf ik ze ging structureren ging het niet meer

Dreetn wijzigde dit bericht 31-01-2004 16:38 (41%)

 
Matched: array

quote:
Dreetn schreef op 31 januari 2004 @ 16:36:
Nee, heb nog nooit van een Array gehoord
Wat doe je dan als je Public cat(40) As string gebruikt
Zal hij dan alle cat's declareren tot cat40?


ja :)


Je kunt ze dan bijvoorbeeld nr 21 benaderen door cat(20) te gebuiken. (een array begint altijd bij 0)

Is op zoek naar een MS Dynamics NAV ontwikkelaar, trainees ook welkom! DM voor info!

Berichten: 245
Reg. datum: 04 juni 2003
Geen matches

Ok zal effen proberen

Het lukt blijkbaar nog niet, nu heeft hij een fout in het formulier waar de uitkomst van een formule komt.
Code:

Private Sub Command1_Click()
Call berekenen
Btn_Gord_M8_20.Text = cat
Btn_Kr_M8_20.Text = cat21
St_Besam_Deur.Text = cat31
Brg_Autm_Besamd.Text = cat30
Deursts_Besamd.Text = cat30
Type_Brg_Skt.Text = cat33
Brg_Skt_Port.Text = cat32
Deursts_Skt_Deur.Text = cat32
Type_Brg_Autm.Text = cat35
Brg_Autm_Deur.Text = cat34
Deursts_Autm_Deur.Text = cat34
Br_Brg_Ond_Gt.Text = cat37
Br_Ond_Gt.Text = cat36
Gbst.Text = cat38
Mbrgn.Text = cat39
Portkn.Text = cat40
End Sub

Foutmelding: Type Mismatch
Foutmelding geef hij bij cat.

Dreetn wijzigde dit bericht 31-01-2004 16:46 (97%)

 
Berichten: 245
Reg. datum: 04 juni 2003
Geen matches

Heb ook eens Public cat(0 to 100) As string geprobeerd, maar dit heeft hetzelfde uitwerking, niet? nuja, geeft nog altijd een foutmelding

Code module:

Option Explicit
Public cat(0 To 100) As String

Sub berekenen()
'gordingen in NeZe_Mdgvl

cat2 = (NeZe_Mdgvl.Aant_Rijn_Gordn_Ond_Gt * (NeZe_Mdgvl.Aant_Gvlsts_Gls4 - 1) * 2) * NeZe_Mdgvl.Aant_Mdgvls_Gls4 'aantal bouten gordingen in middengevel van glas 4

'hierbij komen nog een 100-tal formules bij
End sub

Code formulier:

Private Sub Command1_Click()
Call berekenen
Btn_Gord_M8_20.Text = cat 'hier heeft hij een foutmelding
Btn_Kr_M8_20.Text = cat21
St_Besam_Deur.Text = cat31
Brg_Autm_Besamd.Text = cat30
Deursts_Besamd.Text = cat30
Type_Brg_Skt.Text = cat33
Brg_Skt_Port.Text = cat32
Deursts_Skt_Deur.Text = cat32
End Sub


bij Btn_Gord_M8_20.Text = cat heeft hij een foutmelding (type mismatch)

Groeten

Dreetn wijzigde dit bericht 31-01-2004 16:55 (74%)

 
Berichten: 241
Reg. datum: 11 februari 2003
Matched: array

quote:
P_de_B schreef op 31 januari 2004 @ 16:37:
[...]

ja :)

Je kunt ze dan bijvoorbeeld nr 21 benaderen door cat(20) te gebuiken. (een array begint altijd bij 0)

Dit is alleen waar als Option Base 0 gebruikt wordt. Anders begint de array bij 1.

TS: gebruik niet Cat20, maar Cat(20) als je een van de elementen van het array wilt gebruiken.

Ik zou je echter aanraden eerst wat informatie op te zoeken over VB en programmeren in het algemeen.
 
Matched: visual, array, basic

quote:
P_de_B schreef op 31 januari 2004 @ 16:37:
[...]


ja :)


Je kunt ze dan bijvoorbeeld nr 21 benaderen door cat(20) te gebuiken. (een array begint altijd bij 0)
Ik neem aan dat je het over Visual basic hebt hier, en niet over array's in het algemeen ;) Je hebt namelijk ook bijvoorbeel assoctieve arrays (OA in php) en in delphi kun je ook array's van 5 t/m 10 hebben :)

Previous titles worked on: Battlefield 3 (Frostbite team), Deus Ex: Human Revolution

Berichten: 245
Reg. datum: 04 juni 2003
Matched: array

Wanneer je een array gebruikt in een module. Vb: Public cat(0 to30) As String

Is het dan mogelijk dat hij vb cat21 kan terug vinden in de module, en deze dan plaatsen in een formulier. Omdat hij dan een foutmelding geeft. Wanneer ik elke variabele apart uitschrijf vb cat0 As string, cat1 As string, .... Geeft hij geen foutmelding.

En wanneer je Public cat (0 to 30) As string gebruikt, ben je dan verplicht om elke cat te gebruiken???

Dreetn wijzigde dit bericht 31-01-2004 17:26 (14%)

 
Matched: visual, array, basic

quote:
Dreetn schreef op 31 januari 2004 @ 17:24:
Wanneer je een array gebruikt in een module. Vb: Public cat(0 to 30) As String

Is het dan mogelijk dat hij vb cat21 kan terug vinden in de module, en deze dan plaatsen in een formulier. Omdat hij dan een foutmelding geeft. Wanneer ik elke variabele apart uitschrijf vb cat0 As string, cat1 As string, .... Geeft hij geen foutmelding.

En wanneer je Public cat (0 to 30) As string gebruikt, ben je dan verplicht om elke cat te gebruiken???

Nee, maar het is wel zode van het geheugen ;) daar hebben ze dan weer dynamische array's voor bedacht, (bekendheids factor 0,1 bij mij, in visual basic ;))

En welke foutmelding geeft 'ie dan? -hier gaat het namelijk gewoon goed-

Previous titles worked on: Battlefield 3 (Frostbite team), Deus Ex: Human Revolution

Matched: visual, array, basic

quote:
PrisonerOfPain schreef op 31 januari 2004 @ 17:14:
[...]
Ik neem aan dat je het over Visual basic hebt hier, en niet over array's in het algemeen ;)
Ja inderdaad, VB. En ook bij VB kan dit nog weer anders als je OPTION BASE n gebruikt, maar ik denk dat dat een sprong te ver is voor TS op dit moment.

Is op zoek naar een MS Dynamics NAV ontwikkelaar, trainees ook welkom! DM voor info!

Berichten: 245
Reg. datum: 04 juni 2003
Geen matches

Foutmelding: Type mismatch

Deze geeft hij aan in het formulier waar een cat uit de module wordt gebruikt.


Private Sub Command1_Click()
Call berekenen
Btn_Kr_M8_20.Text = cat21 'hier heeft hij een fout
End Sub
 
Kruimeltjes zijn weer op :9
Matched: visual, array, basic

quote:
Dreetn schreef op 31 januari 2004 @ 17:35:
Foutmelding: Type mismatch

Deze geeft hij aan in het formulier waar een cat uit de module wordt gebruikt.


Private Sub Command1_Click()
Call berekenen
Btn_Kr_M8_20.Text = cat21 'hier heeft hij een fout
End Sub
* gorgi_19 kan de code niet in verband brengen met alle opmerkingen over arrays? :?
Visual Basic 6:
1
2
3
Private Sub Command1_Click()
Call berekenen
Btn_Kr_M8_20.Text = cat(19)      'hier heeft hij een fout
End Sub

Berichten: 245
Reg. datum: 04 juni 2003
Matched: visual, array, basic

quote:
PrisonerOfPain schreef op 31 januari 2004 @ 17:30:
[...]

Nee, maar het is wel zode van het geheugen ;) daar hebben ze dan weer dynamische array's voor bedacht, (bekendheids factor 0,1 bij mij, in visual basic ;))

En welke foutmelding geeft 'ie dan? -hier gaat het namelijk gewoon goed-


Foutmelding: Type mismatch

Deze geeft hij aan in het formulier waar een cat uit de module wordt gebruikt.


Private Sub Command1_Click()
Call berekenen
Btn_Kr_M8_20.Text = cat21 'hier heeft hij een fout
End Sub
 
Matched: array

quote:
Dreetn schreef op 31 januari 2004 @ 17:35:
Foutmelding: Type mismatch

Deze geeft hij aan in het formulier waar een cat uit de module wordt gebruikt.


Private Sub Command1_Click()
Call berekenen
Btn_Kr_M8_20.Text = cat21 'hier heeft hij een fout
End Sub
Als je een array declareerd heten alle variabele cat, de identifier/index staat tussen ( en ) dus cat(21) geeft je hier het juiste item :)

Previous titles worked on: Battlefield 3 (Frostbite team), Deus Ex: Human Revolution

Berichten: 245
Reg. datum: 04 juni 2003
Matched: array

quote:
PrisonerOfPain schreef op 31 januari 2004 @ 17:40:
[...]


Als je een array declareerd heten alle variabele cat, de identifier/index staat tussen ( en ) dus cat(21) geeft je hier het juiste item :)


Thx, dit antwoord zocht ik, nu werkt het eindelijk, na twee uur zoeken ;-)
Nuja, da's het leuke aan het programmeren, dat je het na lang zoeken vind, en dat het werkt. Hartelijk Dank tweakers
 
Berichten: 245
Reg. datum: 04 juni 2003
Geen matches

thx

Dreetn wijzigde dit bericht 31-01-2004 18:04 (99%)

 
Geen matches

Geef eens wat code er om heen, want bij mij gaat het goed (wel wat langzaam) tot de 10000000 (hoger heb ik niet geteste :))

Previous titles worked on: Battlefield 3 (Frostbite team), Deus Ex: Human Revolution

Professional Newbie
Geen matches

Geef eens de declaratie van cat() en de regel waarop de fout optreed? Waarschijnlijk probeer je een string in een integer te stoppen oid.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10! | Huis te koop in Barendrecht!

Berichten: 245
Reg. datum: 04 juni 2003
Geen matches

quote:
Gerco schreef op 31 januari 2004 @ 18:07:
Geef eens de declaratie van cat() en de regel waarop de fout optreed? Waarschijnlijk probeer je een string in een integer te stoppen oid.
Geen probleem heb het probleem opgelost. Ik had in het formulier verwezen naar cat21 maar het moest cat(21) zijn. Toch bedankt
 
Berichten: 245
Reg. datum: 04 juni 2003
Geen matches

quote:
PrisonerOfPain schreef op 31 januari 2004 @ 18:07:
Geef eens wat code er om heen, want bij mij gaat het goed (wel wat langzaam) tot de 10000000 (hoger heb ik niet geteste :))
Geen probleem heb het probleem opgelost. Ik had in het formulier verwezen naar cat21 maar het moest cat(21) zijn. Toch bedankt
 

Pagina: 1



VNU Media logo Hosted by True

© 1998 - 2012 Tweakers.net B.V. - Alle rechten voorbehouden - Contact - Jouw privacy - Algemene Voorwaarden

Uitgever van:

Website van het jaar 2011