0

さまざまな量の「回答」フィールドを持つフォームがあります。そのため、配列を次のように構築しようとしました。

        match = "found"
        form_counter = 1
        i=0
        DIM pollanswer()
        do while match = "found"
        pollanswer(i) = lr_request_collection_dict("poll_answer" & form_counter)
            if pollanswer(i) = "" then
            match ="notfound"
            end if
        form_counter=form_counter+1
        i=i+1
        loop

コードの後半で、これらの値を取得してデータベースに挿入したいのですが、最初の値を単独で挿入し、残りをループする必要があるため、ここで行き詰まります。

thisQuery = "insert into survey_2_surveyquestionanswers (surveyquestionanswer_surveyquestionid, "&_
            "surveyquestionanswer_answer, surveyquestionanswer_answerlabel, surveyquestionanswer_order) "&_
            "select @@identity, "& SQLQuote(pollanswer(0)) &", "& SQLQuote(pollanswer(0)) &", 1 "&_
            icount = 1
            ecount = 2
            for each arrValue in pollanswer
            "union select @@identity, "& SQLQuote(pollanswer) &", "& SQLQuote(pollanswer) &", "& SQLInt(ecount)
            ecount=ecount+1
            next
            ";"
            set thisRS = dbAccessObj.DirectQuery("live", thisQuery)

どんな助けでも大歓迎です。

4

1 に答える 1

0

「for each」メソッドを使用して、最初のエントリを 2 回挿入しているようです。

インデックス付きのフォームを使用できます。

for a_index = 1 to Ubound(pollanswer)
    arrValue = pollanswer(a_index)
    ...
next

これは最初の配列要素を省略しています。

于 2012-05-16T14:34:31.030 に答える