Solved

DataGrid and BeforeUpdate

Posted on 2000-02-23
3
348 Views
Last Modified: 2013-12-26
Hi guys... this is my problem.

In a form I have:
1) One Datagrid, linked to an AdoData control. this works ok.
3) All fields must be filled (IMPORTANT). This is a rule into the table (MDB).
4) A CommandButton.
5) A Sub (CancelAdd) for canceling row adds in the DataGrid.

How this works:
1) When I want to add a registry I press the "Add" CommandButton. This is Ok.
2) To cancel the add before or after filling some or all field I press ESC and the CancelAdd sub is called. This is ok.
3) The CancelAdd Sub do:
DataGrid1.AllowUpdate=False
DataGrid1.AllowAddNew=False
And locate the cursor in another cell. This is Ok too.

But...
4) There is a button to cancel the adding too. When I press it, it calls the same CancelAdd sub, and gives me an error: "Blank fields are not allowed" (because of the table's rules).

The first method (ESC) is called from DataGrid_KeyUp, the second in Command1_Click.

The only one difference I've notice when I click on the button is that the DataGrid1_BeforeUpdate event is activated, but doing it with ESC the BeforeUpdate is not called.

If I Cancel the BeforeUpdate, It wont let me get out of the registry, and the cursor stays in the last row even allowupdate or allowaddnew are disable.

What the hell happens here?
0
Comment
Question by:nfernand
  • 2
3 Comments
 
LVL 12

Accepted Solution

by:
jgv earned 50 total points
ID: 2552882
Try refreshing the data control after you cancel the new record:

Private Sub CancelAdd()
   DataGrid1.AllowAddNew = False
   DataGrid1.AllowUpdate = False
   Adodc1.Refresh
End Sub


0
 
LVL 2

Author Comment

by:nfernand
ID: 2554238
Good man.... I've never had imagined something like that.  Thanks.
0
 
LVL 12

Expert Comment

by:jgv
ID: 2554556
No sweat :)

One thing that you have to keep in mind when working with a bound DataGrid is that it is a tool used to display and make limited changes to the contents of an existing recordset. Half the things you can't do with the grid can be done with the recordset, which are then reflected in the grid.

It took me awhile to start 'thinking out of the box' (grid in this case) but it's a trap that's easy to fall into :)
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
LINQ return type for nested group query 6 74
VB6 code to programmatically convert pdf to excel 21 70
Adding to a VBA? 6 63
VBA: Select SQL query based on a config Sheet v2 11 38
I’ve seen a number of people looking for examples of how to access web services from VB6.  I’ve been using a test harness I built in VB6 (using many resources I found online) that I use for small projects to work out how to communicate with web serv…
Most everyone who has done any programming in VB6 knows that you can do something in code like Debug.Print MyVar and that when the program runs from the IDE, the value of MyVar will be displayed in the Immediate Window. Less well known is Debug.Asse…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
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…

867 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

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now