Tải bản đầy đủ (.pdf) (26 trang)

Cẩm nang hướng dẫn sử dụng epidata

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.03 MB, 26 trang )






MỤC LỤC
Lời cám ơn 1
Phần 1 Giới thiệu về epidata 2
1. Giới thiệu về chương trình Epidata 2
2. Các bước tạo một form số liệu hoàn chỉnh 3
2.1. Khai báo bộ câu hỏi – Tạo tệp .qes 3
2.2. Tạo tệp dữ liệu - tạo tệp.rec 5
2.3. Thiết ràng ràng buộc số liệu – tạo tệp .chk 5
2.4. Nhập số liệu 7
2.5. Xuất tệp số
liệu
8
3. Ghép số liệu 10
4. So sánh số liệu nhập 2 lần 13
Phần 2: Các ví dụ về tạo form nhập số liệu 18
Ví dụ 1 18
Ví dụ 2: 19




1

Lời cám ơn

Chúng tôi xin chân thành bày tỏ lòng biết ơn chân thành và sâu sắc đến của CN Trần


Bình Thắng và CN Hoàng Đình Tuyên, là những người đã hộ trợ chúng tôi trong quá
trình thực hiện cuốn cẩm nang này.
Mặc dù đã rất cố gắn trong quá trình biên soạn nhưng không thể tránh được những
thiếu sót, chúng tôi mong nhận được những đóng góp, phê bình của các bạn đọc để hoàn
thiện cuốn cẩm nang này.
Mọi thắc mắc xin liên hệ qua địa chỉ Email:



2

Phần 1 Giới thiệu về epidata

1. Giới thiệu về chương trình Epidata
Khi mở chương trình Epidata, ta có một giao diện như hình trên.
Sự đặc biệt của chương trình nằm ở thanh công cụ phía dưới thanh thực đơn.
Đây là một tiến trình bao gồm 6 bước, và để có một bộ số liệu hoàn hảo, bạn sẽ đi
qua 6 bước này.

Sáu bước của tiến trình làm việc với Epidata gồm: định nghĩa dữ liệu (1.Define
Data), tạo tệp dữ liệu (2.Make Data File), thiết lập các kiểm tra lỗi số liệu (3.Checks),
nhập dữ liệu (4.Enter Data), tạo các báo cáo mô tả dữ liệu (5. Document), xuất tệp số liệu
sang các định dạng khác (6. Export Data).
Trong Epidata, chúng ta quan tâm đến 3 loại tập tin, luôn phải có, và khi chuyển
form nhập số liệu cho người nhập, ta phải chuyển đồng thời 3 tập tin này.
Tệp .QES (QUESTIONAIRE): được Epidata sử dụng để lưu trữ các dòng khai báo
bộ câu hỏi. Một bộ câu hỏi có nhiều câu hỏi và nhiều đáp án. Chúng ta viết lại các câu hỏi
và đáp án vào trong tệp .QES, theo cú pháp câu lệnh do Epidata quy định, làm cơ sở để
Epidata sinh ra tệp .REC theo mong muốn của người sử dụng, được gọi là khai báo bộ
câu hỏi.


Tệp .REC (RECORD): chứa số liệu do người nhập liệu nhập số liệu từ các bộ câu
hỏi vào form nhập liệu. Tệp .REC được sinh ra trên cơ sở nội dung của tệp .QES. Tệp
.REC là cơ sở để Epidata tạo ra form nhập số liệu khi nhập số liệu.
Tệp .CHK (CHECK): chứa các dòng lệnh khai báo các ràng buộc số liệu nhằm hạn
chế lỗi trong khi nhập số liệu.


3

