2017-03-01 4 views
0

この基本機能は、システムにログインしてメインメニューのロード時に特定の製品がクリティカルレベルに達した場合にメッセージを表示し、 「はい」を押すと、詳細ビ​​ューを表示するフォームにリダイレクトされます。この場合、在庫レベルがクリティカルレベルに達したときのポップアップメッセージ

は手に数量(tblProductのフィールド名)

Dim Alert As Integer 

    Dim rsAlert As New Adodb.Recordset 

    rsAlert.Open "select * from tblproduct , CurrentProject.Connection" 

    Alert = DCount("[qty]", "[tblProduct]", " [ROQ] <= Qty and =0") 

    If Alert = 0 Then 

    Exit Sub 

    Else 

    If MsgBox("This/These " & Alert & " product/products have reached their critical levels" & _ 
    vbCrLf & vbCrLf & "Would you like to see these now?", _ 
    vbYesNo, "Alert...") = vbYes Then 

    DoCmd.Minimize 
    DoCmd.OpenForm "frmAlerts", acNormal 
    Else 
     Exit Sub 
    End If 
    End If 

    End Sub 

私は私のメニューのメニューをロードする際にそれはdoesnのことです取得エラーである「QTY」とクリティカルレベル「ROQ」でありますクリティカルレベルを下回っている製品の数を示します。もし誰かがそれを助けることができれば、それは大きな助けになるでしょう!

これはMicrosoft Accessで行われています。

+0

「コーディングで特定の間違いがある」とはどういう意味ですか?質問を編集して、間違った期待行動を含めることはできますか? – Comintern

+0

@comintern訂正しました! –

答えて

0

私のコメントに加えて、これはうまくいきません。リストボックスを作成して、在庫不足などの情報を入力します。

Dim rsAlert   As Recordset 
Dim sSql   As String 

sSql = "SELECT ProductID, Description, OtherFields, GoHere FROM tblproduct WHERE ROQ >= QTY AND ROQ > 0" 

Set rsAlert = CurrentDb.OpenRecordset(sSql, dbOpenSnapshot) 

If Not rsAlert.EOF Then     'There are records (shortages) so unhide and poulate the list box (called lstShortageListBox) 
    Me.lstShortageListBox.Visible = True 
    Me.lstShortageListBox.RowSource = sSql 
Else 

    Me.lstShortageListBox.Visible = False 
End If 

' Tidy Up 
rsAlert.Close 
Set rsAlert = Nothing 

明らかに、レコードセット基準が正しいことを確認してください。私はそのビットについていくつか推測しました。

関連する問題