På en tråd om Effektivisering av inläsning till Flexgrid... gav Andreas Hillqvist för ett par dagar sedan ett exempel med kod på hur man kunde göra med användande av TextMatrix. Det ska vara effektivt. Jag har en liknande situation i mittprogram med data som hämtas från en Access-databas och som ska visas i en Flexgrid. Jag ville pröva den av Andreas anvisade metoden med användande av TextMatrix. Jag som slarvat. Andreas! Vad är syftet med uppdelningen av strSQL i olika rader (vbCrLf)? Ger bättre struktur på koden. Grid igen och fråga om Andreas H:s kod
Emellertid förstår jag inte koden i alla delar. det är nedanstående sekvens jag inte förstår.
'Stäler fråga mot Databasen
strSQL = "SELECT *" & vbCrLf & _
"FROM lgDefault" & vbCrLf & _
"WHERE ALARMLEVEL = 1" & vbCrLf & _
"ORDER BY TS DESC"
rst.Open , con, db
Måste man inte ha med strSQL på något sätt i Open-kommandot?
När jag lägger in strSQL (först i Open ovan) får jag ett felmeddelande "Can't assign to array"
Vilket syfte har införandet av vbCrLf i strSQL ovan?
... frågar en newbieSv: Grid igen och fråga om Andreas H:s kod
<code>
strSQL = "SELECT *" & vbCrLf & _
"FROM lgDefault" & vbCrLf & _
"WHERE ALARMLEVEL = 1" & vbCrLf & _
"ORDER BY TS DESC"
rst.Open strSQL, con
</code>Sv: Grid igen och fråga om Andreas H:s kod
Sv: Grid igen och fråga om Andreas H:s kod
Jämför:
<code>
strSQL = "SELECT * FROM lgDefault WHERE ALARMLEVEL = 1 ORDER BY TS DESC"
</code>
Med:
<code>
strSQL = "SELECT * " & _
"FROM lgDefault " & _
"WHERE ALARMLEVEL = 1 " & _
"ORDER BY TS DESC"
</code>
Men om man råkar missa ett mellanslag, villket är lätt gjort, så får man fel.
T.Ex.
<code>
strSQL = "SELECT * " & _
"FROM lgDefault" & _
"WHERE ALARMLEVEL = 1 " & _
"ORDER BY TS DESC"
</code>
Detta är ju svårt att se. Dessutom kommer ju hela SQL satsen ut på en rad om man skriver ut den.
Genom att kompletera med vbCrLf tar jag bort risken att jag råkar slå samman raderna. Samt att strängen får samma formatering:
<code>
strSQL = "SELECT * " & vbCrLf & _
"FROM lgDefault " & vbCrLf & _
"WHERE ALARMLEVEL = 1 " & vbCrLf & _
"ORDER BY TS DESC"
</code>