我有一个 access Db,它最初是用 ib Access 2003 编写的,但后来升级到 Access 2007 - 我遇到的问题如下:
我有一个表“tblBookings”,它存储特定客户预订或报价的所有相关数据,当用户打开主表单时,该表的客户字段链接到客户表(tblClients)的 PK,选择客户并在下拉列表中选择预订编号,然后继续“编辑预订”,用户可以在其中编辑预订或确认预订。当用户单击“确认预订”cmdButton 时,打开的表单关闭并打开“创建发票”表单。用户从下拉列表中选择预订号,然后打印形式发票或发票。print proforma cammand 按钮打开一个打印必要文件的报告,
话虽这么说,在打印发票之前首先打印形式是很重要的,因此如果已打印形式,我需要将表中的 yes no 字段设置为 yes 或 true,在这种情况下,发票按钮将变得可见并且如果尚未打印,则保持隐藏状态。
cmdProForma 上的事件过程如下(这是我需要在 Pro 字段中设置是/否字段的地方,即 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