1/ Trong Access tạo một tập tin Database tên delete.mdb lưu vào thư mục Delete trên Desktop (hoặc bất kỳ nơi nào bạn thích) chứa 2 bảng tblMovie và tblMovieCast có các trường như bên dưới
5/ Hãy chép thư mục Delete trên Desktop vào thư mục wwwroot trên Local Web Server (D:\InetPub\wwwroot\Delete)
6/ Cấu hình Dreamweaver MX 2004 như sau:
Vào Site->Manage Site->Click New->Site để tạo một Site mới. Chọn tab Advanced, trong mục Local Info tại Site Name nhập vào tên Website, tại Local Root Folder click nút Browse đến thư mục Delete trên Desktop.
Trong mục Remote Info chọn phương pháp truy cập tại Access, tại Remote Folder click nút Browse tới thư mục delete trên máy chủ
Trong mục Testing Server hãy khai báo Server kiểm tra như sau: chọn Server Mode là ASP VBScript, phương pháp truy cập là Local/Network, Testing Server Folder là thư mục Delete trên máy chủ Local Webserver, URL Prefix là địa chỉ dùng để kiểm tra chương trình (chú ý bạn phải khai báo thư mục ảo tên delete trong IIS)
7/ Trong Local Site bạn hãy tạo một trang movies.asp như sau:
8/ Mở trang movies.asp sau đó hãy chọn tab Form sau đó click nút Form để chèn vào một biểu mẫu. Trong biểu mẫu này hãy chèn một bảng 2 dòng 2 cột và chèn một nút Submit để xác nhận xóa như bên dưới
9/ Trong panel Application chọn tab Database , click nút + chọn Data Source Name (DSN) , tại Connection name nhập vào tên kết nối, tại Data source name (DSN) chọn delete từ danh sách (nếu bạn chưa khai báo DSN delete trong ODBC thì hãy click nút Define để định nghĩa DSN đến tập tin delete.mdb trong D:\inetpub\wwwroot\delete\delete.mdb)
Click nút Test để kiểm tra nếu gặp thông báo thành công là đã khai báo thành công. Click OK để đóng cửa sổ bạn sẽ thấy một Database tên delRecord, hãy click nút + sau đó click phải chuột vào Table tblMovie chọn View Data để xem thử dữ liệu
10/ Chọn tab Bindings , click + chọn Recordset(Query) để xuất dữ liệu vào table như sau:
Bạn có thể chuyển sang chế độ Recordset nâng cao để xem các lệng truy vấn
Sau khi tạo xong Recordset trong tab Bindings bạn sẽ thấy xuất hiện như sau:
11/ Hãy Bind trường dữ liệu Movie trong Recordset vào Cell 2 dòng 2 như sau:
12/ Hãy chèn một Checkbox tại cell 1 dòng 2 sau đó chọn checkbox trên hộp Properties định nghĩa như sau:
Đây là đoạn code của cell 1 dòng 2 và cell 2 dòng 2 như sau:
13/ Tạo một vùng lặp lại (Repeat Region) để xuất dữ liệu như sau: hãy đánh dấu chọn dòng 2 (dòng chứa checkbox và trường dữ liệu động) sau đó vào tab Server Behaviors , click + chọn Repeat Region, trong cửa sổ Repeat Region hãy chọn All records
14/ Hãy chèn một trường ẩn (Hidden Field) kế nút Submit như sau:
15/ Chuyển sang chế độ Code sau đó Copy đoạn code sau đây vào sau dòng
undefined undefined undefined undefined undefined undefined
undefined
undefined undefined undefined undefined undefined undefined undefinednhư sau:
|
<%
If Request.Form("Process")="True" Then
'First check for a selection
If Request.Form("cSelect")="" Then
Response.Redirect "movies.asp"
End If
'Proceed with delete
Dim sDelete
sDelete = Replace(Request.Form, "&cSelect=", ",")
sDelete = Replace(sDelete, "cSelect=", "")
sDelete = Left(sDelete, Len(sDelete)-13)
'First delete records from cast table
Call sDeleteRecords("DELETE FROM tblMovieCast WHERE MovieID IN (" & sDelete & ")")
'Finally, delete records from main movie table
Call sDeleteRecords("DELETE FROM tblMovie WHERE MovieID IN (" & sDelete & ")")
Response.Redirect("movies.asp")
End If
%>
<%
Sub sDeleteRecords(vSql)
set cDelete = Server.CreateObject("ADODB.Command")
cDelete.ActiveConnection = MM_delRecord_STRING
cDelete.CommandText=vSql
cDelete.CommandType = 1
cDelete.CommandTimeout = 0
cDelete.Prepared = true
cDelete.Execute()
End Sub
%>
|
-
Bạn phải thay thế MM_delRecord_STRING theo đúng tên chuổi kết nối đến Database của bạn trong tập tin kết nối.
-
Chú ý là chúng ta gọi hàm xóa dữ liệu trong table tblMovieCast trước sau đó mới xóa dữ liệu trong table chính tblMovie. Nếu sau này bạn muốn xóa các table khách thì bạn phải xửa lại tên của các table này và điều kiện khóa chính MovieID trong mệnh đề WHERE.
-
Đầu tiên chúng ta dùng mệnh đề If để kiểm tra xem Form có được Submit hay không với cú pháp như sau
<%
If Request.Form("Process")="True" Then
.......
End If
%>
Nếu Form được xác nhận thì sau đó chúng ta kiểm tra tiếp
If Request.Form("Process")="True" Then
....xem checkbox xác nhận xóa có được chọn hay không
'First check for a selection
If Request.Form("cSelect")="" Then
Response.Redirect "movies.asp"
End If
Giả sử người sử dụng chọn một vài checkbox để xóa, bây giờ chúng ta sẽ xây dựng một hàm chính dùng để làm công việc xóa các mẫu tin trong các table . Đầu tiên chúng ta cần một biến để sử dụng trong câu truy vấn SQL, bạn hãy nhập đoạn code sau đây…
'Proceed with delete
Dim sDelete
sDelete = Replace(Request.Form, "&cSelect=", ",")
sDelete = Replace(sDelete, "cSelect=", "")
sDelete = Left(sDelete, Len(sDelete)-13)
Chúng ta sẽ tạo ra một biến tên sDelete bằng chức năng của hàm Replace Chúng ta sẽ chộp lấy các checkboxes được chọn và đặt chúng vào trong biến này sau đó bỏ thông số tên chỉ để lại các giá trị.
-
Chú ý là chúng ta có một biến ẩn tên Process sẽ được chuyển qua địa chỉ URL như sau ?Process=True . Tổng chiều dài của chuổi này là 13 ký tự do đó chúng ta sẽ dùng hàm Left để loại bỏ 13 ký tự này ra.
-
Bây giờ chúng ta sẽ sử dụng đối tượng Command để xóa các Record đã chọn. Để làm được điều này đơn giản là chúng ta sẽ sử dụng lệnh IN trong truy vấn SQL.
15/ File -> Save. Sau đó Upload trang này lên máy chủ. Nhấn F12 để kiểm tra xem thử có xóa được các mẫu tin hay không ?
Bạn cũng có thể sử dụng chức năng phân trang để giới hạn số mẫu tin mỗi lần xuất như sau: