• Thứ Sáu, 14/07/2006 09:45 (GMT+7)

    Số lượng Control label trên Access Form

    Câu hỏi :
    Xin cho biết cách lập trình trong Access để thể hiện một ngàn số trên màn hình với các màu khác nhau. Tôi đã thử dùng form và control Label nhưng chỉ được 876 số sau đó báo lỗi '29053'.


    Trả lời :
    Form và Label control là những đối tượng được quản lý bởi Windows với chi phí khá lớn, do đó bạn không nên lạm dụng việc dùng chúng. Thí dụ bạn muốn tạo ra 1 form chứa tới 1000 label control để hiển thị 1000 dữ liệu chuỗi khác nhau với màu khác nhau, phương án giải quyết này quá dở và quá lạm dụng label control nên có thể thất bại (như lời bạn nói thì Windows chỉ cho bạn tạo tối đa được 876 label trong 1 form). Nếu là người lập trình có kinh nghiệm, bạn sẽ không bao giờ hiển thị quá nhiều chuỗi dữ liệu khác nhau lên trên cùng 1 form để người dùng xem cả, hiển thị 1000 chuỗi khác nhau lên 1 form là quá nhiều và quá rối, trong trường hợp này, người ta sẽ dùng đối tượng ListBox để hiển thị chúng chung trong 1 danh sách, tùy kích cỡ mà ListBox sẽ hiển thị được bao nhiêu dữ liệu, phần còn lại được lưu bên trong, người dùng sẽ dùng scrollbar để cuộn dữ liệu đến vị trí mong muốn tại từng thời điểm. Đoạn code VB sau dùng ListBox tên là ListBox1 để hiển thị 1000 phần tử (hay hơn nữa):
    'khai báo biến đếm
    Dim i As Integer
    'lập 1000 để chứa 1000 chuỗi vào ListBox1
    For i = 1 To 1000
      List1.AddItem "Hàng " & i
    Next i
    Trong trường hợp bắt buộc phải hiển thị 1000 chuỗi khác nhau trên 1 form nào đó với các màu khác nhau, cách ít tốn tài nguyên nhất là dùng hàm API Windows tên là TextOut() để xuất từng chuỗi ra vị trí qui định.
    Chuyên mục: Lập trình