Avatar billede hyperactive Nybegynder
03. januar 2003 - 16:11 Der er 4 kommentarer og
1 løsning

Hjælp til ændring af kode.......

Jeg har følgende kode, som skal generere et worddokument client side......

Koden består af to dokumenter.....

DEFAULT.ASP

<%@ Language=VBScript %>
<HTML>
<BODY>
<SCRIPT LANGUAGE=VBScript>
Sub CreateDataDoc(oApp)
  ' Declare variables.
  Dim sServer,oDoc,oRS,sTemp,sHead,oRange,oField
 
  ' Place your server's name here.
  sServer = "localhost"
  ' Create a new document.
  Set oDoc = oApp.Documents.Add
  ' Create a new recordset.
  Set oRS = CreateObject("ADODB.Recordset")
  ' Open the XML recordset from the server and pass the SQL statement
  ' to the Getdata.asp page.
  sSQL = "SELECT * FROM ordrer"
  oRS.Open "http://www.4love.dk/admin/labels/getdata.asp?SQL=" & sSql
  ' Convert the recordset to a string.
  sTemp = oRS.GetString(2, -1, vbTab)  ' 2 = adClipString
       
  ' Append the field names to the front of the string.
  For Each oField In oRS.Fields
    sHead = sHead & oField.Name & vbTab
  Next
       
  ' Strip off the last tab.
  sTemp = Mid(sHead, 1, Len(sHead) - 1) & vbCrLf & sTemp
       
  ' Get a range object and insert the text into the document.
  Set oRange = oDoc.Range
  oRange.Text = sTemp
 
  ' Convert the text to a table.
  oRange.ConvertToTable vbTab
  ' Save the document to a temp file.
  oDoc.SaveAs "C:\data.doc"
  ' Close the document (no save).
  oDoc.Close False
End Sub


Sub ButtonClick()
  Dim oApp
  Dim oDoc
  Dim oMergedDoc
 
  ' Create an instance of Word.   
  Set oApp = CreateObject("Word.Application")

  ' Create our data file.
  CreateDataDoc oApp
 
  ' Add a new document.
  Set oDoc = oApp.Documents.Add
  With oDoc.MailMerge
    ' Add our fields.
    .Fields.Add oApp.Selection.Range, "fornavn"
    oApp.Selection.TypeText " "
    .Fields.Add oApp.Selection.Range, "efternavn"
    oApp.Selection.TypeParagraph
    .Fields.Add oApp.Selection.Range, "adresse"
    oApp.Selection.TypeText ", "
    .Fields.Add oApp.Selection.Range, "postnr"
    oApp.Selection.TypeParagraph
    .Fields.Add oApp.Selection.Range, "bynavn"
    oApp.Selection.TypeParagraph
         
    ' Create an autotext entry.
    Dim oAutoText
    Set oAutoText = oApp.NormalTemplate.AutoTextEntries.Add _
    ("MyLabelLayout", oDoc.Content)
    oDoc.Content.Delete
    .MainDocumentType = 1  ' 1 = wdMailingLabels
       
    ' Open the saved data source.
    .OpenDataSource "C:\data.doc"

    ' Create a new document.
    oApp.MailingLabel.CreateNewDocument "pakkelabel", "", _
        "MyLabelLayout", , 4  ' 4 = wdPrinterManualFeed

    .Destination = 0  ' 0 = wdSendToNewDocument
    ' Execute the mail merge.
    .Execute

    oAutoText.Delete
  End With
     
  ' Close the mail merge edit document.
  oDoc.Close False
  ' Get the current document.
  Set oMergedDoc = oApp.ActiveDocument
  ' Show Word to the user.
  oApp.Visible = True
 
  ' Uncomment these lines to save the merged document locally.
  'oMergedDoc.SaveAs "C:\test.doc"
  'oMergedDoc.Close False
  'oApp.Quit False
End Sub
</SCRIPT>
<INPUT type=button value="Create Word Document" onclick="VBScript:ButtonClick">
</BODY>
</HTML>


Og GETDATA.ASP:

<%@ Language=VBScript %>
<%
  Dim oConn,oRS,strConn,sSQLServer
 
  ' Build the connection string.
  sSQLServer = "<servername>"
strConn = "driver={MySQL};server=mysql.4love.dk;database=dk4love;UID=dk4love;PWD=qqt69xax"
' strConn = "driver={MySQL};server=localhost;database=insite"
  ' Set our return content type.
  Response.ContentType = "text/xml"
 
  ' Create a connection.
  set oConn = Server.CreateObject("ADODB.Connection")
  ' Open the connection.
  oConn.Open strConn
  ' Execute the SQL statement.
  set oRS = oConn.Execute(Request.QueryString("SQL"))
  ' Save the recordset in the Response object.
  oRS.Save Response,1
%>

Jeg har brug for at lave SQL forespørgslen dynamisk f.eks. ved hjælp af en Session variabel....

Har prøvet at gøre sådan her:

sSQL = Session("SQLlabel")

Men den giver en fejl: Typer stemmer ikke overens 'Session'

Plz hjælp
Avatar billede medions Nybegynder
03. januar 2003 - 17:31 #1
Er du sikker på der overhovedet er noget i din Session()

Prøv at skriv Response.Write(SessionÆ("SQLlabel"))

//>Rune
Avatar billede hyperactive Nybegynder
03. januar 2003 - 18:00 #2
rune.... Har jeg prøvet....

Den ser helt rigtig ud
Avatar billede hyperactive Nybegynder
03. januar 2003 - 19:18 #3
Koden virker fint nok, som den er vist...... MEN hvis jeg bare ændrer sSQL = "SELECT * FROM ordrer" til sSQL = "SELECT * FROM ordrer WHERE label=0", ja så virker det ikke..... FATTER DET SQ IKKE
Avatar billede medions Nybegynder
04. januar 2003 - 02:09 #4
Det må du lige forklare lidt bedere..´det forstod jeg ik' helt!

//>Rune
Avatar billede hyperactive Nybegynder
06. januar 2003 - 11:23 #5
Har fundet en anden udvej.....

I stedet for:

sSQL = "SELECT * FROM ordrer WHERE label=0"
  oRS.Open "http://www.4love.dk/admin/labels/getdata.asp?SQL=" & sSql

skrev jeg det hele i en linie....

oRS.Open "http://www.4love.dk/admin/labels/getdata.asp?SQL=SELECT * FROM ordrer WHERE label=0"

Nu virker det
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