本文介紹一個用 ASP 技術實現的 WEB 調查系統（也稱為投票系統）的實現，該系統支援基於瀏覽器的調查項目建立與維護、調查表單的動態產生以及投票結果分析。
本文所介紹的 WEB 調查系統（或稱為投票系統）支援基於瀏覽器的調查項目建立、管理與結果分析。調查項目及其下屬各個問題的定義、使用者投票結果儲存於 Access 資料庫，調查表單由指令碼動態產生。使用者通過選項按鈕或複選框回答問題，表單提交之後伺服器在同一個資料庫中記錄調查結果。通過 WEB 調查系統的分析模組，使用者可以立即獲知任意調查項目的投票結果。
從功能上看，整個系統可以分成四個部分，分別對應於圖 1 到圖 4 四個頁面。其中圖 1 和圖 2 是系統的維護介面。圖 1 所示的頁面用於建立調查項目、刪除調查項目或其投票結果，以及指定調查項目名字和使用者密碼訪問圖 2 所示的調查項目編輯器。
圖 2 所示頁面用於編輯指定調查項目所屬各個問題，直接提供的功能包括建立新問題、刪除問題、更改問題的提示文本以及瀏覽問題等，綜合運用上述功能可以重新定義問題類型。本系統支援 5 種問題類型：是 / 否（即只需回答“是”或“否”的問題），贊同程度（系統為這類問題預定義從“強烈反對”到“完全贊同”共 5 個等級的答案）、自訂語義的等級區分（預定義 7 個等級的答案，但具體含義由使用者定義），自訂提示文本的多個選項（選項數量以及各個選項提示文本均由使用者指定，每個問題只能選擇一個答案），允許複選的多個選項（選項數量以及各個選項提示文本也由使用者指定，允許選擇多個答案），後面兩種問題類型允許最多 26 個選項。圖 2 中間（底部提示行的上面）所顯示的即為第 4 種問題類型（多個選項）的編輯介面。
圖 3 是 WEB 使用者所見到的調查表單。圖中顯示的 4 個問題依次對應於前面 1 — 4 種問題類型，第 5 種問題類型（允許複選）要求用複選框回答問題，圖中沒有顯示出來。使用者在選擇結束後只要單擊頁面底部的“提交”按鈕即可。
圖 4 是投票結果的統計分析頁面。
Access 資料庫 Poll.mdb 的 ODBC 系統 DSN 名為“ POLL ”。每一個調查項目都需要下表所定義的三個表，它們在建立新的調查項目時由 ASP 指令碼自動建立，其維護工作也可以通過瀏覽器進行。這三個表的名字分別以 S_ 、 A_ 、和 R_ 為首碼，後面加上調查項目的名字，分別用來儲存調查項目的問題和問題標識（ Stem ）、答案類型（ Answer ）、使用者回答（ Response ）。
Startup.html 負責產生系統維護頁面的幀結構； PollMaker.asp 負責產生圖 1 頁面並支援從該頁面啟動的其它操作（調查項目的建立、刪除、投票結果清除等）； ItemMaker.asp 負責產生圖 2 頁面，支援調查項目所屬問題的定義、編輯、刪除。調查表單（圖 3 ）由 PollWriter.asp 產生，投票結果的分析（圖 4 ）由 PollResult.asp 實現。整個調查系統的工作以資料庫為中心： PollMaker.asp 和 ItemMaker.asp 需要建立、刪除、修改 poll.mdb 中定義調查項目的各個表； PollWriter.asp 從 S_ 和 A_ 表產生調查表單；當使用者提交調查表單時 PollMaker.asp 中的一個函數將投票結果寫入對應的 R_ 表； PollResult.asp 聯合 S_ 表和 A_ 表中的文本資料以及 R_ 表中的投票結果，產生當前調查項目的結果統計圖表。
在正確安裝 WEB 調查系統之後（請參見本文所附原始碼中的安裝說明），就可以用瀏覽器開啟 Startup.html ，出現圖 1 所示的身分識別驗證頁面。下拉式清單方塊列出了當前在 Poll.mdb 中定義的所有調查項目。如果要建立一個新的調查項目，必須先在列表框中選擇“ NEW POLL ”，然後在列表框的右邊輸入新調查項目的名字，在密碼輸入框輸入密碼（預設為“ WEBPOLL ”，大小寫均可），最後單擊“建立 / 編輯調查項目”按鈕。要刪除某個調查項目已有的結果記錄，或將調查結果與調查項目本身一起刪除，分別使用“刪除調查結果”或“刪除當前調查項目”按鈕。
建立或編輯調查項目所屬的問題都在圖 2 所示的頁面進行。在建立一個新的問題之前，先應該選擇合適的問題類型（頁面上端的選項按鈕）；對於“多個選項”或“允許複選”這兩種問題類型，還必須指定所提供選項的數量；如果選中了“允許不回答”複選框，則除了“允許複選”之外的所有其它類型問題都將附加一個“暫不回答”選項（選項按鈕）。在做好上面這些選擇之後，單擊“建立”按鈕就會出現一個空白的問題定義表單。接下來就可以輸入問題提示文本，如必要的話再輸入答案中的提示文本，文本中可以嵌入 HTML 標籤。如果要改變問題的類型或答案數量，則需先刪除原有的問題定義，然後再建立問題。所有的建立和編輯工作都在用戶端進行，可以用“儲存”按鈕將這些修改儲存到伺服器上的 Poll.mdb 資料庫。
圖 2 中的問題瀏覽按鈕用來查看當前調查項目中的各個問題，在“轉到指定問題 - 〉”按鈕後面輸入問題序號，然後單擊按鈕即可顯示對應的問題。新定義的問題總是加入到調查項目的最後。如果要將它放到另外一個位置，只要在“移到該問題後面”按鈕後輸入合適數值並單擊該按鈕，輸入數值 0 可以將問題移到最前面。