"Michael Weber" <michael@FJERNmichaelweber.dk> skrev i en meddelelse
news:44ba4eeb$0$12696$edfadb0f@dread14.news.tele.dk...
>
>
> --
> Med venlig hilsen
> Michael Weber
> "bsn" <bsnsnabelaoncabledotdk> wrote in message
> news:44ba3d41$0$180$edfadb0f@dread11.news.tele.dk...
>>
>> "Michael Weber" <michael@FJERNmichaelweber.dk> skrev i en meddelelse
>> news:44ba0f54$0$831$edfadb0f@dread12.news.tele.dk...
>> >
>> > "bsn" <bsnsnabelaoncabledotdk> wrote in message
>> > news:44ba06ab$0$191$edfadb0f@dread11.news.tele.dk...
>> >> Hej igen...
>> >>
>> >> Når en masse formfelter skal opdateres til en database...
>> >> eks.
>> >> id1 felt1 test1
>> >> skal opdateres til en række i databasen...er ok...
>> >>
>> >> Kode start
>> >> Sql="Update tblMenu Set MenuTekst='" &
> Request.Form.Item("txtMenutekst1")
>> > &
>> >> _
>> >> "' , VisUge=" & Request.Form.Item("txtVisUge1") & _
>> >> " Where MenuID=" & Request.Form.Item("txtMenuID1")
>> >> Conn.Execute(Sql)
>> >> Kode slut
>> >>
>> >> men hvis der nu er 50 rækker x 3 felter i formen...så er det jo en
> masse
>> >> kode der fremkommer...
>> >> Kan det ikke laves smartere ved et gennemløb af formfelterne på en
> eller
>> >> anden måde...
>> >>
>> >> altså (se eks.)
>> >> alle felter med 1
>> >> alle felter med 2
>> >> alle felter med 3
>> >> osv...
>> >>
>> >> pft
>> >> Bjarne
>> >>
>> >>
>> >
>> > Det er et 2 delt spørgsmål.
>> >
>> > 1. traversering af en forms elementer :
>> >
http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=64
>> >
>> > 2. Gemtage en sql-sætning adskellige gange :
>> > Opret en ADO Command og tilføj ADO Parametre.
>> > Sæt ADO Command´en til Prepared.
>> >
>> > ADO Command :
>> >
http://www.w3schools.com/ado/ado_ref_command.asp
>> >
http://www.w3schools.com/ado/prop_comm_prepared.asp
>> >
>> > ADO Parameter :
>> >
http://www.w3schools.com/ado/ado_ref_parameter.asp
>>
>> Har lidt svært ved at fange ideen...
>> Kan du give et lille kodeeksempel...???
>> Bjarne
>>
>>
>
> Måske lidt a la det her :
>
> dim command, conn, strSQL, connectionString
>
> ' Streng til database
> connectionString = "C:/Din.mdb"
>
> ' Instantiere et ADO Connection-objekt.
> Set conn = server.createobject("ADODB.connection")
>
> ' Definere Driver
> conn.Provider = "Microsoft.Jet.OLEDB.4.0"
>
> ' Be´r ADO-Objektet om at skabe
> ' forbindelse til DB´en defineret i connectionString
> conn.open connectionString
>
> ' Instantiere et ADO Command-objekt.
> Set command= Server.CreateObject("ADODB.Command")
>
> ' Be´r Command-objektet om at benytte conn-objektet
> ' som forbindelse.
> Set command.ActiveConnection = conn
>
> ' Definer en streng med sql og indsætter ? (spørgsmålstegn)
> ' der hvor Parametre skal indsættes.
> strSQL ="Update tblMenu Set MenuTekst=? ,"
> strSQL = strSQL & "VisUge=? "
> strSQL = strSQL & "MenuID=? "
>
> ' Sætter sql-strengen som det, command-objektet skal udføre.
> command.CommandText=strSQL
>
> ' Fortæller command-objektet at vi vil genbruge command-objektet
> ' igen og databasen skal gemme den første Execution-plan
> command.Prepared=true
>
>
> ' Tilføjer parametre til command-objektet.
> command.Parameters.Append
> command.CreateParameter("MenuTekst",advarchar,adParamInput,255)
> command.Parameters.Append
> command.CreateParameter("VisUge",advarchar,adParamInput,255)
> command.Parameters.Append
> command.CreateParameter("MenuID",adinteger,adParamInput)
>
> dim xi
>
> ' Følgende afhænger lidt af din Form.
> ' og passer nok ikke helt, men kan give dig en idé
> ' om tankegangen.
>
> ' Step 3 be´r tælle ix op med 3.
> For ix = 1 to Request.Form.Count Step 3
>
> ' Piller variabler ud fra Form-objektet og tildeler
> ' parametrene værdierne.
> command("MenuTekst") = Request.Form.Item(ix)
> command("VisUge") = Request.Form.Item(ix+1)
> command("MenuID") = Request.Form.Item(ix+2)
>
> ' Værdier er tildelt command-objektet
> ' og command´en gennemføres.
> command.Execute ,,adCmdText
>
> Next
>
> ' Lukker forbindelsen
> conn.close
>
> ' Rydder op
> set strSQL = nothing
> set connectionString = nothing
> Set command = nothing
> set conn = nothing
>
>
> Med venlig hilsen
> Michael Weber
Tak - jeg kigger på det lidt senere...
Bjarne