Solved

Data vailidation in True DBGrid

Posted on 1998-05-31
1
1,046 Views
Last Modified: 2012-08-14
I have added the codings as follows to check the data in Item No.'s column, if the input item no. is valid, its descripton will be displayed at column 4 and column 5.


Private Sub TDBGridLoanDetails_BeforeColUpdate(ByVal ColIndex As Integer, OldValue As Variant, Cancel As Integer)
    If ColIndex = 2 Then
        If TDBGridLoanDetails.Text = "" Then
            PostMsgId = 1 'Item no. may not be empty.
            ' Schedule the PostEvent event
            TDBGridLoanDetails.PostMsg PostMsgId
       
            ' The following is used to keep the cell blank
            ' (remove it to restore the old cell value)
            OldValue = ""
       
            ' Cancel the update and keep focus on this cell
            Cancel = True
            Exit Sub
        End If
       
        If ItemAvailable(CLng(TDBGridLoanDetails.Text)) Then
            ShowDescription
        Else
            TDBGridLoanDetails.PostMsg PostMsgId
            OldValue = ""
            Cancel = True
        End If
       
    End If
End Sub

Sub ShowDescription()
    TDBGridLoanDetails.Columns("Model Description").Value = ItemModel
    TDBGridLoanDetails.Columns("Serial No.").Value = ItemSerial
End Sub

However, it's description does not display.
What's the problem ?

I have tried another method, I check the item no. at the KeyPress method of the TDBgrid.

If KeyAscii = vbKeyReturn Or KeyAscii = vbKeyTab Or _
       KeyAscii = vbKeyLeft Or KeyAscii = vbKeyRight Or _
       KeyAscii = vbKeyUp Or KeyAscii = vbKeyDown Then
        'Check Item No.
        If TDBGridLoanDetails.Col = 2 Then
            If TDBGridLoanDetails.Text = "" Then
                PostMsgId = 1 'Item no. may not be empty.
                ' Schedule the PostEvent event
                TDBGridLoanDetails.PostMsg PostMsgId
                Exit Sub
            End If
       
            If ItemAvailable(CLng(TDBGridLoanDetails.Text)) Then
                ShowDescription
            Else
                TDBGridLoanDetails.PostMsg PostMsgId
            End If
        End If
    End If
End Sub


At this case, the item's description can be displayed at column 4 and column 5 when user press [Enter] key but not the arrow keys or the tab key.
0
Comment
Question by:yyjulie
1 Comment
 
LVL 1

Accepted Solution

by:
terencebeh earned 20 total points
ID: 1462163
Try put the similar code in the KeyDown event. Use KeyCode instead of KeyAscii in the KeyDown event.

0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
VBA error replacing data 6 40
How does CurrentUser work? 10 38
Excel Automation VBA 19 88
Export Data to Different .csv Files 26 114
When trying to find the cause of a problem in VBA or VB6 it's often valuable to know what procedures were executed prior to the error. You can use the Call Stack for that but it is often inadequate because it may show procedures you aren't intereste…
Article by: Martin
Here are a few simple, working, games that you can use as-is or as the basis for your own games. Tic-Tac-Toe This is one of the simplest of all games.   The game allows for a choice of who goes first and keeps track of the number of wins for…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…

789 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question