Chào mừng đến với Diễn đàn Dân Kế Toán - Kế toán tổng hợp thực tế.
Kết quả 1 đến 9 của 9
  1. #1
    Ngày tham gia
    Aug 2015
    Bài viết
    2

    ACE hãy chỉ cho em cach viết lệnh mong muốn trong Access

    Em có một cơ sở dữ liệu 60 người bây giờ em muốn in nó ra như sau:
    Nếu em muôn in 30 người thì chỉ cần nhập 30 vào form rồi báo cáo sẽ in hết lượt 30 người đầu tiên.
    Và sau đó em in tiếp 30 người cuối
    Còn nếu em ko thích 30 ng mà 20 ng thì e nhập 20 ng là in thành 3 danh sách
    co ace nào làm dc phần này ko
    e cám ơn trước
    :khoc:

  2. #2
    Ngày tham gia
    Nov 2015
    Bài viết
    11
    Ðề: ACE hãy chỉ cho em cach viết lệnh mong muốn trong Access




    Trích dẫn Gửi bởi nguyensinh19
    Em có một cơ sở dữ liệu 60 người bây giờ em muốn in nó ra như sau:
    Nếu em muôn in 30 người thì chỉ cần nhập 30 vào form rồi báo cáo sẽ in hết lượt 30 người đầu tiên.
    Và sau đó em in tiếp 30 người cuối
    Còn nếu em ko thích 30 ng mà 20 ng thì e nhập 20 ng là in thành 3 danh sách
    co ace nào làm dc phần này ko
    e cám ơn trước
    :khoc:
    Mình cụ thể hóa bài toán của bạn về cách đơn giản cho dễ hiểu hơn xíu:
    Mình muốn in những record nằm trong một khoảng nào đó
    ví dụ:
    Từ 1-30
    Từ 31-60
    ...
    Tạm gọi là 2 biến RecordBegin và RecordEnd
    Để thực hiện điều này bạn vào sự kiện

    Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
    i = i + 1
    If i => RecordBegin And i<=RecordEnd Then
    Detail.Visible = True
    Else
    Detail.Visible = False
    End If
    End Sub

    Còn cách xử lý để cho ra RecordBegin và RecordEnd thì dài hơn xíu. Tạm thời bạn cứ thiết kế 2 ô nhập liệu: In từ dòng: đến dòng: sử dụng tạm đã nhé!

  3. #3
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: ACE hãy chỉ cho em cach viết lệnh mong muốn trong Access




    Trích dẫn Gửi bởi chip2006
    Mình cụ thể hóa bài toán của bạn về cách đơn giản cho dễ hiểu hơn xíu:
    Mình muốn in những record nằm trong một khoảng nào đó
    ví dụ:
    Từ 1-30
    Từ 31-60
    ...
    Tạm gọi là 2 biến RecordBegin và RecordEnd
    Để thực hiện điều này bạn vào sự kiện

    Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
    i = i + 1
    If i => RecordBegin And i<=RecordEnd Then
    Detail.Visible = True
    Else
    Detail.Visible = False
    End If
    End Sub

    Còn cách xử lý để cho ra RecordBegin và RecordEnd thì dài hơn xíu. Tạm thời bạn cứ thiết kế 2 ô nhập liệu: In từ dòng: đến dòng: sử dụng tạm đã nhé!
    Tội gì phải làm dài và phức tạp thế? Hãy dùng query làm nguồn cho report rồi ấn định theo điều kiện in, vừa nhanh, vừa đỡ...tốn sức. Nghiên cứu thử xem
    Thân

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: ACE hãy chỉ cho em cach viết lệnh mong muốn trong Access




    Trích dẫn Gửi bởi xuanthanh
    Tội gì phải làm dài và phức tạp thế? Hãy dùng query làm nguồn cho report rồi ấn định theo điều kiện in, vừa nhanh, vừa đỡ...tốn sức. Nghiên cứu thử xem
    Thân
    Dùng query mới là phức tạp đó bạn. Ví dụ muốn in record từ 31-60 thì query xử lý sao? Bạn phải xử lý phân trang, dùng select top, tạo query động...

    Mới chừng đó thôi đã thấy phê rồi :xinloinhe:

  5. #5
    Ngày tham gia
    Nov 2015
    Bài viết
    1
    Ðề: ACE hãy chỉ cho em cach viết lệnh mong muốn trong Access




    Trích dẫn Gửi bởi chip2006
    Dùng query mới là phức tạp đó bạn. Ví dụ muốn in record từ 31-60 thì query xử lý sao? Bạn phải xử lý phân trang, dùng select top, tạo query động...

    Mới chừng đó thôi đã thấy phê rồi :xinloinhe:
    Đây là một query đơn giản

    SELECT tblDanhSach.*, tblDanhSach.STT
    FROM tblDanhSach
    WHERE (((tblDanhSach.STT) Between [TuSo] And [DenSo]));

    P/S : Tôi giữ nguyên câu lệnh SQL trong lưới query

  6. #6
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: ACE hãy chỉ cho em cach viết lệnh mong muốn trong Access

    Bạn hãy chế biến lại theo bài viết này
    http://www.databasedev.co.uk/report_printing.html
    Nếu không làm được mình sẽ hướng dẫ tiếp
    Rất đơn giản!

  7. #7
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: ACE hãy chỉ cho em cach viết lệnh mong muốn trong Access




    Trích dẫn Gửi bởi xuanthanh
    Đây là một query đơn giản

    SELECT tblDanhSach.*, tblDanhSach.STT
    FROM tblDanhSach
    WHERE (((tblDanhSach.STT) Between [TuSo] And [DenSo]));

    P/S : Tôi giữ nguyên câu lệnh SQL trong lưới query
    Trong trường hợp một số record bị xóa thì xử lý như bạn còn phù hợp ko?
    Ví dụ, record bị xóa có stt từ 10-20

    Khi lấy 30 dòng đầu tiên bạn sẽ xử lý như thế nào?

  8. #8
    Ngày tham gia
    Oct 2015
    Bài viết
    2,607
    Ðề: ACE hãy chỉ cho em cach viết lệnh mong muốn trong Access




    Trích dẫn Gửi bởi chip2006
    Trong trường hợp một số record bị xóa thì xử lý như bạn còn phù hợp ko?
    Ví dụ, record bị xóa có stt từ 10-20

    Khi lấy 30 dòng đầu tiên bạn sẽ xử lý như thế nào?
    Bạn đọc kỹ lại yêu cầu của chủ topic đã nêu
    Thân

  9. #9
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: ACE hãy chỉ cho em cach viết lệnh mong muốn trong Access




    Trích dẫn Gửi bởi xuanthanh
    Bạn đọc kỹ lại yêu cầu của chủ topic đã nêu
    Thân
    DÙ sao thì cột STT chưa chắc đã có.
    Ngoài ra số lượng record được in mỗi trang có thể không đều nhau làm cho trang dài trang ngắn.
    Đếm từ từ từng record đã in i=i+1 vẫn tốt hơn.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •