Link to home
Start Free TrialLog in
Avatar of jaisonshereen
jaisonshereen

asked on

How to put a messagebox in vb

i need to put a message box on the for the error 3021

how to do that?


Public Sub CheckForNullSearch()
On Error GoTo Err_CheckForNullSearch
    
    'Checks general search form for any nulls
    'Dirty = False
    
    If IsNull(Me.Combo_Year) Or Me.Combo_Year = "0" Or Me.Combo_Year = "" Then Me.Combo_Year = "Year"
    If IsNull(Me.Combo_TempPromoID) Or Me.Combo_TempPromoID = "" Then Me.Combo_TempPromoID = "0"
    If IsNull(Me.Combo_EnteredBy) Or Me.Combo_EnteredBy = "0" Or Me.Combo_EnteredBy = "" Then Me.Combo_EnteredBy = "Log on"
    If IsNull(Me.Combo_PromoPeriod) Or Me.Combo_PromoPeriod = "0" Or Me.Combo_PromoPeriod = "" Then Me.Combo_PromoPeriod = "Period"
    If IsNull(Me.Combo_Location) Or Me.Combo_Location = "" Or Me.Combo_Location = "" Then Me.Combo_Location = "Location"
    If IsNull(Me.Combo_CategoryMan) Or Me.Combo_CategoryMan = "0" Or Me.Combo_CategoryMan = "" Then Me.Combo_CategoryMan = "Category Manager"
    If IsNull(Me.Combo_CatID) Or Me.Combo_CatID = "" Then Me.Combo_CatID = "0"
    If IsNull(Me.Combo_StartDate) Or Me.Combo_StartDate = "" Or Me.Combo_StartDate = "0" Then Me.Combo_StartDate = "Start Date"
    If IsNull(Me.Combo_Status) Or Me.Combo_Status = "" Or Me.Combo_Status = "0" Then Me.Combo_Status = "Status"
    If IsNull(Me.Combo_article) Or Me.Combo_article = "" Or Me.Combo_article = "0" Then Me.Combo_article = "0"
    
    'Dirty = False
    
Exit_CheckForNullSearch:
    Exit Sub
 
Err_CheckForNullSearch:
    
    'Entered an item not in the list
    If Err.Number = 2237 Then Resume Next
    
    'If a Null value after the dirty=false then error will occur
    If Err.Number = 3058 Then Resume Next
                        
    'No current record
    If Err.Number = 3021 Then Resume Next
                        
    ApplicationError Err.Number, Err.Description, "T_F900_GeneralSearch\CheckForNullSearch"
    Resume Exit_CheckForNullSearch
    
End Sub

Open in new window

Avatar of jaisonshereen
jaisonshereen

ASKER

this is not working
If Err.Number = 3021 Then
    Err.Clear
    MsgBox ("test")
    Resume Next
    Else
    ApplicationError Err.Number, Err.Description, "T_F900_GeneralSearch\CheckForNullSearch"
    Resume Exit_CheckForNullSearch
    End If
    End Sub

Open in new window

SOLUTION
Avatar of c0ldfyr3
c0ldfyr3
Flag of Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
nope its not works..3021 error message box comming instead
which suggested answer does not work?

AW
nothing works !
try this, and tell me what the Message Box shows:
Err_CheckForNullSearch:
    Dim ans as Integer
    ans = -1
    'Entered an item not in the list
    If Err.Number = 2237 Then 
      Err.Clear
      ans = MsgBox("'Entered an item not in the list" & vbCrlF & "Do you wish to continue?", vbYesNo)
      If ans = vbYes then
          Resume Next
      End If
    End If
    
    'If a Null value after the dirty=false then error will occur
    If Err.Number = 3058 Then 
      Err.Clear
      ans = MsgBox("Null value after the dirty=false " & vbCrlF & "Do you wish to continue?", vbYesNo)
      If ans = vbYes then
          Resume Next
      End If
    End If
                        
    'No current record
    If Err.Number = 3021 Then
      Err.Clear  
      ans = MsgBox("No current record" & vbCrlF & "Do you wish to continue?", vbYesNo)
      If ans = vbYes then
          Resume Next
      End If
    End If
    MsgBox "Err.Number = " & err.Number, vbOkOnly
    If ans = -1 then                   
         ApplicationError Err.Number, Err.Description, "T_F900_GeneralSearch\CheckForNullSearch"
    End If
    Resume Exit_CheckForNullSearch

Open in new window

no hope

still the same 3021 error msgbox :-(
Ok, I know what is going on.  It seems that there are a broad range of Run-Time errors that are NOT 'Trappable' - that is, when they occur, they do NOT trigger the On Error Goto .... error handler mechanism.

If you open the VB6 IDE, and click on Help, then select Index, and enter "Trapping Errors", you will get the 'official' list of Trappable run-time errors.  Non of the errors you are attemting to handle are listed as Trappable Run-Time errors.

What routine is calling your CheckForNullSearch procedure?  The error is probably occuring there.

AW
In addition, there is NOTHING in your procedure CheckForNullSearch which is in ant way related to the 3021 - No Crrent Record condition.  The code in your procedure does not make use of a recordset, or attempting to access data from a recordset.  Thast should be an additional indication that the error you are getting is not being triggered in the procedure where you seem to think it is occurring.

AW
Glad to be of assistance.  How did you resolve this issue?

AW
i gone for debugging  by cntr+break

where i see n the cursor position i put the message box with the case:3021

still

err.clear  resolved the issue!

Thanks all support !