2013-03-16 41 views
0

我原本是寫IB Access 2003中,但是已經升級到Access 2007中的Access數據庫 - 我遇到的問題如下:在我的表設置字段的值,以備將來使用

我有一個表「tblBookings」存儲了特定客戶預訂或報價的所有相關數據,當報價被接受時,該表的客戶字段與CLient表(tblClients)的PK相關聯,用戶打開主表單,選擇客戶並在下拉菜單中選擇預訂號碼,然後進入「編輯預訂」,用戶可以在其中編輯預訂或進行確認。當用戶點擊「確認預訂」cmdButton時,打開的窗體關閉,「創建發票」窗體打開。用戶從下拉列表中選擇預訂號碼,然後打印備考發票或發票。打印形式卡姆曼德按鈕打開一個打印必要文檔的報告,當點擊打印發票命令時,打印發票形式被打開,用戶可以選擇記錄對發票進行的任何分析。

這就是說,在打印發票之前首先打印一個備忘錄是非常重要的,所以我需要在表格中設置一個yes no字段爲yes或true,如果已經打印了一個pro forma,在這種情況下,發票按鈕將會變得可見並且如果還沒有被打印則保持隱藏。

上cmdProForma事件過程如下(這是我需要TI設置是/否字段在專業領域是tblBookings並設置爲一個是/否字段。

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 

回答

0

添加複選框對於備考打印到形式,它會爲您的用戶一個很好的指導,爲什麼他們不能打印發票,您可以設置屬性爲鎖定=真

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將是真實發票按鈕將是可見的。

+0

我會立即嘗試並回複評論 - 迄今爲止謝謝你 – 2013-03-16 12:59:34

+0

好的我已經添加了代碼,但是,一旦代碼運行,複選框「臨」仍然未選中 - 我錯過了什麼? – 2013-03-16 13:24:44

+0

您的複選框名爲Me.Pro?代碼是否在表單模塊中運行?複選框是否綁定到表格中的相應字段?這個'Me.Pro = True'是將複選框設置爲true的行,但它必須與您的設置相匹配。 – Fionnuala 2013-03-19 00:10:38

相關問題