Hiện tượng kì lạ trong access 2003

  • Thread starter hieu71219841
  • Ngày gửi
H

hieu71219841

Guest
22/11/08
12
0
0
41
tiengiang
- Ở bài post trước mình có hỏi các bạn về việc khi tạo report thì nó tự động sắp theo khoá chính mặc dù mình không chọn cho nó sắp theo Fied nào cả , khi mình hỏi cách làm cho nó không sắp xếp, đánh thế nào thì giữ nguyên như vậy, thì nhận được cùng một câu trả lời tại diễn đàn Webketoan và diendantinhoc là No ! Mình như tuyệt vọng vì nếu nó xắp xếp sẽ làm đảo lộn mọi dữ liệu trong phần mềm của mình đã được trình bài theo ý đồ riêng.
- Nhưng gần đây mình phát hiện một điều thú vị trong access 2003 là khi số Record ít hơn một số nào đó (khoảng <20 tuỳ trường hợp) hoặc lớn hơn một số nào đó (>500 tuỳ trường hợp) thì report được tạo ra sẽ không bị sắp xếp !
- Điều này làm mình nảy ra một phương pháp dỡ hơi là kiếm đại một nguồn dữ liệu không liên quan patse vào để cho đủ số lượng, cách này tạm giải quyết được nhưng chẳng ra làm sao !
- Rất mong những bạn nào đã nghiên cứu về open Office cho mình biết tại sao có hiện tượng như vậy và cách giải quyết triệt để ! Cám ơn các bạn rất nhiều ! (NGUYEN TRONG HIEU SO GTVT TIEN GIANG rat vui được các bạn chỉ dạy)
 
Khóa học Quản trị dòng tiền
paulsteigel

paulsteigel

Trung cấp
13/11/05
103
0
16
50
Hoà Bình
www.sfdp.net
Xin tạm trả lời bạn thế này nhé!
1. Về chủ đề sắp xếp trong báo cáo của Access:
Access làm việc ta bảo nó làm vì thế việc sắp xếp hay không sắp xếp là do ta đặt ra.
Không có việc Access tự động sắp xếp dữ liệu theo khoá chính, điều này tôi phải khẳng định là như vậy. Có chăng là bạn có lỗi khi thiết kế báo cáo đã:
+ Yêu cầu Access sắp xếp hoặc;
+ Câu lệnh truy vấn có lệnh sắp xếp;

2. Để giải quyết các việc này mà không cần bàn cãi nhiều về vấn đề sắp xếp,
bạn có thể thực hiện bằng cách sau:
* Chèn thêm vào thiết kế bảng một trường tên nào đó như SortOrder. Đặt kiểu trường là AutoNumber.
* Thiết kế truy vấn với cú pháp Order By SortOrder hoặc yêu cầu Access sắp xếp trong báo cáo theo trường này nếu nguồn dữ liệu báo cáo là bảng.
* Loại bỏ các yếu tố sắp xếp khác là xong.
Tạm thời như vậy. Nếu bạn vẫn thấy còn vấn đề, xin gửi mail cho tôi [[ngocdd@sfdp.net]] hoặc tiếp tục bàn luận tại đây!
Nay kính thư!
 
H

hieu71219841

Guest
22/11/08
12
0
0
41
tiengiang
Cám ơn bạn rất nhiều !
Mình đã gởi mail đính kèm tập tin của mình cho bạn, yêu cầu của mình là bạn làm sao cho tại mục Query nhà : bạn nhập ít nhất 5 dòng (giống như file hiện hữu của mình ) , sau đó bạn sang phần report xem , nếu nó vẫn đứng nguyên như ở Query thì xem như thành công !
Mình nhắc lại là không sắp theo trường nào cả , thứ tự dòng nhập tại query thế nào thì tại Report cũng thế ấy !
Thực sự vấn đề không đơn giản như bạn nghĩ đâu, mình đã hỏi rất nhiều diễn đàn và nhận được hơn 20 câu trả lời như nhau là không được, có trường hợp trả lời cũng gần giống như bạn là tạo thêm một trường khác và sắp xếp theo trường đó , như vậy cuối cùng dữ liệu cũng bị đảo lộn !
Nếu Bạn có cách giải quyết đúng vấn đề, bạn cho mình biết đang sài điện thoại mạng gì , mình sẽ gởi ngay số cạt 100 ngàn để thay lòng biết ơn !
Rất mong được bạn giúp đỡ !
 
