0

私はもともとib Access 2003で書かれたアクセスDBを持っていますが、その後Access 2007にアップグレードされました - 私が経験している問題は次のとおりです:

特定のクライアントの予約または見積もりに関連するすべてのデータを格納するテーブル「tblBookings」があります。このテーブルのクライアント フィールドは、見積もりが受け入れられるとクライアント テーブル (tblClients) の PK にリンクされ、ユーザーはメイン フォームを開きます。クライアントを選択し、ドロップダウンで予約番号を選択し、ユーザーが予約を編集または確認できる「予約の編集」に進みます。ユーザーが「予約の確認」cmdButton をクリックすると、開いているフォームが閉じ、「請求書の作成」フォームが開きます。ユーザーはドロップダウン リストから予約番号を選択し、見積請求書または請求書を印刷します。プロフォーマ印刷コマンド ボタンをクリックすると、必要なドキュメントを印刷するレポートが開きます。

これは、請求書を印刷する前にプロフォーマを最初に印刷することが不可欠であると言われているため、プロフォーマが印刷されている場合は、テーブルの yes no フィールドを yes または true に設定する必要があります。この場合、請求書ボタンが表示され、まだ印刷されていない場合は非表示のままです。

cmdProForma のイベント プロシージャは以下のとおりです (ここで、tblBookings である Pro フィールドに yes/no フィールドを設定し、yes/no フィールドに設定する必要があります。

Private Sub CmdProForma_Click()
    Dim rs As New ADODB.Recordset 'recordset of existing refs
    Dim t As String 'temp string var
    Dim stDocName As String
    Dim stLinkCriteria As String
    Dim i As Integer 'temp ref variable

       i = CInt(Right(txtBRef, 5))
       t = [txtBRef]


   With rs
      .Open "SELECT BRef,Conf,lock,Pro FROM tblBookings WHERE Bref=" & t & ";", CurrentProject.Connection, adOpenDynamic
      If .BOF Or .EOF Then 'no such ref
      MsgBox "No booking with ref '" & fRef(CInt(t), "B") & "' exists.", vbExclamation, "No booking"
      Else 'ref found: open invoice
      strSQL = "UPDATE tblBookings SET Pro = True"

'db.Execute strSQL, dbFailOnError
      DoCmd.Close acForm, "frmBRefEnter"
        ' !Form!frmBRefEnter!Pro = True
      DoCmd.OpenReport "rptInvoice1", acViewPreview, , "BRef=" & t
        DoCmd.OutputTo acOutputReport, "rptInvoice1", acFormatPDF, destDIR & "\Inv\" & fRef(i, "Pro-Forma") & ".pdf"

           End If

      End With

  End Sub
4

1 に答える 1

0

フォームにプロフォーマを印刷するためのチェックボックスを追加します。請求書を印刷できない理由について、ユーザーにとって良いガイドとなります。プロパティを Locked=True に設定できます

Private Sub CmdProForma_Click()
    ''"From a dropdown list the user selects the booking number", 
    ''so the booking number must exist, no need to check
      DoCmd.OpenReport "rptInvoice1", acViewPreview, , "BRef=" & Me.txtBref
      DoCmd.OutputTo acOutputReport, "rptInvoice1", _
          acFormatPDF, destDIR & "\Inv\" & fRef(i, "Pro-Forma") & ".pdf"
      Me.Pro = True ''Checkbox
      DoCmd.Close acForm, "frmBRefEnter"
End Sub

請求書ボタンの場合:

Me.cmdInvoicePrint.Visible = Me.Pro

Me.Pro がチェックされている場合、Me.Pro は true になり、請求書ボタンが表示されます。

于 2013-03-16T12:49:41.690 に答える