Epidata hiểu được 6 loại biến như hình trên, và chúng ta sẽ tìm hiểu cấu trúc câu
lệnh thông qua một ví dụ ở phần 2.1.
2. Các bước tạo một form số liệu hoàn chỉnh
2.1. Khai báo bộ câu hỏi – Tạo tệp .qes
Đây là bước đầu tiên và là bước quan trọng nhất trong tiến trình 6 bước để tạo
form nhập số liệu
Để tạo tệp QES, trên cửa số chương trình Epidata đang mở, chọn 1.Define data và
chọn New .QES file trên thanh công cụ.
Dòng khai báo một trường số liệu trong tệp QES là cơ sở để Epidata sinh ra tên
trường, nhãn và kiểu dữ liệu của trường số liệu trong tệp dữ liệu.
Kiểu
biến
Text
Numeric
Soundex
Date
Logic
Auto ID
number



4


Ví dụ: khai báo những thông tin sau:
PHIẾU KIỂM TRA KAP CỦA NGƯỜI
CAO TUỔI VỀ TĂNG HUYẾT ÁP

Ngày điều tra ….tháng………năm 200………
Họ và tên:……………………Tuổi……Giới……Trình độ văn hóa………
Chiều cao: …………… Cân nặng ……………
Khai báo như sau:
Id ma so phieu @<IDNUM>  đánh mã số tự động
Date ngay dieu tra @<dd/mm/yyyy>  kiễu dữ liệu dạng
date
Name Ho va ten @<A >  dữ liệu kiểu Text,
dữ liệu nhập vào sẽ tự
động in hoa, độ rộng
phụ thuộc vào số lượng
ký tự trống
Age tuổi @##  dữ liệu Numeric, độ
trộng phụ thuộc vào ký
tự #
Sex Giới @<Y>  dữ liệu dạng
có/không, trong ví dụ
này, nam tương ứng với
Y, nữ tương ứng với N
Hv Trinh do van hoa @__________  dữ liệu kiểu text,
độ rộng phụ thuộc vào
số ký tự “_”

Cc chieu cao @##.#  dữ liệ dạng số, dấu
“.” Là dấu phập phân.
Cn can nang @##.#

Sau khi hoàn tất, ta tiến hành lưu tệp qes
Tên biến Nhãn biến
Chuỗi
định dạng




5


Lưu ý: khi bạn chỉnh sửa file qes sau khi đã tạo file rec, bạn phải tạo file rec mới, ghi đè
lên file cũ nếu bạn muốn, thì chỉnh sửa đó mới có hiệu lực.
2.2. Tạo tệp dữ liệu - tạo tệp.rec
Nếu chưa có tệp REC thì người sửa dụng vẫn chưa có tệp chứa số liệu để bắt đầu
công việc nhập liệu. Để sinh ra tệp REC từ một tệp QES, ta chọn “2. Make data file” trên
thanh công cụ và chọn “Make data file”, hộp thoại tạo tệp số liệu xuất hiện như sau:

Hộp thoại có hai mục là Name of .QES file và Name of data file, ta có thể nhấn nút
để chọn tệp QES và nhập tên tệp REC vào mục Name of data file rồi chọn OK để kết
thúc tạo tệp REC.
2.3. Thiết ràng ràng buộc số liệu – tạo tệp .chk
Epidata có chức năng checks để hạn chế . Để thực hiện điều này, ta vào 3. Checks.
Hộp thoại Select data file for checks xuất hiện yêu cầu
người
sử dụng chọn tệp

REC.
Ta chọn tệp REC mà ta muốn check, rồi nhấn open.

Hộp thoại có hình như sau:


6








Một số câu lệnh phổ biến sử dụng trong Epidata
1. BEFORE ENTRY/ AFTER ENTRY: Chạy câu lệnh trước/sau khi nhập giá trị vào biến.
Ví dụ: Before entry
Command
Command
End
2. CONFIRMFIELD: chỉ chuyển đến biến tiếp theo khi nhấn Enter
3. KEY UNIQUE: tạo trường khoá chính, giá trị trong biến này chỉ xuất hiện 1 lần, áp dụng
cho các biến ID
4. COMMENT LEGAL USE sử dụng nhãn cho biến
Ví dụ: COMMENT LEGAL USE bao
5. HIDE, UNHIDE ẩn/hiện 1 biến nào đó
Ví dụ: hide a1
Unhide a4
6. MUSTENTER / NOENTER bắt buộc nhập/không nhập 1 biến.

L

a ch

n trư

ng đ


thi
ế
t l

p
ràng buộc số liệu
Ch


nh

p s


li

u tho


mãn
điều kiện.

Ví dụ: range 1-3 chỉ nhập số
liệu trong khoảng 1-3.
Range 1,3: chỉ được nhập số
1 ho

c 3

T

o bư

c nh

y.

Ví dụ:tại biến a1, nếu ta
viết:
- 2>a5 – nhảy đến biến a5
- 3>write: nhập giá trị 3 thì
sẽ ghi bản ghi
B

t bu

c nh

p giá tr


L


p l

i giá tr


đ
ã
nhập ở bản ghi trước
Lưu l

i các thi
ế
t l

p

Đóng c

a s


Check

M


c

a s



câu l

nh c

a Epidata.

Trong cửa sổ này, ta có thể tạo ra các thiết lập trên thông qua các câu lệnh.
Chúng tôi sẽ giới thiệu một số câu lệnh phổ biến thường hay sử dụng. Các bạn
có thể thao khảo thêm tại epidata.dk.
Khai b
áo chú thích



7

7. TYPE COMMENT áp dụng trong biến có sử dụng nhãn, khi nhập giá trị vào, sẽ xuất hiện
nhãn của giá trị đó bên cạnh ô biến.
8. CLEAR: xoá giá trị trong 1 biến, thường được sử dụng kết hợp trong câu lệnh IF
Ví dụ: Clear a1
9. HELP: xuất hiện 1 thông báo khi không thoản mãn 1 điều kiện nào đó, thường sử dụng cùng
với câu lệnh IF
Ví dụ: help “chi bien a1 moi co the nhan gia tri 5, de nghi xem xet lai”
10. GOTO đến 1 biến nào đó khi thoản mãn 1 hay nhiều điều kiện, áp dụng trong câu lệnh IF
Ví dụ: goto a1
11. IF …THEN … ELSE … ENDIF
Ví dụ:
if (a1=1) or (a2=1)

then
help “2 bien a1 va a2 khong the dong thoi nhan gia tri 1”
goto a1
(clear a1) and (clear a2)
Endif
12. Ngoài các câu lệnh trên, Epidata còn hỗ trợ các biểu thức toán học như +, -, *, / và
các biểu thức quan hệ <, >, =, <>, <=, >=.
2.4. Nhập số liệu
Để nhập số liệu, ta nhấn vào 4. Enter Data. Chọn tệp dữ liệu ta muốn nhập, sau đó
bắt đầu nhập.





(1): bản ghi đang thao thác hiện tại, nếu New/1: đang nhập bản ghi mới
(2): tới bản ghi đầu tiên/cuối cùng
(1)

(3)

(2)

(3)

(2)

(4)

(5)




8

(3): tới bản ghi trước/sau
(4): tạo bản ghi mới
(5): xoá 1 bản ghi
Khi nhập đến cuối form, thông báo sau xuất hiện:

Đây là thông báo bản ghi (phiếu) bạn đang nhập sẽ được lưu lại. Nhấn Yes nếu bạn
đã hoàn thành phiếu, No nếu bạn muốn sửa lại bản ghi đang nhập.
Lưu ý: khi xoá một bản ghi trong Epidata, bản ghi đó không mất đi, tuy nhiên, trong quá
trính xuất dữ liệu, nó sẽ bị giữ lại.
Epidata tự động lưu số liệu khi bạn nhập xong một bản ghi. Nếu chương trình bị tắt
độ xuất do một lý do nào đó thì số liệu đã nhập không bị mất đi, chỉ mất đi phiếu đang
nhập mà chưa lưu lại.
2.5. Xuất tệp số
liệu

Sử dụng chức năng xuất tệp số liệu của Epidata, chúng ta có thể xuất ra một
tệp
số liệu có định dạng khác như Spss, Stata, Excel…

Chọn tệp số liệu
REC


Chọn Export Data trên thanh công cụ và chọn kiểu định dạng số liệu đầu ra.
Nếu

số
liệu đầu ra mong muốn có định dạng của SPSS, ta chọn Export Data và chọn
SPSS.
Khi hộp thoại Open xuất hiện cần chọn tệp dữ liệu REC và chọn
Open.





9


Chọn các tham số tùy chọn và xuất tệp số
liệu


Khi tệp REC đã được mở, hộp thoại Export Data xuất hiện. Việc tiếp theo là chọn
các
tham số tùy chọn và nhấn OK để thực hiện xuất tệp số
liệu.




Chú ý: Hộp thoại Export Data có các tham số có ý nghĩa như
sau:

All records: Xuất tất cả các bản ghi của tệp dữ liệu.



10

From record # to # : Chỉ xuất các bản ghi từ số # đến số #Select fields: cho phép
chọn các trường dữ liệu sẽ xuất hiện ở tệp đầu ra (trường được tích trong danh sách sẽ
xuất hiện trong tệp đầu ra)
Lưu ý: nếu các bạn chọn kiểu xuất dữ liệu là Spss, chương trình sẽ xuất ra 2 file, gồm 1
file .sas và file .not. Sau đó, bạn sử dụng chương trình Spss để chạy file .sas, nhấn tổ hợp
phím Ctrl + a, sau đó, trên thanh menu, chọn Run/All. Số liệu của các bạn nhập ở Epidata
sẽ xuất hiện ở 1 dataset mới.

3. Ghép số liệu
Trong cửa sổ của Epidata, chọn Data in/out, chọn Append/Merge

Hộp thoại Append/Merge xuất hiện


Chọn các tệp số liệu thành
phần

Trên cửa sổ Append/Merge data files, kích nút lệnh chọn các tệp số liệu cần
ghép thứ
nhất và thứ hai và chọn OK, hộp thoại Append/Merge xuất hiện sau đó, như
hình
dưới
đây:



11




Chọn phương thức ghép tệp và kết thúc ghép
tệp
Tùy theo yêu cầu ghép tệp số liệu mà ta có thể chọn phương thức ghép tương
ứng

Append hay
Merge.

Ghép tệp theo phương thức Append: các tham số cần được thiết lập
gồm:

Resulting data file: tên tệp kết quả sẽ được tạo
ra

Thẻ Append: thẻ Append được chọn để thiết lạp tham số ghép
tệp

“Append only data from fields in data file B that also exists in data file A”
chỉ
định các trường của tệp kết quả chỉ gồm các trường của tệp A (tệp thứ
nhất).

“Append all fields in data file B” chỉ định tệp kết quả có số trường là
số
trường
của cả hai tệp thành phần hợp
lại.


Các tùy chọn được thiết lập sẽ quy định kết quả tệp ghép được sinh ra. Chẳng hạn,
ta
muốn ghép hai tệp women.rec (tệp A) trong thư mục khamthai và tệp women.rec
(tệp
B) trong thư mục khác (thư mục khamthai\test1) theo phương thức Append. Yêu
cầu
ghép tệp là chỉ ghép những số liệu tồn tại trong các trường của tệp A mà tồn tại
trong
tệp
B. Các tham số tùy chọn có hình ảnh như
sau:




12



Sau khi thiết lập được các tham số cho phương thức ghép tệp, ta chọn nút
lệnh
Append để kết thúc việc ghép
tệp.

Chú ý: Sau khi chọn Append, Epidata sẽ hỏi đặt nhãn chú thích cho tệp ghép,
ta

thể chọn OK để bỏ qua việc đặt nhãn
tệp.


Ghép tệp theo phương thức Merge: ghép tệp theo phương thức Merge được thực
hiện
tương tự như với ghép tệp theo phương thức Append. Sự khác biệt chỉ là các tham
số
tùy
chọn được thiết lập, các tham số tùy chọn như
sau:

Nếu để chọn phương thức ghép tệp là Append, ta phải chọn thẻ Append
trên

hộp thoại thì với ghép tệp theo phương thức Merge, chọn thẻ Merge trên
hộp thoại.

Select key fields: cho phép chọn trường khóa được sử dụng làm căn cứ để
hợp

