Avatar billede lester_dk Nybegynder
03. august 2002 - 17:47 Der er 6 kommentarer og
1 løsning

Offset i Excel.... samt detecte tomme felter

Først af alt, så skal siden vise data fra excel-dokumentets felter, startende et stykke nede...  f.eks. først fra række 14.

Derudover indeholder regenarket en masse felter der ikke indeholder noget.

Den skal så stoppe med at vise data når den når til en række der ikke er indtastet i. (Null eller empty, eller hvad det nu kan hedde)

Den looper indtil der ikke er mere at vise og ca. de 70 nederste felter er oprettet, men tomme......  de skal ikke vises...

pt. ligger det på http:/coolminds.adsl.dk/flyver
Tjeck den ud og se hvad den gør i bunden....
Avatar billede lester_dk Nybegynder
03. august 2002 - 19:15 #1
prøver lige igen.... he he

http://coolminds.adsl.dk/flyver
Avatar billede sn0wflake Nybegynder
03. august 2002 - 20:44 #2
Jeg kiggede på noget gammelt ASP/Excel kode jeg har lavet. Jeg kan huske at visse ting virkede ret underlige, som du selv har oplevet nu. Jeg checker om det er et tal ved at skrive:

If IsNumeric(objData.Fields.Item(j).Value) Then
    Response.Write "blablabla"
End If

...hvor "objData.Fields.Item(j).Value" er min måde at iterere Excel-filen. Du har sikkert en anden. Det vigtigste i kodeeksemplet er "IsNumeric()"-funktionen.
Du kan også checke med "VarType()"-funktionen, men der må være en grund til at jeg har brugt "IsNumeric()" (som jeg ellers aldrig bruger).
Avatar billede lester_dk Nybegynder
03. august 2002 - 20:47 #3
Tjaa...  ved bare ikke hvad jeg skal tjecke for.....  feltet der skal få iterationen til at stoppe er et tomt felt...  hvilken værdi repræsentere den så?  hmmm....

er der så en end loop eller noget man kan bruge for at bryde inde den når til eof.

Har du tjekket mit link?
Avatar billede sn0wflake Nybegynder
03. august 2002 - 21:05 #4
Jeg har checket dit link.
Du kan få ASP til at skrive hvilken type det er. Det er et af mine bedste debug-værktøjer. Skriv f.eks.:

Response.Write VarType(excelhalløjsa) & "<br>"

Nu skriver ASP typen af indholdet, repræsenteret af en talværdi. Find det sted hvor det går galt (er tom), og send mig værdien.
Andre ting er IsNull() og IsEmpty.
Du må også gerne sende lidt kode.
Avatar billede lester_dk Nybegynder
04. august 2002 - 10:19 #5
Det skulle være en type 1, altså et tomt felt....

Har så prøvet:

While rs.EOF = False
Response.Write " <tr>" & vbCrLf
Response.Write " <td>" & vbCrLf
Response.Write " " & rs(0) & vbCrLf
Response.Write " </td>" & vbCrLf
Response.Write " <td>" & vbCrLf
Response.Write " " & rs(1) & vbCrLf
Response.Write " </td>" & vbCrLf
Response.Write " <td>" & vbCrLf
Response.Write " " & rs(2) & vbCrLf
Response.Write " </td>" & vbCrLf
Response.Write " <td>" & vbCrLf
Response.Write " " & rs(3) & vbCrLf
Response.Write " </td>" & vbCrLf
Response.Write " <td>" & vbCrLf
Response.Write " " & rs(4) & vbCrLf
Response.Write " </td>" & vbCrLf
Response.Write " <td>" & vbCrLf
Response.Write " " & rs(5) & vbCrLf
Response.Write " </td>" & vbCrLf
Response.Write " <td>" & vbCrLf
Response.Write " " & rs(6) & vbCrLf
Response.Write " </td>" & vbCrLf
Response.Write " <td>" & vbCrLf
Response.Write " " & rs(7) & vbCrLf
Response.Write " </td>" & vbCrLf
Response.Write " <td>" & vbCrLf
Response.Write " " & rs(8) & vbCrLf
Response.Write " </td>" & vbCrLf
Response.Write " </tr>" & vbCrLf
If  VarType(rs(1))>1 Then
  rs.MoveNext

  wend
else

Response.Write "</table>" & vbCrLf
Set rs = Nothing
xlCn.Close
Set xlCn = Nothing
end if
%>

Men den siger
Error Type:
Microsoft VBScript compilation (0x800A0400)
Expected statement
/flyver/Default.asp, line 97

I denne linie står Wend....  Før var det ikke en While - Wend.... men en do until - loop ting......  der sagde den "loop" without do når rs.movenext og loop kom ind i en betingelsessætning...  hvad gør jeg galt....¿
Avatar billede sn0wflake Nybegynder
04. august 2002 - 12:42 #6
Jeg kan ikke se hvad du har gjort galt, men jeg kan se at det blot er en ASP syntaxfejl. De er ikke svære at rette.
Min "kodestruktur" er opbygget således:

For i = 0 To objData.RecordCount - 1
    Response.Write        "<tr>"
          For j = 0 To objData.Fields.Count - 1
              If IsNumeric(objData.Fields.Item(j).Value) Then
                    Response.Write "<td class=""Right"">" & aryTEMP(0) & fnkNumberFormat(FormatNumber(objData.Fields.Item(j).Value, 2)) & aryTEMP(1) & "</td>"
                    Else
                    Response.Write "<td>" & aryTEMP(0) & fnkHTMLEncode(objData.Fields.Item(j).Value & " ") & aryTEMP(1) & "</td>"
              End If
          Next
          Response.Write        "</tr>"
          objData.MoveNext
Next

Håber at det kan hjælpe dig på en eller anden måde.
Avatar billede lester_dk Nybegynder
04. august 2003 - 15:28 #7
Lukker...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester