• TẠO 1 MACRO VỚI 2 SUB MACRO
  • TẠO 1 MACRO VỚI 2 SUB MACRO

    mydaisy55@gmail.com > 07-04-13, 11:07 PM

    Mình có 1 form QUẢN LÍ BÁN HÀNG.Trong FORM, mình có tạo 1 option group với 2 lables tương ứng với 2 value:
    -xem hóa đơn của khách hàng: 1
    -xem báo cáo bán hàng theo quý: 2
    Bên cạnh đó còn có 1 combo box : chọn mã KH; 1 text box : nhập quý; 2 command button: XEM, ĐÓNG FORM.
    *YÊU CẦU:
    1.Khi chọn mục "xem hóa đơn của khách hàng" thì "combo box MaKH" sáng đồng thời ô "nhập quý" sẽ mờ.
    2.Người dùng chọn MaKH trong combo box và click nút XEM thì chương trình sẽ mở REPORT_7 với điều kiện:của những khách hàng có MaKH=MaKH được chọn trong combo box MaKH.
    3.Khi chọn mục "xem báo cáo khách hàng theo quý" thì "nhập quý" sáng, combo box mờ.
    4.Người dùng nhập quý cần xem và click nút XEM thì chương trình sẽ mở REPORT_8.
    5.Nếu không nhập quý mà click nút XEM thì chương trình sẽ đưa ra thông báo yêu cầu nhập quý.

    Mình thực sự rất rối với bài tập này vì có nhiều yêu cầu. Mình chỉ học hỏi chút ít từ sách vở và không qua trường lớp đào tạo nên "gà mờ" lắm.016. Mình đã thử làm yêu cầu(2) nhưng nó chỉ có hiệu nghiệm với 1 MaKH đầu tiên và duy nhất. VD mình chọn MaKH là FAHASA thì chương trình vẫn mở REPORT_8 với MaKH tương ứng. Nhưng tới lần thứ 2 mình nhập 1 MaKH khác thì nó vẫn giử nguyên HOADON của FAHASA ban đầu. Mình đã thử rất nhiều lần nhưng chỉ tốn công.030
    Các "sư phụ" ơi, làm ơn cứu giúp "đệ tử" với.040
  • RE: TẠO 1 MACRO VỚI 2 SUB MACRO

    wintq > 08-04-13, 10:10 AM

    Để ẩn hoặc hiện bạn dùng thuộc tính Visible của đới tượng. cụ thể với bài của bạn như sau:

    B1: Bấm phải vào ô "Nhập quý" và ô " Combo Box" chọn thuộc tính Visible đang Yes đổi thành No. (và đặt tên chon 2 cái này la NHAPQUY va CONBOX)
    B2: Bấm phải chuột chọn mục "Xem Hóa đơn của khách hàng" phải chuột chọn Buil Evens... chọn Code..... tại vị trí con trỏ bạn thêm đoạn Code sau:
    NHAPQUY.Visible = False
    CONBOX.Visible = True

    B3:Tương tự như vậy với "Xem báo cao khách hàng" như đảo lại cáo trên

    Còn cái chỉ xem được 1 hóa đơn đầu bạn nên dùng Requery lại dữ liệu khi ô Mã khách hàng thây đổi.
    Muốn hướng dẫn cụ thể hơn cài Teamview rồi liên hệ chữ ký trong giờ Hành chính tớ làm qua mạng cho
  • RE: TẠO 1 MACRO VỚI 2 SUB MACRO

    mydaisy55@gmail.com > 08-04-13, 11:46 AM

    Cám ơn bạn nhiều nha. Nhưng mình làm không được. không hiểu sao khi chọn mục "xem hoa don cua khach hang" chỉ còn cái combo box còn cái "NHAPQUY" thì biến mất. Mình chỉ nghĩ nó sẽ mờ đi? Chắc là mình đã thao tác sai? Bạn giúp mình nhé!
  • RE: TẠO 1 MACRO VỚI 2 SUB MACRO

    mydaisy55@gmail.com > 08-04-13, 12:26 PM

    Ví dụ bài tập của mình chỉ có: 1 option group và 2 COMMAND BUTTON (như bài tập trước đã nêu) mà không có COMBO BOX CHỌN MaKH và NHAPQUY thì mình sẽ sắp xếp các action trong macro như thế nào để nó XEM được 2 yêu cầu trong option group. Còn về chức năng requery gì đó, mình không tìm thấy. Mình cũng không biết sử dụng sao nữa. Bạn chỉ giúp mình nhé! Chỉ có vậy thôi chắc là bài tập sẽ đơn giản hơn nhiều phải không?
  • RE: TẠO 1 MACRO VỚI 2 SUB MACRO

    Xuân Thanh > 08-04-13, 03:02 PM

    Trên form có các control sau đây :
    - Một Option Group có name = YeuCau, Default Value =1
    - Trong Option Group có hai option
    Option thứ nhất : Caption = Xem theo khách hàng, Option Value = 1
    Option thứ hai : Caption = Xem theo quý, Option Value = 2
    - Một combobox : Name = cboKH, RowSource = tblKhachHang...
    - Mốt textbox : Name = txtQuy
    Trong code của form, chép các đoạn code sau vào

    1/ Để Enable control :
    Mã:
    Private Sub Form_Activate()
        If Me.YeuCau.Value = 1 Then
            Me.cboKH.Enabled = True
            Me.txtQuy.Enabled = False
        Else
            Me.cboKH.Enabled = False
            Me.txtQuy.Enabled = True
        End If
    End Sub

    Private Sub YeuCau_Click()
        If Me.YeuCau.Value = 1 Then
            Me.cboKH.Enabled = True
            Me.txtQuy.Enabled = False
        Else
            Me.cboKH.Enabled = False
            Me.txtQuy.Enabled = True
        End If
    End Sub

    2/ Để mở report
    Mã:
    Private Sub Xem_Click()
        If Me.YeuCau.Value = 1 Then 'khi chon xem theo khach hang
            'Mo report7 khi chọn mã khách thông qua hộp combo
            'khi không chọn mã khách thì ra thông báo
            If Me.cboKH = "" Then
                MsgBox "Ban chua chon khach hang" , , "Thong Bao"
                cboKH.SetForcus
                Exit Sub
            Else ' khi chon ma khach thi mo report7 va tim ma khach tuong ung voi hop combo cboKH
                DoCmd.OpenReport "report7", acViewPreview, , "[MaKH] = Forms!frmBaoCao!cboKH"
            End If
        Else 'khi chon xem theo quy
            'Neu txtQuy < 1 hoac txtQuy > 4 thi ra thong bao
            If Me.txtQuy < 1 Or Me.txtQuy > 4 Then
                MsgBox "Quy chi nam trong khoang tu 1 den 4" , "Thong Bao"
                txtQuy.SetForcus
                Exit Sub
            Else
                DoCmd.OpenReport "report8", acViewPreview
        End If
    End Sub

    Thân mến
  • RE: TẠO 1 MACRO VỚI 2 SUB MACRO

    mydaisy55@gmail.com > 08-04-13, 05:17 PM

    Cám ơn bạn nhiều nha. Bạn ơi, phần code này mình chưa học tới. Hình như nó nằm trong phần event procedure và liên quan đến MODULE mà mình thì mới dừng lại ở phần MACRO thôi. Mình tham khảo 1 số đề thi trước của trường, phần MODULE đó sẽ không ra trong phần thi tin B nên mình chỉ tập trung vào MACRO thôi. Không biết các đoạn lệnh này có thể áp dụng vào các action trong MACRO hiệu quả không? Nhưng mà hồi trước mình có tham khảo 1 số videoclip liên quan đến EVENT PROCEDURE, lệnh DOCMD và mình đã bắt chước áp dụng nó vào MACRO thì thấy cũng đúng. Ý kiến bạn như thế nào?
  • RE: TẠO 1 MACRO VỚI 2 SUB MACRO

    Xuân Thanh > 08-04-13, 06:13 PM

    (08-04-13, 05:17 PM)mydaisy55@gmail.com Đã viết: Cám ơn bạn nhiều nha. Bạn ơi, phần code này mình chưa học tới. Hình như nó nằm trong phần event procedure và liên quan đến MODULE mà mình thì mới dừng lại ở phần MACRO thôi. Mình tham khảo 1 số đề thi trước của trường, phần MODULE đó sẽ không ra trong phần thi tin B nên mình chỉ tập trung vào MACRO thôi. Không biết các đoạn lệnh này có thể áp dụng vào các action trong MACRO hiệu quả không? Nhưng mà hồi trước mình có tham khảo 1 số videoclip liên quan đến EVENT PROCEDURE, lệnh DOCMD và mình đã bắt chước áp dụng nó vào MACRO thì thấy cũng đúng. Ý kiến bạn như thế nào?

    Gửi ban file này. Bạn mở xem cách thiết kế các macro AnHien, MoReport và các gán các macro vào Form_Activate(), YeuCau_Click() và Xem_Click(). Chu ý các value của option group YeuCau và các option con

    Thân mến
  • RE: TẠO 1 MACRO VỚI 2 SUB MACRO

    wintq > 09-04-13, 09:46 AM

    (08-04-13, 05:17 PM)mydaisy55@gmail.com Đã viết: Cám ơn bạn nhiều nha. Bạn ơi, phần code này mình chưa học tới. Hình như nó nằm trong phần event procedure và liên quan đến MODULE mà mình thì mới dừng lại ở phần MACRO thôi. Mình tham khảo 1 số đề thi trước của trường, phần MODULE đó sẽ không ra trong phần thi tin B nên mình chỉ tập trung vào MACRO thôi. Không biết các đoạn lệnh này có thể áp dụng vào các action trong MACRO hiệu quả không? Nhưng mà hồi trước mình có tham khảo 1 số videoclip liên quan đến EVENT PROCEDURE, lệnh DOCMD và mình đã bắt chước áp dụng nó vào MACRO thì thấy cũng đúng. Ý kiến bạn như thế nào?
    Tốt nhất cài Teamview rồi làm trực tiếp trên đó nhanh hơn.
  • RE: TẠO 1 MACRO VỚI 2 SUB MACRO

    mydaisy55@gmail.com > 10-04-13, 10:34 AM

    Cám ơn bạn nhiều nha. Mình đã bắt chước nhưng kiếm không ra phần SetValue ( cho các option ) trong Action Catalog. Mình kiếm mà chỉ thấy setproperty,setmenuitem,... Có phải mình đã làm sai nên mới không thấy SetValue? Bạn có thể giảng cho mình thêm không? Mình chân thành cám ơn.
  • RE: TẠO 1 MACRO VỚI 2 SUB MACRO

    nedu > 27-05-24, 07:17 AM

    Bạn chọn Show All Actions (bên cạnh lệnh Action Catalog) 
    Bạn vào khung Action Catalog tìm SetValue trong mục Database Object