nhất hai tệp. Trường khóa được chọn cho ghép tệp phải là một trường
đồng
thời có
trong cả hai tệp thứ nhất (tệp A) và tệp thứ hai (tệp
B).

Merge only record from data file B that match records in data file A: yêu
cầu
số
liệu tệp được ghép sẽ gồm toàn bộ các bản ghi của tệp A ghép thêm số
liệu
trong tệp B

có giá trị trường khóa tương
ứng.

Merge all records from data file B: yêu cầu các bản ghi trong tệp ghép
bằng
các
bản ghi hai tệp thành phần hợp
lại.



13

Chọn nút lệnh Merge để thực hiện ghép tệp là thao tác cuối cùng sau khi các
tham
số
tùy chọn đã được thiết lập. Hình ảnh dưới đây là ví dụ của việc ghép hai tệp
số
liệu
theo phương thức Merge với trường khóa được chỉ định là Personid (mã cá
nhân).


4. So sánh số liệu nhập 2 lần
Sai số có thể xảy ra ở bất cứ giai đoạn nào trong nghiên cứu. Do đó, để có thể hạn
chế sai số xảy ra trong quá trình nhập số liệu, ta sẽ nhập số liệu đó 2 lần với 2 nhóm nhập
khác nhau, sau đó, sẽ so sánh sự giống nhau của 2 bộ số liệu này, từ đó, tìm ra sự khác
biệt nếu có, để chỉnh sửa lại số liệu cho chính xác.
Sau đây, chúng tôi sẽ giới thiệu đến các bạn các tiến hành trên Epidata.
Đầu tiên, chọn 5.Document, sau đó, ta chọn Validate duplicate files.

Hộp thoại sau xuất hiện, ta lần lượt chọn 2 file số liệu mà ta muốn kiểm tra vào 2 ô
Name of first data file và Name of second data file.


14


Sau khi đã chọn xong, ta nhấn OK. Hộp thoại sau xuất hiện

Ở hộp thoại này, ta có thể biết được số bản ghi của 2 bộ số liệu tại dòng No. of
records. Tại ô Select key fields, ta sẽ chọn biến được đặt khoá chính, thông thường, đó là
biến ID.
Tại ô Options, cung cấp cho ta một số tuỳ chọn nâng cao. Ví dụ, bỏ qua các bản
ghi đã xoá ( Ignore deleted records), bỏ qua các trường kiểu text (Ignore text fields), …
Sau khi đã thiết lập xong các tuỳ chọn thích hợp, nhấn OK.
Báo cáo của Epidata với 2 bộ số liệu trên như sau:
VALIDATE DUPLICATE DATA FILES REPORT


15

====================================
Report generated 18. Feb 2012 4:01 PM


Data file 1:

File name: D:\so lieu\form 1.rec
File label:
File date: 18. Feb 2012 4:00 PM

Records total:713


Data file 2

File name: D:\so lieu\form 1 1.rec
File label:
File date: 18. Feb 2012 4:01 PM
Records total:713


Options for validation:
Ignore deleted records: Yes
Ignore text fields: No
Ignore letter-case in text fields: No
Report differences in field types: No
Ignore missing records in data file 2 No

Fields in both data files that were used in the validation:
IDHOLD,PROVINCE,DISTRICT,COMMUNE,SAMPLE,NUMSAMP,NAMEHOLD,ADDRESS,
……

Fields excluded from data file 1:
None

Fields excluded from data file 2:
None

Fields used as index keys:
IDHOLD



RESULTS OF VALIDATION: 
Báo cáo kết quả kiểm tra


Records missing in data file 1: 0
Records missing in data file 2: 0

Number of common records found: 713
Number of fields checked per record: 274
Total number of fields checked: 195362

2 out of 713 records had errors ( 0.28 pct.)
5 out of 195362 fields had errors ( 0.00 pct.)



DATA FILE 1 | DATA FILE 2