hai2hai

hai2hai

VNUNI Makes a difference
29/4/04
2,030
125
63
52
Hà nội
vnuni.net
Bạn thử thêm trường OrderField kiểu Numeric (Không phải AutoNumber)

Sau đó bạn muốn sắp xếp dữ liệu theo ý định gì thì bạn đánh số thứ tự vào trường OrderField đó (Nếu theo thứ tự nhập thì cho trường đó tăng dần). Trước khi đẩy ra report, bạn lấy Source của report là "SELECT * FROM tb_Table ORDER BY OrderField"

Tất cả các diễn đàn cũng đều làm dữ liệu như vậy. Muốn box này có thể sắp xếp trên/dưới box sau thì chỉ việc sửa thông tin Order là xong.

Mình nhắc lại là không sắp theo trường nào cả , thứ tự dòng nhập tại query thế nào thì tại Report cũng thế ấy !

Mà tại sao lại nhập vào Query? Phải nhập trực tiếp vào Table mới chuẩn chứ. Không ai lập trình để nhập vào Query cả mặc dù trong Access cho phép nhập)
 
T

tung1999

Sơ cấp
9/2/09
41
0
0
can gio
Theo cách của anh hai2hai mình thấy làm được nhưng chỉ thực hiện trên phần mềm máy đơn, còn phần mềm share qua mạng Lan ví dụ 2 máy cùng nhập 1 lúc thì làm không được. Mình cũng đang gặp rắc rối như vậy trên mạng Lan, xin hỏi có cách nào giải quyết ổn không, rất cảm ơn!
 
hai2hai

hai2hai

VNUNI Makes a difference
29/4/04
2,030
125
63
52
Hà nội
vnuni.net
Theo cách của anh hai2hai mình thấy làm được nhưng chỉ thực hiện trên phần mềm máy đơn, còn phần mềm share qua mạng Lan ví dụ 2 máy cùng nhập 1 lúc thì làm không được. Mình cũng đang gặp rắc rối như vậy trên mạng Lan, xin hỏi có cách nào giải quyết ổn không, rất cảm ơn!

2 cách:
- Sử dụng Attached tables
- Sử dụng Open Share (Hãy tham khảo tài liệu về ADO Connections)

Tất cả các cách trên đều rất dễ làm và đều available trên Internet.

Chú ý: Làm bằng Access đã là dạng Desktop rồi nhưng các bạn nên tách chương trình và phần mềm ra riêng thành 2 files: 1 file là chương trình, 1 file là data file. File chương trình sẽ attached các tables từ file data và sử dụng chúng. Còn manage cái attached thế nào thì các bạn phải tự học thôi.
 
Sửa lần cuối:
D

dzung

Guest
18/2/05
18
0
0
49
hcm
Mình cũng có ít kinh nghiệm về access như mình chưa bao giờ gặp tình trạng như bạn nói. theo mình thì có lẻ cái report của bạn không đúng chổ nào đó! bạn nên xem lại. Mình thấy 2 bạn paulsteigelhai2hai đưa ra solution đó thì cũng đã giải quyết được vấn đề của bạn rồi . nếu bạn cũng không giải quyết được nữa thì bạn cũng có thể đưa data từ query của bạn sang 1 table temp sau đó report lấy data từ table temp này.
Như tốt nhất thì bạn xem lại cách làm của bạn chứ ko cần phải làm phức tạp như zậy đâu
 
C

chihienphuco

Trung cấp
20/4/09
109
1
0
Bình Chánh
Report nó có sắp xếp phân tầng, ưu tiên trước sau của các field rõ ràng lắm. Bạn thử cách đơn giản này nhé:

1. Bạn tạo query gồm các field cần báo cáo.
2. Sau đó vào Report new chọn report wizard và lấy nguồn từ query mục 1.

chọn hết các field ấn nút Next, kế tiếp sẻ tới các vùng ưu tiên sắp xếp mà bạn muốn.

Thân.
 
F

FIQ

Guest
19/9/06
1
0
0
Hà Nội
Mình thấy khá kỳ lạ mà không biết lỗi tại sao rất mong các bạn chỉ giáo.
Mình tạo form, lấy field GIA_BAN = DON_GIA*TY_GIA và THANH_TIEN = GIA_BAN*SO_LUONG. Tuy nhiên k hiểu sao field GIA_BAN và THANH_TIEN cho kết quả lên tới 10 chữ số hàng thập phân mặc dù ở Đơn giá và tỷ giá mình chỉ để 2 chữ số thập phân. Cụ thể: Đơn giá: 0,05; Tỷ giá: 17.384 và Số lượng: 112.000.
 
T

tung1999

Sơ cấp
9/2/09
41
0
0
can gio
Mình thấy khá kỳ lạ mà không biết lỗi tại sao rất mong các bạn chỉ giáo.
Mình tạo form, lấy field GIA_BAN = DON_GIA*TY_GIA và THANH_TIEN = GIA_BAN*SO_LUONG. Tuy nhiên k hiểu sao field GIA_BAN và THANH_TIEN cho kết quả lên tới 10 chữ số hàng thập phân mặc dù ở Đơn giá và tỷ giá mình chỉ để 2 chữ số thập phân. Cụ thể: Đơn giá: 0,05; Tỷ giá: 17.384 và Số lượng: 112.000.
Đơn giản thôi, GIA_BAN và THANH_TIEN lần lượt bạn chọn Decimal: 2 thì sẽ có 2 số thập phân.
Chào ban.
 
congvinh

congvinh

Guest
21/4/06
108
0
0
Ho Chi Minh City
- Ở bài post trước mình có hỏi các bạn về việc khi tạo report thì nó tự động sắp theo khoá chính mặc dù mình không chọn cho nó sắp theo Fied nào cả , khi mình hỏi cách làm cho nó không sắp xếp, đánh thế nào thì giữ nguyên như vậy, thì nhận được cùng một câu trả lời tại diễn đàn Webketoan và diendantinhoc là No ! Mình như tuyệt vọng vì nếu nó xắp xếp sẽ làm đảo lộn mọi dữ liệu trong phần mềm của mình đã được trình bài theo ý đồ riêng.
- Nhưng gần đây mình phát hiện một điều thú vị trong access 2003 là khi số Record ít hơn một số nào đó (khoảng <20 tuỳ trường hợp) hoặc lớn hơn một số nào đó (>500 tuỳ trường hợp) thì report được tạo ra sẽ không bị sắp xếp !
- Điều này làm mình nảy ra một phương pháp dỡ hơi là kiếm đại một nguồn dữ liệu không liên quan patse vào để cho đủ số lượng, cách này tạm giải quyết được nhưng chẳng ra làm sao !
- Rất mong những bạn nào đã nghiên cứu về open Office cho mình biết tại sao có hiện tượng như vậy và cách giải quyết triệt để ! Cám ơn các bạn rất nhiều ! (NGUYEN TRONG HIEU SO GTVT TIEN GIANG rat vui được các bạn chỉ dạy)

Bạn phải nói rõ cái ý đồ của bạn là gì người ta mới giúp được, nếu có khoá chính thì khoá chính luôn được ưu tiên sort nếu không chỉ định sort theo field nào.
Không có chuyện dữ liệu nhiều ít thì sort khác nhau.
 

Xem nhiều