PrdPrgr = rstProdVisma!(ProdGroup) Pröva detta. Fungerar i VBscript (ASP) Du har blandat det olak teknikerna för att referera till ett element i en kollektion. Just det.. Så vare! Inte försumbar. Den kanske inte är märkar i det flesta fall för användaren. Men det ger en mycket stabilare kod. Jajaja.... Och? att använda ! för att referera fältnamn är rentutav kasst om man funderar på vad som händer igentligen under ytan och runt COM och referenser till interfacen... Förlåt då. Formulera mig dålig. ÄR det snabbare ox. Där ser man. Har jag inte tänkt at testa. Efter som !-referering aldrig varit aktuellt för mig. Det var då själva ..... AHHHHHHHH.... Typ skulle jämföra det med att använda mora kniv istället för pennvässare. Morkniv får man tycka om det är inget fel med det. Men vi vill inte att du ska skära dig i fingrarna. Vi bryr os om dig. *Kramas*Den blinde, -Kan man göra så här? PrdPrgr = rstProdVisma!(ProdGro
Där ProdGroup är en variabel som innehåller ProdGrTr som är fältet jag vill
hämta?
Har ingen databas som jag kan testa mot...
Mvh
Rickard
-----------------
Tydligen inte... Den skrek direkt när jag skulle köra.. Hur gör man dårå?Sv: Den blinde, -Kan man göra så här? PrdPrgr = rstProdVisma!(Pro
strTest = "fltNamn"
strSvar = tblTemp(strTest)
/JanneSv: Den blinde, -Kan man göra så här? PrdPrgr = rstProdVisma!(Pro
Det riktiga sättet(Alla gör samma sak):
<code>
varTemp = rsTemp("Fält")
varTemp = rsTemp.Fields("Fält")
varTemp = rsTemp.Fields.Item("Fält")
varTemp = rsTemp.Fields.Item("Fält").Value
</code>
Så finns det nått skumt sätt:
<code>
varTemp = rsTemp!Fält
varTemp = rsTemp![Om delat namn]
</code>
Så vitt jag vet fungerar koden på samma sätt.
Men eftersom ! - varianten gör att man förlorar inteli-sens efter namnet. Samt käns som något halvdant brukar jag aldrig använda den.
Apropå fält finns det ju ett lite optimeringstips.
Om vi tänker på att rsTemp("Fält").Value är samma som rsTemp.Fields.Item("Fält").Value. Så kan vi snabba upp vår loop genom att lagra en referens till fältobjeket i en variabel:
<code>
Dim fldFält as ADODB.Field
Set fldFält = rsTemp("Fält")
Do Until rsTemp.Eof
Combo1.AddItem fldFält.Value
rsTemp.MoveNext
Loop
</code>
I denna loopen behöver vi ju bara hämta egenskapen Value från fältobjektet. Jämfört med en "vanlig" loop. Vilket behöver först hämta fältkollektionen genom att anropa egenskapen Fields. På Fältkollektionen hämta fältet genom att anropa Item med fältnamnet eller fältindex. Dessa slipper man med en variabel.
<code>
Dim fldFält as ADODB.Field
Set fldFält = rsTemp("Fält")
Do Until rsTemp.Eof
Combo1.AddItem fldFält.Value
rsTemp.MoveNext
Loop
</code>
Skriv smart kod så skriver ni snabb och bra kod. ;O)Sv: Den blinde, -Kan man göra så här? PrdPrgr = rstProdVisma!(Pro
Tack Jan.
Jätte tack andreas (även om det känns som du jämt försöker springa ifatt med tåget..)
Loopen genom tabellen är i det här fallet försummbar jämfört med sqlfrågan.
Önskar jag kunde hitta min fina säkerhetskopia på alla gamla projekt som jag gjorde för att inte tappa bort dom...
//RickardSv: Den blinde, -Kan man göra så här? PrdPrgr = rstProdVisma!(Pro
Givet vis slukar ju data hämtningen mest tid. Men om man alltid gör på rätt sätt. Gör man ju aldrig fel. Det jag försöker lära ut är att man ska förstå vad koden gör. Inte bara hur man använder den. Man kan ju spela tennis med en stekpanna. Sv: Den blinde, -Kan man göra så här? PrdPrgr = rstProdVisma!(Pro
Ok..
Jag har ALDRIG haft något bekymmer med rstemp!fältnamn.
aldrig heller rstemp![fält namn].
... Skumt sätt?? Vad är skumt med det?? Det går, har gått och kommer väldigt länge till att gå i VB och VBA, funkar i word och excel.
Dålig instabil kod? sluta nu.
Tennis med stekpanna.. *Skrattar*
Mvh
RickardSv: Den blinde, -Kan man göra så här? PrdPrgr = rstProdVisma!(Pro
En enkel rs.fields("fält").value är mätbart mycket snabbare ärn rs!fält .. Det är oerhört viktigt om man tittar på kod där man har en tung användar last eller många repetitioner av läsning ... (vilket då att använd fält objekt är ändp mycket snababre)
gjorde ett test på det där för ett par år sedan kommer inte ihåg exakta sifrror, men optimeringen uppgick till ett par hundra procent bättre prestanda i det specifika fallet ... Sv: Den blinde, -Kan man göra så här? PrdPrgr = rstProdVisma!(Pro
Okonsekvent är nog ett bättre ordval. Eller det är det ju inte heller.
Men det ger programmerare en möjlighet att vara det. Vilket det ofta gör. Anntingen ska man ange alla fältreferenser med [] eller ingen men då måste fältnamnen ej innehålla tecken som kräver att det omges av [].
Hur som helst har jag inte kollat så mycket på ADO.NET och VB.NET. Men det kan nog vara så att det inte stöds i .NET. Förhoppningsvis tar konverteringz wizarden hand om det. Men efter som det inte är en logisk. Nog ett gammalt arv och synd microsoft har tvingats att underhålla på grund av att folk känner likadant som dig.Sv: Den blinde, -Kan man göra så här? PrdPrgr = rstProdVisma!(Pro
Sv: Den blinde, -Kan man göra så här? PrdPrgr = rstProdVisma!(Pro
Härmed säger jag upp mej!
Jag säger upp mej som den programmeraren jag aldrig var och den
människan jag aldrig blev. Jag säger upp min bekantskap med alla jag
tyckte om men inte räckte till för. Jag avsäger mej rätten att använda !
för att referera till fältnamn som trots dess obetydlighet vägrade att
accepteras i samhället. Jag finner mej ovärdig att be om enkla svar då
uppläxningen som följer inte upprör mej lika mycket som det upprör de
som svarar. Jag släcker lampan, stänger av datorn och går hem.
Imorgon börjar min nya dag som tandpetsvässare på swedish match
returlager för dåliga svaveltändstickor. Hoppas jag inte får sparken
därifrån oxå. Inte för att mina tandpetare är dåligt vässade, dom är
faktiskt riktigt bra. Inte för att dom går av eller fastnar i tänderna på folk
som får ringa tandläkaren. Dom är faktiskt riktigt stabila. Utan för att jag
vässar tändstickorna med den morakniv som min farfar gav mej som
anses vara för slö. Inte pågrund av resultatet. Men det ser dåligt ut när
chefen i tandpetarfabriken får besök av andra tandpetstillverkare!
//RickardSv: Den blinde, -Kan man göra så här? PrdPrgr = rstProdVisma!(Pro
Med pennväsar sliper du arbetskador som är vanliga i yrket som tandstiksvässare. Dessutom blir du mer produktiv.
Men vi tycker om dig ovsett hur du vässar tandpeter.