Redirecting a data source (Access 2k/VB6)

Please support our Visual Basic 4 / 5 / 6 advertiser: Programming Forums - DaniWeb Sister Site
Reply

Join Date: Jun 2008
Posts: 1
Reputation: bpcslave is an unknown quantity at this point 
Solved Threads: 0
bpcslave bpcslave is offline Offline
Newbie Poster

Redirecting a data source (Access 2k/VB6)

 
0
  #1
Jun 11th, 2008
Good evening, all...

Quick question, wonder if any light can be shed. I'm running a two-form program that reads from a database with three tables - first form has a filelist box that lists the available databases, the form takes that filename and uses it to set the source for ADODC data controls, so essentially you can choose which database to be reading from on the first page (important as my program is an "interactive fiction" gamebook that lets you choose from different stories (pre-written databases)).

When the second form (where the game itself is displayed) loads, it calls a procedure that changes the connection string to read from app.path & the database filename, then sets the datasource for all of the labels to their respective data controls, so far, no problems.

I was having some problems with it updating a boolean field in the database to mark whether an "encounter" (monster / pickup / treasure etc) has been visited, to avoid it popping up each time you enter a location. I'll be honest, I hadn't coded VB until about eight months ago and I was having problems with getting the ADODC objects to write to the database... so I cheated, put in a basic data object linked to a checkbox (chkDone) and linked label called lblEncTally to keep track of which ID line it was reading - then called the following after each encounter:

Visual Basic 4 / 5 / 6 Syntax (Toggle Plain Text)
  1. datEncDone.Recordset.MoveFirst
  2. Do Until Val(lblEncTally.Caption) = Val(lblEncTest.Caption)
  3. datEncDone.Recordset.MoveNext
  4. lblEncTally.Refresh
  5. Loop
  6. chkDone.Value = 1

Crude, but effective. When the encounter was done, the data object would cycle through until the lblEncTally value was the same as the lblEncTest (which displayed the number of the encounter, for testing purposes), it would check the box, and thereby edit the database. Worked fine, not a problem. I've never used ADODC before and because of time constraints I had to go with what I knew.

I also have a hidden database called Default.mdb, that the datasources point to initially to display a welcome message and default field values, but the filelist is set to ignore hidden files, so it'll never be picked by mistake and will always be supplanted by a "real" database (the button to proceed is inactive until the user clicks a filename). I've made test readouts to check which database is being read from by all the controls, without variation it's the one I choose at the filelist box. I did have to put in a routine that would set the datasource for all the labels again when the second form loads because they appeared to be reading from the default.mdb depite the data controls being set to read from the new database. I went to try to set the labels to read from the data object, but it comes up with a type mismatch error, hovering over it in debug mode shows that it's trying to read the caption rather than the object name (see attached screenie). I've got 14 records in the Encounters table, but when I make the data object and lblEncTally visible to bughunt, cycling through stops at 12, meaning that when I try to invoke encounter 13 it throws up errors about records not found. I think the Default.mdb that I'm using for testing and as a template has 12 records, so it's sticking with that, annoyingly.

So, to cut a long story short (too late!) - is there a way to set the DataSource property from a label to make sure it's pointing at the data object rather than its caption? Is there something obvious I'm missing? Any suggestions? Not asking for a walkthrough as this is something I want to bash out on my own, but right now I feel like I'm running against a brick wall...
Attached Thumbnails
problemcode.jpg  
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:



Other Threads in the Visual Basic 4 / 5 / 6 Forum


Views: 745 | Replies: 0
Thread Tools Search this Thread



Tag cloud for Visual Basic 4 / 5 / 6
About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC