• Tự động canh giữa chiều cao trong textbox
  • Tự động canh giữa chiều cao trong textbox

    mrtoanbin > 09-02-20, 05:15 PM

    Mình đã copy code trên diễn đàn (code này áp dụng trên form) nhưng mình sử dụng trong report để canh giữa dữ liệu trong texbox.
    Khi áp dụng thì có hành canh giữa, có hàng thì không được. Vậy nhờ các bác xem hướng dẫn thêm ạ. XIN CẢM ƠN!

    File đính kèm: https://www.mediafire.com/file/ijgu01pvo...T.mdb/file
  • RE: Tự động canh giữa chiều cao trong textbox

    Noname > 11-02-20, 02:48 PM

    Bạn có thể thêm hình ảnh để mọi người rõ câu hỏi thêm nha!
  • RE: Tự động canh giữa chiều cao trong textbox

    Noname > 11-02-20, 03:30 PM

    Mình chưa xem kỹ code của bạn, nhưng nhìn cách gọi code lên trong report thì có thể phán thế này.
    Bạn gọi trong event Report_Load => Kết quả là chỉ những giá trị được gọi lên lần đầu tiên được thực thi hàm thôi,
    Những giá trị biến thiên nằm trong Detail sẽ chỉ đúng ở dòng đầu tiên, dòng thứ 2 may mắn có cấu trúc giống dòng đầu tiên thì ok, không thì sẽ lấy theo chuẩn của dòng đầu tiên.

    Trở lại vấn đề, bạn cần canh giữa chiều cao của Lable trong header và Text.
    Phần lable tôi thấy OK vì theo lý luận bên trên, nó không có thay đổi theo detail,
    Phần Text thì sẽ nhảy lung tung theo như cách bạn nói "hàng được hàng không được".

    Để khắc phục tình trạng này,các hàm dùng cân lable giữ như cũ, bạn cần gọi các hàm cân Text ở sự kiện: Detail_Format của report.

    Bệnh sẽ khỏi.
  • RE: Tự động canh giữa chiều cao trong textbox

    tranthanhan1962 > 11-02-20, 04:20 PM

    Sau lại phải dùng code VBA một cách phức tạp đến thế với report. 
    Thứ nhất vảo fortmat thiết kế trực tiếp là xong.
    Thứ hai: trường hợp canh lề theo điều kiện với report mọi việc cũng rất ư là đơn giản.
    Report khác với form. Mọi textbox điều được đặt ở các khu vực (section) rất cụ thể, các khu vực này đều có event On Print để xử lý công việc này
    Giá trị trọng canh lề của text box như sau:
     -Left (canh trái): Tên_textbox.TextAlign = 1
     -Right (canh phải): Tên_textbox.TextAlign = 2
     -Center (canh giữa): Tên_textbox.TextAlign = 3
     -Justify (canh đều hai bên): Tên_textbox.TextAlign = 4 (cái này thì phải viết code vì không có trong thiết kế)
    Cú pháp VBA:
    Private Sub Tên_section_chứa_textbox_Print(Cancel As Integer, PrintCount As Integer)
        Tên_textbox.TextAlign = 1 '(2,3 hoặc 4 tùy trường hợp)
    End Sub
    Nếu không dùng On Print thì dùng On Format cũng giống như thế.
    Ngay cả viết code trên form cũng không ai sử dụng cái modCanhGiuaTheoWidth+Height này cả
    Cứ sử dụng On Load hoặc On Open ... Rồi TextAlign =1-2-3-4. Mà cái này cũng không ai thèm làm, vì khi thiết kế chọn một cái là xong.
    Trường hợp viết code cho textbox thường là Fore Color hay Back Color, kiểu như >0 màu xanh, <0 màu đỏ...
  • RE: Tự động canh giữa chiều cao trong textbox

    Noname > 11-02-20, 04:38 PM

    (11-02-20, 04:20 PM)tranthanhan1962 Đã viết: Sau lại phải dùng code VBA một cách phức tạp đến thế với report. 
    Thứ nhất vảo fortmat thiết kế trực tiếp là xong.
    Thứ hai: trường hợp canh lề theo điều kiện với report mọi việc cũng rất ư là đơn giản.
    Report khác với form. Mọi textbox điều được đặt ở các khu vực (section) rất cụ thể, các khu vực này đều có event On Print để xử lý công việc này
    Giá trị trọng canh lề của text box như sau:
     -Left (canh trái): Tên_textbox.TextAlign = 1
     -Right (canh phải): Tên_textbox.TextAlign = 2
     -Center (canh giữa): Tên_textbox.TextAlign = 3
     -Justify (canh đều hai bên): Tên_textbox.TextAlign = 4 (cái này thì phải viết code vì không có trong thiết kế)
    Cú pháp VBA:
    Private Sub Tên_section_chứa_textbox_Print(Cancel As Integer, PrintCount As Integer)
        Tên_textbox.TextAlign = 1 '(2,3 hoặc 4 tùy trường hợp)
    End Sub
    Nếu không dùng On Print thì dùng On Format cũng giống như thế.
    Ngay cả viết code trên form cũng không ai sử dụng cái modCanhGiuaTheoWidth+Height này cả
    Cứ sử dụng On Load hoặc On Open ... Rồi TextAlign =1-2-3-4. Mà cái này cũng không ai thèm làm, vì khi thiết kế chọn một cái là xong.
    Trường hợp viết code cho textbox thường là Fore Color hay Back Color, kiểu như >0 màu xanh, <0 màu đỏ...

    Em nghĩ là bạn ấy muốn canh giữa theo chiều cao chứ không theo chiều ngang. Trong Excel thì canh cái này có nút Middle Align ấy, chứ không phải Center
  • RE: Tự động canh giữa chiều cao trong textbox

    tranthanhan1962 > 11-02-20, 05:16 PM

    (11-02-20, 04:38 PM)Noname Đã viết: Em nghĩ là bạn ấy muốn canh giữa theo chiều cao chứ không theo chiều ngang. Trong Excel thì canh cái này có nút Middle Align ấy, chứ không phải Center
    Sorry mình hiểu nhầm. Nhưng cái Middle Align for textbox for report này thì thực sự quá khó. Mình nghiên cứu mấy năm nay vẫn chưa ra.  021 . Tìm đủ chỗ vẫn chua thấy ai viết được mã này????
  • RE: Tự động canh giữa chiều cao trong textbox

    Noname > 11-02-20, 05:49 PM

    (11-02-20, 05:16 PM)tranthanhan1962 Đã viết:
    (11-02-20, 04:38 PM)Noname Đã viết: Em nghĩ là bạn ấy muốn canh giữa theo chiều cao chứ không theo chiều ngang. Trong Excel thì canh cái này có nút Middle Align ấy, chứ không phải Center
    Sorry mình hiểu nhầm. Nhưng cái Middle Align for textbox for report này thì thực sự quá khó. Mình nghiên cứu mấy năm nay vẫn chưa ra.  021 . Tìm đủ chỗ vẫn chua thấy ai viết được mã này????

    Đoạn code trong file của chủ thớt cơ bản là đáp ứng được đấy anh. Chỉ là bạn ấy gọi ra chưa đúng thôi.
  • RE: Tự động canh giữa chiều cao trong textbox

    mrtoanbin > 11-02-20, 10:43 PM

    (11-02-20, 03:30 PM)Noname Đã viết: Mình chưa xem kỹ code của bạn, nhưng nhìn cách gọi code lên trong report thì có thể phán thế này.
    Bạn gọi trong event Report_Load => Kết quả là chỉ những giá trị được gọi lên lần đầu tiên được thực thi hàm thôi,
    Những giá trị biến thiên nằm trong Detail sẽ chỉ đúng ở dòng đầu tiên, dòng thứ 2 may mắn có cấu trúc giống dòng đầu tiên thì ok, không thì sẽ lấy theo chuẩn của dòng đầu tiên.

    Trở lại vấn đề, bạn cần canh giữa chiều cao của Lable trong header và Text.
    Phần lable tôi thấy OK vì theo lý luận bên trên, nó không có thay đổi theo detail,
    Phần Text thì sẽ nhảy lung tung theo như cách bạn nói "hàng được hàng không được".

    Để khắc phục tình trạng này,các hàm dùng cân lable giữ như cũ, bạn cần gọi các hàm cân Text ở sự kiện: Detail_Format của report.

    Bệnh sẽ khỏi.

    VÂNG, CẢM ƠN BÁC Ạ! Bệnh đã khỏi rồi ạ và sinh ra được kháng sinh nữa  007
  • RE: Tự động canh giữa chiều cao trong textbox

    tinhcamangden > 03-11-24, 09:04 PM

    (11-02-20, 10:43 PM)mrtoanbin Đã viết:
    (11-02-20, 03:30 PM)Noname Đã viết: Mình chưa xem kỹ code của bạn, nhưng nhìn cách gọi code lên trong report thì có thể phán thế này.
    Bạn gọi trong event Report_Load => Kết quả là chỉ những giá trị được gọi lên lần đầu tiên được thực thi hàm thôi,
    Những giá trị biến thiên nằm trong Detail sẽ chỉ đúng ở dòng đầu tiên, dòng thứ 2 may mắn có cấu trúc giống dòng đầu tiên thì ok, không thì sẽ lấy theo chuẩn của dòng đầu tiên.

    Trở lại vấn đề, bạn cần canh giữa chiều cao của Lable trong header và Text.
    Phần lable tôi thấy OK vì theo lý luận bên trên, nó không có thay đổi theo detail,
    Phần Text thì sẽ nhảy lung tung theo như cách bạn nói "hàng được hàng không được".

    Để khắc phục tình trạng này,các hàm dùng cân lable giữ như cũ, bạn cần gọi các hàm cân Text ở sự kiện: Detail_Format của report.

    Bệnh sẽ khỏi.

    VÂNG, CẢM ƠN BÁC Ạ! Bệnh đã khỏi rồi ạ và sinh ra được kháng sinh nữa  007
    Ban có thế cho mình xin code được không. Minh cũng cần phần này đê nghiên cứu
  • RE: Tự động canh giữa chiều cao trong textbox

    ongke0711 > 04-11-24, 03:45 PM

    (03-11-24, 09:04 PM)tinhcamangden Đã viết: Ban có thế cho mình xin code được không. Minh cũng cần phần này đê nghiên cứu

    Bạn xem bài này.
    Link: https://thuthuataccess.com/forum/thread-13410.html