Record key field(s): (Rec. # 16) | Record # 16
idhold = 67007002 |
|
Báo cáo v


s





ng b

n
ghi, thời gian tiến hành
kiểm tra và tên file được
kiểm tra
Các tu


ch

n đã đư

c
chọn


16

eco35 = 2 | eco35 = 1
eco36 = 2 | eco36 = 1
eco37 = 2 | eco37 = 1
eco38 = 2 | eco38 = 1

Record key field(s): (Rec. # 33) | Record # 33
idhold = 67007106 |
|
eco47 = 2 | eco47 = 1


Theo báo cáo trên, 2 số liệu này giống nhau về số lượng bản ghi, nhưng có sự khác
nhau về giá trị của biến. Cụ thể, có sự khác nhau về các biến ở bản ghi (record) thứ 16 và
33. Tỷ lệ khác biệt là 0,28% nếu tính theo tổng số bản ghi, là gần bằng 0,0% nếu tính theo
số biến
5. Hướng dẫn sử dụng StatTransfer
Chương trình StatTransfer hỗ trợ việc chuyển đổi qua lại các định dạng file số liệu
của các chương trình quản lý và sử lý số liệu khác nhau, ví dụ .sav, .rec, .xls, .xlsx, .dta,…
Chương trình có giao diện đơn giản, dễ sử dụng, hỗ trợ nhiều định dạng khác nhau.
Nhược điểm duy nhất của chương trình khi chuyển số liệu từ Epidata sang spss đó
là các biến sẽ bị mất các label.

Khởi động chương trình, giao diện xuất hiện đầu tiên cũng là nơi thực hiện chuyển
đổi định dạng số liệu.
Tại ô input file type, ta chọn định dạng của số liệu muốn chuyển đổi bằng cách
chọn vào mũi tên bên cạnh.


17

Tại ô file specification, nhấn Browse để chọn file số liệu muốn chuyển đổi.
Tương tự, tại ô output file type, ta chọn định dạng của số liệu muốn xuất ra.
Tại ô file specification, nhấn Browse để chọn nơi lưu số liệu xuất ra.
Sau khi đã thiết lập xong các tuỳ chọn trên, nhấn Transfer để thực hiện quá trình,
và để chuyển đổi 1 bộ số liệu khác với các tuỳ chọn khác, các bạn nhấn Reset.
Ngoài ra, tại tab Variables, các bạn có thể chọn những biến nào đươc xuất ra,
nhưng biến nào được giữ lại, và còn nhiều tiện ích khác ở các tab tiếp theo đang chờ bạn
khám phá.
Lưu ý: khi chuyển file từ Epidata sang Spss, các bạn chọn kiểu file trong chương
trình là Epi Info.




18

Phần 2: Các ví dụ về tạo form nhập số liệu
Ví dụ 1

Mã số phiếu
Họ và tên: …………………………. Năm sinh: …………….
Địa chỉ: ……………………………………………………….
Chiều cao Vòng ngực
Cân n

ng

Huy
ế
t áp /

Vòng bụng G
0

Vòng cánh tay G
1



Hãy tạo form và tạo file check với yêu cầu sau:
1. Tạo trường khoá chính cho biến ID
2. Tính chỉ số BMI, phân loại BMI, phân nhóm HA.

Gợi ý
Ta có thể tạo form như sau:
Id Ma so phieu @###
Hvt Ho va ten @_____________________________
Year Nam sinh @####
Dc Dia chi @____________________________
Cc Chieu cao @#.## m
Cn Can nang @##.# Kg
Bmi Chi so BMI @##.#
pnBMI Phan nhom BMI @#
vb Vong bung @### cm
Vct Vong canh tay @### cm
Vn Vong nguc @### cm
Hatt HA tam thu @##.##
Hattr HA tam truong @##.##
pnHA Phan nhom HA @#
Go Go @#.##
G1 G1 @#.##

Bạn áp dụng công thức tính BMI và cách phân loại BMI, phân loại THA của
WHO.


19

Giợi ý này chỉ thực hiện phân nhóm BMI. Code thực hiện như sau:
cc
AFTER ENTRY
HIDE bmi
HIDE nhom

BMI=Cn/Cc^2
IF (bmi<=18.49) THEN
nhom=1
ELSE
IF (bmi>18.5) and (bmi<=24.99) THEN
nhom=2
ELSE
IF (bmi>25) THEN
nhom=3
ENDIF
ENDIF
ENDIF
END
END

Ví dụ 2:

Mã số phiếu: ………………
Bạn thích đọc báo nào nhất? (nhiều lựa chọn)
1. Thanh niên
2. Tuổi trẻ
3. Người lao động
4. Bóng đá
5. Tuổi trẻ cười
6. Hoa học trò
7. Không loại nào
8. Khác, …………………
Giới tính của bạn: 1. Nam 2. Nữ

Bạn có bao nhiêu cách để tạo form nhập số liệu cho những câu hỏi trên?

Gợi ý:
Cách 1: ở cách này, ta sẽ tạo form như sau:
ID ma so phieu @##
Bao1 ban thich doc bao nao nhat @#
Bao2 ban thich doc bao nao nhat @#
Bao3 ban thich doc bao nao nhat @#
Bao4 ban thich doc bao nao nhat @#
Bao5 ban thich doc bao nao nhat @#
Bao6 ban thich doc bao nao nhat @#


20

Bao7 ban thich doc bao nao nhat @#
Bao71 ___________________________________
Sex gioi tinh @#
Với cách tạo form như trên, ta sẽ nhập lần lượt số thứ tự các câu trả lời được chọn
vào các biến bao1, bao2, …
Tuy nhiên, có một số vấn đề đặt ra như sau:
1. Nếu người trả lời chọn câu 7, chuyển ngay đến câu giới tính. Tuy nhiên, có thể do
sai số trong quá trình thu tập số liệu, trong phiếu có thể đánh vào các câu 1,2, 3, … và
đồng thời đánh vào câu 7. Với trường hợp này, phiếu này không hợp lệ, cần phải xem xét
lại. Do đó, ta cần phải thông báo cho người nhập biết rằng chỉ có biến bao1 mới có thể
nhập số 7.
2. Biến bao71 chỉ có thể nhập khi số 8 được nhập vào ở bất kỳ biến nào trong các
biến bao1 đến bao6.
3. Phải thông báo cho người nhập biết khi có 2 biến được nhập cùng 1 giá trị.
Code như sau:
LABELBLOCK
LABEL bao

1 "thanh nien"
2 "tuoi tre"
3 "nguoi lao dong"
4 "bong da"
5 "tuoi tre cuoi"
6 "hoa hoc tro"
7 khong
8 khac
9 "khong tra loi"
END
END

id
KEY UNIQUE 1
MUSTENTER
END

bao1
COMMENT LEGAL USE bao
JUMPS RESET "9"
7 bao71
9 bao71
END
MUSTENTER
TYPE COMMENT
END

-
T


i bi
ế
n bao1. Bi
ế
n này nh

n đ


t

t c


các giá
trị từ 1 đến 8 và là biến duy nhất nhận giá trị 7.
- Kể từ biến bao2 đến bao7, ta phải kiểm tra xem
giá trị nhập vào có bị trùng với giá trị đã nhập ở các
biến trên không. Tiếp theo, ta phải kiểm tra giá trị 7 có
được nhập vào các biến này hay không. Và thông báo
đến người nhập những lỗi này. Chúng tôi chỉ thực
hiện với biến bao2, bao3 và bao7.
- Khi tạo bước nhảy chúng tôi có thêm lệnh
RESET 9. Lệnh này có tác dụng điền vào các biến
trống giữa 2 khoảng nhảy 1 giá trị định sẵn. Nhưng
bước nhảy chỉ nhảy đến bao71.
- Tại biến bao71, chúng tôi sử dụng lệnh IF với
yêu câu chỉ nhập biến này khi có ít nhất 1 trong các
biến bao1, bao2,… có nhận giá trị 8. Câu lệnh này có
thể áp dụng rộng rãi trong các trường hợp khác nhau.

- Dấu “.” thể hiện giá trị rỗng.


21

bao2
COMMENT LEGAL USE bao
JUMPS RESET "9"
9 bao71
END
MUSTENTER
TYPE COMMENT
AFTER ENTRY
IF bao1 = bao2 THEN
HELP "trung so lieu"
GOTO bao2
ENDIF
IF bao2 = 7 THEN
HELP "gia tri 7 chi duoc nhap o bien bao1"
GOTO bao1
ENDIF
END
END

bao3
COMMENT LEGAL USE bao
JUMPS RESET "9"
9 bao71
END
MUSTENTER

TYPE COMMENT
AFTER ENTRY
IF (bao1 = bao3) or (bao2 = bao3) THEN
HELP "trung so lieu"
GOTO bao3
ENDIF
IF bao3 = 7 THEN
HELP "gia tri 7 chi duoc nhap o bien bao1"
GOTO bao1
ENDIF
END
END

bao7
COMMENT LEGAL USE bao
JUMPS RESET "9"
9 bao71
END
MUSTENTER
TYPE COMMENT
AFTER ENTRY
IF (bao1 = bao7) or (bao2 = bao7) or (bao3 = bao7) or (bao4 = bao7)
or (bao5 = bao7) or (bao6 = bao7) THEN
HELP "trung so lieu"
GOTO bao7


22

ENDIF

IF bao7 = 7 THEN
HELP "gia tri 7 chi duoc nhap o bien bao1"
GOTO bao1
ENDIF
END
END

bao71
BEFORE ENTRY
IF (bao1 <>8) and (bao2 <>8) and (bao3 <>8) and (bao4 <>8) and
(bao5 <>8) and (bao6 <>8) and (bao7 <>8) THEN
bao71=.
GOTO sex
ENDIF
END
END


Cách 2: ở cách nhập số liệu này, ta nhập số thứ tự của câu trả lời vào 1 biển phụ,
biến phụ này sẽ tự động điền giá trị vào biến chính.

ID ma so phieu @##
Bao ban thich doc bao nao nhat @#
Bao1 thanh nien @#
Bao2 tuoi tre @#
Bao3 nguoi lao dong @#
Bao4 bong da @#
Bao5 tuoi tre cuoi @#
Bao6 hoa hoc tro @#
Bao7 khong @#

Bao8 Khac @#
Bao81 @_______________________________
Sex gioi tinh @#

Ta tiến hành như sau:
bao
RANGE 1 9
JUMPS
9 sex
END
AFTER ENTRY




23

IF bao=1 THEN IF bao1=1 THEN CLEAR bao1 ELSE bao1=1 ENDIF
ENDIF




IF bao=2 THEN IF bao2=1 THEN CLEAR bao2 ELSE bao2=1 ENDIF
ENDIF
…………………… …………………… ……………………
IF bao=8 THEN IF bao8=1 THEN CLEAR bao8 ELSE bao8=1 ENDIF
ENDIF
IF bao=9 THEN GOTO bao81 ELSE GOTO bao ENDIF





CLEAR bao
END
END

bao81
BEFORE ENTRY
IF bao8=. THEN
GOTO sex
ENDIF
END
END
Nếu cần thiết, bạn có thể thêm nhóm câu lệnh sau vào biến ID để hạn chế sai sót
trong quá trình nhập số liệu.
HIDE bao1
HIDE bao2
HIDE bao3
HIDE bao4
HIDE bao5
HIDE bao6
HIDE bao7
HIDE bao8
T

i bi
ế
n bao81, n
ế

u bi
ế
n bao8
nhận giá trị trống (.) thì sẽ nhảy
đến biến sex, nếu ngược lại thì
nhập báo khác vào.
Chú thích:

n
ế
u bao=1 thì n
ế
u bi
ế
n báo 1 đã nh

n giá tr


1 thì

xoá giá tr


1 đó, n
ế
u
chưa nhận giá trị 1, thì biến bao1 nhận giá trị 1.

Chú thích


n
ế
u bao=
9

thì
t

c là không còn câu tr


l

i nào khác, ho

c không tr


l

i thì
đến biến bao81, nếu không thì quay lại biến bao

×