From max.wanadoo at gmail.com Sun Feb 1 03:55:13 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 1 Feb 2009 09:55:13 -0000 Subject: [AccessD] Remote compact and repair using A3K In-Reply-To: <7650E043F5F9498DAF060C3D0589F28D@danwaters> References: <000301c98267$3b472350$b1d569f0$@com> <49823b4e.0ec5100a.2388.4bf6@mx.google.com> <7650E043F5F9498DAF060C3D0589F28D@danwaters> Message-ID: <4985717d.0ac0100a.4a03.ffff9c36@mx.google.com> Don't know if this will help, but here it is. Uses reference to FileSystem objects to get file sizes but not necessary. The actual line that does the compacting is:- DBEngine.CompactDatabase strCurrentMDB, strCompactedMDB, ";pwd=mypassword", , ";pwd=mypassword" Max Public Function pfCompactRepairBE() ' Original source By Andy Lacey ' updated by max sherman ' log the event and time Call pfLogEvent("pfCompactRepairBE-Start") Const strOldMDB As String = "z:\Data\MCM_BEndA3K-OLD.mdb" Const strCurrentMDB As String = "z:\Data\MCM_BEndA3K.mdb" Const strCompactedMDB As String = "z:\Data\MCM_BEndA3K-COMPACTED.mdb" Dim datStartDate As Date, gdatStarted As Date, gdatFinished As Date Dim strDay As String datStartDate = DateAdd("D", 0, Date) Dim strBody As String Dim lngOldSize As Long Dim lngNewSize As Long Dim lngChange As Long Dim lngOldSizeKB As Long Dim lngNewSizeKB As Long Dim lngChangeKB As Long Dim lngOldSizeMB As Long Dim lngNewSizeMB As Long Dim lngChangeMB As Long Dim dbs As DAO.Database, rst As DAO.Recordset Dim sql As String Dim fs As FileSystemObject Set fs = New FileSystemObject Set dbs = CurrentDb gdatStarted = Now() ' weekdays start on Sun = 1 and Sat = 7 strDay = pfGetDOW If Weekday(Date) = 1 Or Weekday(Date) = 0 Then ' skip weekends Call pfLogEvent("pfCompactRepairBE-Halted because it is a " & strDay) Else On Error GoTo Repair_Err ' kill the IP Address so that the BE does not find any FE's still holding the lock. Shell ("CMD /C IPCONFIG /RELEASE") ' get the current size on disk lngOldSize = FileLen(strCurrentMDB) On Error Resume Next Kill strCompactedMDB On Error GoTo Compact_Err DoEvents DBEngine.CompactDatabase strCurrentMDB, strCompactedMDB, ";pwd=mypassword", , ";pwd=mypassword" DoEvents ' get the new file size after compacting lngNewSize = FileLen(strCompactedMDB) lngChange = lngOldSize - lngNewSize lngOldSizeKB = lngOldSize / 1024 lngNewSizeKB = lngNewSize / 1024 lngChangeKB = lngChange / 1024 lngOldSizeMB = lngOldSizeKB / 1024 lngNewSizeMB = lngNewSizeKB / 1024 lngChangeMB = lngChangeKB / 1024 ' see how long it took gdatFinished = Now strBody = strDay & " - Repair and Compact of " & strCurrentMDB & " ran successfully " & vbCrLf & vbCrLf _ & "Old Size " & Format(lngOldSizeKB, "#,##0") & "kb" & vbCrLf _ & "New Size " & Format(lngNewSizeKB, "#,##0") & "kb" & vbCrLf _ & "Reduction Of " & Format(lngChangeKB, "#,##0") & "kb" & vbCrLf & vbCrLf DoEvents ' copy files over fs.CopyFile strCurrentMDB, strOldMDB, True DoEvents fs.CopyFile strCompactedMDB, strCurrentMDB, True DoEvents ' renew the IP Address Shell ("CMD /C IPCONFIG /RENEW") Call pfLogEvent(strBody) Call pfLogEvent("pfCompactRepairBE-OK") End If exithere: On Error Resume Next dbs.Close: Set dbs = Nothing Exit Function Repair_Err: Call pfLogEvent("pfCompactRepairBE-STOPPED REPAIR Errors Found:- " & Err.number & vbCrLf & Err.Description) Resume exithere Compact_Err: Call pfLogEvent("pfCompactRepairBE-STOPPED COMPACT Errors Found:- " & Err.number & vbCrLf & Err.Description) Resume exithere End Function Private Function pfGetDOW() As String ' weekdays start on Sun = 1 and Sat = 7 pfGetDOW = Choose(Weekday(Date), "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat") End Function From stuart at lexacorp.com.pg Sun Feb 1 04:18:43 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Sun, 01 Feb 2009 20:18:43 +1000 Subject: [AccessD] Remote compact and repair using A3K In-Reply-To: <4985717d.0ac0100a.4a03.ffff9c36@mx.google.com> References: , <7650E043F5F9498DAF060C3D0589F28D@danwaters>, <4985717d.0ac0100a.4a03.ffff9c36@mx.google.com> Message-ID: <498603A3.5978.F702FD7@stuart.lexacorp.com.pg> On 1 Feb 2009 at 9:55, Max Wanadoo wrote: Subject: Remote compact and repair using A3K [sic] Where do you keep your time machine? And is MS really still turning out versions of Access in the year 3000? From max.wanadoo at gmail.com Sun Feb 1 04:31:53 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 1 Feb 2009 10:31:53 -0000 Subject: [AccessD] Remote compact and repair using A3K In-Reply-To: <498603A3.5978.F702FD7@stuart.lexacorp.com.pg> References: , <7650E043F5F9498DAF060C3D0589F28D@danwaters>, <4985717d.0ac0100a.4a03.ffff9c36@mx.google.com> <498603A3.5978.F702FD7@stuart.lexacorp.com.pg> Message-ID: <49857a14.096c100a.51e6.ffffd213@mx.google.com> 1. On my wrist. Where do you keep yours? 2. Wouldn't be surprised. This one is A2003. 3. Where are you based? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: 01 February 2009 10:19 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Remote compact and repair using A3K On 1 Feb 2009 at 9:55, Max Wanadoo wrote: Subject: Remote compact and repair using A3K [sic] Where do you keep your time machine? And is MS really still turning out versions of Access in the year 3000? -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Sun Feb 1 04:53:23 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Sun, 01 Feb 2009 20:53:23 +1000 Subject: [AccessD] Remote compact and repair using A3K In-Reply-To: <49857a14.096c100a.51e6.ffffd213@mx.google.com> References: , <498603A3.5978.F702FD7@stuart.lexacorp.com.pg>, <49857a14.096c100a.51e6.ffffd213@mx.google.com> Message-ID: <49860BC3.23022.F8FEE46@stuart.lexacorp.com.pg> On 1 Feb 2009 at 10:31, Max Wanadoo wrote: > 1. On my wrist. Where do you keep yours? Ouch! I walked into that one. > 2. Wouldn't be surprised. This one is A2003. > 3. Where are you based? Port Moresby. Cheers, Stuart > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: 01 February 2009 10:19 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Remote compact and repair using A3K > > On 1 Feb 2009 at 9:55, Max Wanadoo wrote: > > Subject: Remote compact and repair using A3K [sic] > > > Where do you keep your time machine? > And is MS really still turning out versions of Access in the year 3000? > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sun Feb 1 05:01:56 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 1 Feb 2009 11:01:56 -0000 Subject: [AccessD] Remote compact and repair using A3K In-Reply-To: <49860BC3.23022.F8FEE46@stuart.lexacorp.com.pg> References: , <498603A3.5978.F702FD7@stuart.lexacorp.com.pg>, <49857a14.096c100a.51e6.ffffd213@mx.google.com> <49860BC3.23022.F8FEE46@stuart.lexacorp.com.pg> Message-ID: <49858120.0ac0100a.71fd.ffff9b7b@mx.google.com> You are joking. I was just reading about Port Moseby on the internet. What a coincidence is that or what? Do not take this the wrong way, but it has a fearsome reputation with the Rascals (!) etc and is rated the "worst" place to live on earth via wikepedia. Is that right, I would love to hear from somebody actually there. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: 01 February 2009 10:53 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Remote compact and repair using A3K On 1 Feb 2009 at 10:31, Max Wanadoo wrote: > 1. On my wrist. Where do you keep yours? Ouch! I walked into that one. > 2. Wouldn't be surprised. This one is A2003. > 3. Where are you based? Port Moresby. Cheers, Stuart > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: 01 February 2009 10:19 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Remote compact and repair using A3K > > On 1 Feb 2009 at 9:55, Max Wanadoo wrote: > > Subject: Remote compact and repair using A3K [sic] > > > Where do you keep your time machine? > And is MS really still turning out versions of Access in the year 3000? > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From DWUTKA at Marlow.com Sun Feb 1 10:18:45 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Sun, 1 Feb 2009 10:18:45 -0600 Subject: [AccessD] OT: Calling all women IT professionals In-Reply-To: <00c201c9841e$38615d00$2f8601c7@SusanOne> Message-ID: Email is fine. I'm a Network Systems Administrator (with just a tad of db and programming skills....) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: Saturday, January 31, 2009 9:36 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: Calling all women IT professionals Yes -- but also send a short job description -- to lend credibility -- gotta be an IT type professional. :) Also, if you want to include a contact, let me know where to include your email or a url. Thanks! Susan H. ----- Original Message ----- From: "Drew Wutka" To: "Access Developers discussion and problem solving" Sent: Saturday, January 31, 2009 6:54 PM Subject: Re: [AccessD] OT: Calling all women IT professionals > Can this include tools we built? > > If so, here would be my list: > > VB6 --> Can do so much with this, and so quickly, awesome for quick > programs/utilities. > > Virtual PC / Virtual Server --> Totally free platform for all sorts of > things: Test platforms ready in a minute or two. Trash platforms (for > surfing the dark alleys of the web) ready in a minute or two. Ability > to run every MS operating system from one platform, and also any > combination of installed software on each. > > Remote Administrator: From Famatech.com --> Great tool for > administrating your network. > > ISFE (Information Services Front End) --> Custom helpdesk application. > Has a company phone list, from which I can search/see all sorts of > information about employees, and their computers (what computers they > are currently logged into, what computers they have logged into (and > very soon what computers they 'own' or are in charge of)), and from that > same interface, I can launch Remote Administrator, Computer Manager, and > Windows Explorer for their local drives. > > MoveWindows --> Custom VB .exe, that captures all of the open windows > on your machine. Allows you to move, resize and change the visibility > of any window on your machine. (VERY handy for multiple monitor issues > when an app gets 'lost'). > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins > Sent: Saturday, January 31, 2009 10:32 AM > To: AccessD at databaseadvisors.com > Subject: [AccessD] OT: Calling all women IT professionals > > Okay, over the last few weeks I've been putting together a list of > "can't > live without" utilities and tools for an article to be published on > TechRepublic.com. > > Now, I don't want to make a political statement, but so far, there's > only > one woman on that list! I'd like a few more, and no, I won't say > anything > about the gender mix in the content -- it's not relevant, but I'd like a > > better mix. > > If you'd like to contribute, I just need a list of the tools/utilities > that > you use all the time and would feel lost without. I'll also need a short > > description of your current contribution to the IT industry (what you > do) > and if you like, I can include contact information -- this is a great > way > for those of you working for yourself to network a bit. I never promise > results when I do this, but it can't hurt. > > I'm staring at a deadline, so um... if you'd be quick about it too????? > :) > > Oh, and any fellow who'd still like to contribute, you certainly may -- > > there's no limit on the number. > > Please contact me privately at ssharkins at gmail.com. I think this article > has > the potential to generate a lot of interest and discussion and should > prove > helpful for other developers/administrators/ITwhatevers. > > Susan H. > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy the > material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended recipient > is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Sun Feb 1 10:20:20 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Sun, 1 Feb 2009 10:20:20 -0600 Subject: [AccessD] IronSpeed In-Reply-To: <49852c34.0722300a.4dcf.0d46@mx.google.com> Message-ID: Oh, it was WAY complicated. Really fun to make. The part that runs the reports was great for what we needed at my job, but to take it to the next level, of actually running an entire .mdb 'remotely' through the web wouldn't have been worth the effort, not when there are things like Terminal Server /Remote Desktop out there.... It was a lot of fun to make though. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Saturday, January 31, 2009 11:00 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] IronSpeed Thanks Drew. Bit too complicated for me, but sounds good. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 31 January 2009 00:39 To: Access Developers discussion and problem solving Subject: Re: [AccessD] IronSpeed Actually, I built something that was going to lead to that. Started as a web report runner. It would give you a list of reports in a database (did this back in the 97 days), when you selected a report, it would display any prompts that Access sees (logon prompts, query expression prompts, etc) to the user in their browser, and then when the report ran, it would let the user open it as HTML or download it in any of the formats Access allowed. Worked great. Tried to do the same with forms, and ran into the issue that Access forms are not 'normal' windows. There is only one active control, none of the inactive controls are actual windows (like most controls on normal windows are). Had other projects come up, so I never dug back into it. For S & G's , I put two exe's in http://www.marlow.com/CriteriaGrabber.zip (That link may only be active for a while, we're moving our website soon). One is CriteriaGrabber.exe. Run that program. Open an Access 97 database. Run WindowsInfo.exe, move the mouse over the title bar of the Access Window (the Class should show OMain). Take the hWnd of the Access Window and replace Text1 (in the CriteriaGrabber), then click start timer. Now, whenever a 'popup' window (not a form) is displayed in access, the Criteria Grabber will display it's own 'mimicked' version of that dialogue window, and even 'remotes' it. (ie, if it's a prompt for criteria, you can put the criteria into the 'copy' and click the appropriate button, and it will push that data (and whatever button you pushed) to the actual dialog window. That .exe is just a test I was running, the actual system does something very similar, but sends an HTML version of the dialog windows through to the users. Access 2003 has changed the class names of the dialog windows, so my .exe won't mimic labels or text boxes..... go figure.... Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Thursday, January 29, 2009 3:39 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] IronSpeed Thanks John - agreed. It would have been nice to "pop in" an MDB at one end and get "pop out" a Web enabled version at the other. A la PDF-Word converters. Sort of "shell" that the mdb runs in within the browser. Pipe dreams I suppose. Thanks Max On Thu, Jan 29, 2009 at 9:09 AM, wrote: > Hi Max > > No never used IronSpeed. It looked like hard work. And judging by what > others are saying on this board I took the right decision. > > john c > > > -----Original Message----- > From: Max Wanadoo > To: 'Access Developers discussion and problem solving' < > accessd at databaseadvisors.com> > Sent: Wed, 28 Jan 2009 20:38 > Subject: [AccessD] IronSpeed > > > > John Cliviger: > > John, do you (or anybody) have any experience of deploying MS Access DBs to > IronSpeed? > > http://www.ironspeed.com/products/DownloadNow.aspx?c=CP02 > > Thanks > Max > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > > ________________________________________________________________________ > AOL Email goes Mobile! You can now read your AOL Emails whilst on the move. > Sign up for a free AOL Email account with unlimited storage today. > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From max.wanadoo at gmail.com Sun Feb 1 10:31:13 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 1 Feb 2009 16:31:13 -0000 Subject: [AccessD] OT: Calling all women IT professionals In-Reply-To: References: <00c201c9841e$38615d00$2f8601c7@SusanOne> Message-ID: <4985ce4d.0856100a.0d4e.606f@mx.google.com> >>with just a tad of db and programming skills....) Yeah, right! And I can't drink beer! Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 01 February 2009 16:19 To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: Calling all women IT professionals Email is fine. I'm a Network Systems Administrator (with just a tad of db and programming skills....) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: Saturday, January 31, 2009 9:36 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: Calling all women IT professionals Yes -- but also send a short job description -- to lend credibility -- gotta be an IT type professional. :) Also, if you want to include a contact, let me know where to include your email or a url. Thanks! Susan H. ----- Original Message ----- From: "Drew Wutka" To: "Access Developers discussion and problem solving" Sent: Saturday, January 31, 2009 6:54 PM Subject: Re: [AccessD] OT: Calling all women IT professionals > Can this include tools we built? > > If so, here would be my list: > > VB6 --> Can do so much with this, and so quickly, awesome for quick > programs/utilities. > > Virtual PC / Virtual Server --> Totally free platform for all sorts of > things: Test platforms ready in a minute or two. Trash platforms (for > surfing the dark alleys of the web) ready in a minute or two. Ability > to run every MS operating system from one platform, and also any > combination of installed software on each. > > Remote Administrator: From Famatech.com --> Great tool for > administrating your network. > > ISFE (Information Services Front End) --> Custom helpdesk application. > Has a company phone list, from which I can search/see all sorts of > information about employees, and their computers (what computers they > are currently logged into, what computers they have logged into (and > very soon what computers they 'own' or are in charge of)), and from that > same interface, I can launch Remote Administrator, Computer Manager, and > Windows Explorer for their local drives. > > MoveWindows --> Custom VB .exe, that captures all of the open windows > on your machine. Allows you to move, resize and change the visibility > of any window on your machine. (VERY handy for multiple monitor issues > when an app gets 'lost'). > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins > Sent: Saturday, January 31, 2009 10:32 AM > To: AccessD at databaseadvisors.com > Subject: [AccessD] OT: Calling all women IT professionals > > Okay, over the last few weeks I've been putting together a list of > "can't > live without" utilities and tools for an article to be published on > TechRepublic.com. > > Now, I don't want to make a political statement, but so far, there's > only > one woman on that list! I'd like a few more, and no, I won't say > anything > about the gender mix in the content -- it's not relevant, but I'd like a > > better mix. > > If you'd like to contribute, I just need a list of the tools/utilities > that > you use all the time and would feel lost without. I'll also need a short > > description of your current contribution to the IT industry (what you > do) > and if you like, I can include contact information -- this is a great > way > for those of you working for yourself to network a bit. I never promise > results when I do this, but it can't hurt. > > I'm staring at a deadline, so um... if you'd be quick about it too????? > :) > > Oh, and any fellow who'd still like to contribute, you certainly may -- > > there's no limit on the number. > > Please contact me privately at ssharkins at gmail.com. I think this article > has > the potential to generate a lot of interest and discussion and should > prove > helpful for other developers/administrators/ITwhatevers. > > Susan H. > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy the > material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended recipient > is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sun Feb 1 10:31:33 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 1 Feb 2009 16:31:33 -0000 Subject: [AccessD] IronSpeed In-Reply-To: References: <49852c34.0722300a.4dcf.0d46@mx.google.com> Message-ID: <4985ce61.06a0100a.1838.ffffa2d6@mx.google.com> But, if you could "envelope" an mdb within a web browser you could make a TON of money (ie, so much that you have to weight it) Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 01 February 2009 16:20 To: Access Developers discussion and problem solving Subject: Re: [AccessD] IronSpeed Oh, it was WAY complicated. Really fun to make. The part that runs the reports was great for what we needed at my job, but to take it to the next level, of actually running an entire .mdb 'remotely' through the web wouldn't have been worth the effort, not when there are things like Terminal Server /Remote Desktop out there.... It was a lot of fun to make though. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Saturday, January 31, 2009 11:00 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] IronSpeed Thanks Drew. Bit too complicated for me, but sounds good. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 31 January 2009 00:39 To: Access Developers discussion and problem solving Subject: Re: [AccessD] IronSpeed Actually, I built something that was going to lead to that. Started as a web report runner. It would give you a list of reports in a database (did this back in the 97 days), when you selected a report, it would display any prompts that Access sees (logon prompts, query expression prompts, etc) to the user in their browser, and then when the report ran, it would let the user open it as HTML or download it in any of the formats Access allowed. Worked great. Tried to do the same with forms, and ran into the issue that Access forms are not 'normal' windows. There is only one active control, none of the inactive controls are actual windows (like most controls on normal windows are). Had other projects come up, so I never dug back into it. For S & G's , I put two exe's in http://www.marlow.com/CriteriaGrabber.zip (That link may only be active for a while, we're moving our website soon). One is CriteriaGrabber.exe. Run that program. Open an Access 97 database. Run WindowsInfo.exe, move the mouse over the title bar of the Access Window (the Class should show OMain). Take the hWnd of the Access Window and replace Text1 (in the CriteriaGrabber), then click start timer. Now, whenever a 'popup' window (not a form) is displayed in access, the Criteria Grabber will display it's own 'mimicked' version of that dialogue window, and even 'remotes' it. (ie, if it's a prompt for criteria, you can put the criteria into the 'copy' and click the appropriate button, and it will push that data (and whatever button you pushed) to the actual dialog window. That .exe is just a test I was running, the actual system does something very similar, but sends an HTML version of the dialog windows through to the users. Access 2003 has changed the class names of the dialog windows, so my .exe won't mimic labels or text boxes..... go figure.... Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Thursday, January 29, 2009 3:39 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] IronSpeed Thanks John - agreed. It would have been nice to "pop in" an MDB at one end and get "pop out" a Web enabled version at the other. A la PDF-Word converters. Sort of "shell" that the mdb runs in within the browser. Pipe dreams I suppose. Thanks Max On Thu, Jan 29, 2009 at 9:09 AM, wrote: > Hi Max > > No never used IronSpeed. It looked like hard work. And judging by what > others are saying on this board I took the right decision. > > john c > > > -----Original Message----- > From: Max Wanadoo > To: 'Access Developers discussion and problem solving' < > accessd at databaseadvisors.com> > Sent: Wed, 28 Jan 2009 20:38 > Subject: [AccessD] IronSpeed > > > > John Cliviger: > > John, do you (or anybody) have any experience of deploying MS Access DBs to > IronSpeed? > > http://www.ironspeed.com/products/DownloadNow.aspx?c=CP02 > > Thanks > Max > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > > ________________________________________________________________________ > AOL Email goes Mobile! You can now read your AOL Emails whilst on the move. > Sign up for a free AOL Email account with unlimited storage today. > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From DWUTKA at Marlow.com Sun Feb 1 10:47:07 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Sun, 1 Feb 2009 10:47:07 -0600 Subject: [AccessD] IronSpeed In-Reply-To: <4985ce61.06a0100a.1838.ffffa2d6@mx.google.com> Message-ID: Already exists, it's called Terminal Services..... You can hit it with a web browser, and it does more then just Access! ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Sunday, February 01, 2009 10:32 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] IronSpeed But, if you could "envelope" an mdb within a web browser you could make a TON of money (ie, so much that you have to weight it) Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 01 February 2009 16:20 To: Access Developers discussion and problem solving Subject: Re: [AccessD] IronSpeed Oh, it was WAY complicated. Really fun to make. The part that runs the reports was great for what we needed at my job, but to take it to the next level, of actually running an entire .mdb 'remotely' through the web wouldn't have been worth the effort, not when there are things like Terminal Server /Remote Desktop out there.... It was a lot of fun to make though. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Saturday, January 31, 2009 11:00 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] IronSpeed Thanks Drew. Bit too complicated for me, but sounds good. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 31 January 2009 00:39 To: Access Developers discussion and problem solving Subject: Re: [AccessD] IronSpeed Actually, I built something that was going to lead to that. Started as a web report runner. It would give you a list of reports in a database (did this back in the 97 days), when you selected a report, it would display any prompts that Access sees (logon prompts, query expression prompts, etc) to the user in their browser, and then when the report ran, it would let the user open it as HTML or download it in any of the formats Access allowed. Worked great. Tried to do the same with forms, and ran into the issue that Access forms are not 'normal' windows. There is only one active control, none of the inactive controls are actual windows (like most controls on normal windows are). Had other projects come up, so I never dug back into it. For S & G's , I put two exe's in http://www.marlow.com/CriteriaGrabber.zip (That link may only be active for a while, we're moving our website soon). One is CriteriaGrabber.exe. Run that program. Open an Access 97 database. Run WindowsInfo.exe, move the mouse over the title bar of the Access Window (the Class should show OMain). Take the hWnd of the Access Window and replace Text1 (in the CriteriaGrabber), then click start timer. Now, whenever a 'popup' window (not a form) is displayed in access, the Criteria Grabber will display it's own 'mimicked' version of that dialogue window, and even 'remotes' it. (ie, if it's a prompt for criteria, you can put the criteria into the 'copy' and click the appropriate button, and it will push that data (and whatever button you pushed) to the actual dialog window. That .exe is just a test I was running, the actual system does something very similar, but sends an HTML version of the dialog windows through to the users. Access 2003 has changed the class names of the dialog windows, so my .exe won't mimic labels or text boxes..... go figure.... Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Thursday, January 29, 2009 3:39 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] IronSpeed Thanks John - agreed. It would have been nice to "pop in" an MDB at one end and get "pop out" a Web enabled version at the other. A la PDF-Word converters. Sort of "shell" that the mdb runs in within the browser. Pipe dreams I suppose. Thanks Max On Thu, Jan 29, 2009 at 9:09 AM, wrote: > Hi Max > > No never used IronSpeed. It looked like hard work. And judging by what > others are saying on this board I took the right decision. > > john c > > > -----Original Message----- > From: Max Wanadoo > To: 'Access Developers discussion and problem solving' < > accessd at databaseadvisors.com> > Sent: Wed, 28 Jan 2009 20:38 > Subject: [AccessD] IronSpeed > > > > John Cliviger: > > John, do you (or anybody) have any experience of deploying MS Access DBs to > IronSpeed? > > http://www.ironspeed.com/products/DownloadNow.aspx?c=CP02 > > Thanks > Max > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > > ________________________________________________________________________ > AOL Email goes Mobile! You can now read your AOL Emails whilst on the move. > Sign up for a free AOL Email account with unlimited storage today. > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From max.wanadoo at gmail.com Sun Feb 1 11:00:01 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 1 Feb 2009 17:00:01 -0000 Subject: [AccessD] IronSpeed In-Reply-To: References: <4985ce61.06a0100a.1838.ffffa2d6@mx.google.com> Message-ID: <4985d50d.02ab100a.7f1c.5caf@mx.google.com> Oh, sorry Drew. But you were there first, I guess. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 01 February 2009 16:47 To: Access Developers discussion and problem solving Subject: Re: [AccessD] IronSpeed Already exists, it's called Terminal Services..... You can hit it with a web browser, and it does more then just Access! ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Sunday, February 01, 2009 10:32 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] IronSpeed But, if you could "envelope" an mdb within a web browser you could make a TON of money (ie, so much that you have to weight it) Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 01 February 2009 16:20 To: Access Developers discussion and problem solving Subject: Re: [AccessD] IronSpeed Oh, it was WAY complicated. Really fun to make. The part that runs the reports was great for what we needed at my job, but to take it to the next level, of actually running an entire .mdb 'remotely' through the web wouldn't have been worth the effort, not when there are things like Terminal Server /Remote Desktop out there.... It was a lot of fun to make though. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Saturday, January 31, 2009 11:00 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] IronSpeed Thanks Drew. Bit too complicated for me, but sounds good. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 31 January 2009 00:39 To: Access Developers discussion and problem solving Subject: Re: [AccessD] IronSpeed Actually, I built something that was going to lead to that. Started as a web report runner. It would give you a list of reports in a database (did this back in the 97 days), when you selected a report, it would display any prompts that Access sees (logon prompts, query expression prompts, etc) to the user in their browser, and then when the report ran, it would let the user open it as HTML or download it in any of the formats Access allowed. Worked great. Tried to do the same with forms, and ran into the issue that Access forms are not 'normal' windows. There is only one active control, none of the inactive controls are actual windows (like most controls on normal windows are). Had other projects come up, so I never dug back into it. For S & G's , I put two exe's in http://www.marlow.com/CriteriaGrabber.zip (That link may only be active for a while, we're moving our website soon). One is CriteriaGrabber.exe. Run that program. Open an Access 97 database. Run WindowsInfo.exe, move the mouse over the title bar of the Access Window (the Class should show OMain). Take the hWnd of the Access Window and replace Text1 (in the CriteriaGrabber), then click start timer. Now, whenever a 'popup' window (not a form) is displayed in access, the Criteria Grabber will display it's own 'mimicked' version of that dialogue window, and even 'remotes' it. (ie, if it's a prompt for criteria, you can put the criteria into the 'copy' and click the appropriate button, and it will push that data (and whatever button you pushed) to the actual dialog window. That .exe is just a test I was running, the actual system does something very similar, but sends an HTML version of the dialog windows through to the users. Access 2003 has changed the class names of the dialog windows, so my .exe won't mimic labels or text boxes..... go figure.... Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Thursday, January 29, 2009 3:39 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] IronSpeed Thanks John - agreed. It would have been nice to "pop in" an MDB at one end and get "pop out" a Web enabled version at the other. A la PDF-Word converters. Sort of "shell" that the mdb runs in within the browser. Pipe dreams I suppose. Thanks Max On Thu, Jan 29, 2009 at 9:09 AM, wrote: > Hi Max > > No never used IronSpeed. It looked like hard work. And judging by what > others are saying on this board I took the right decision. > > john c > > > -----Original Message----- > From: Max Wanadoo > To: 'Access Developers discussion and problem solving' < > accessd at databaseadvisors.com> > Sent: Wed, 28 Jan 2009 20:38 > Subject: [AccessD] IronSpeed > > > > John Cliviger: > > John, do you (or anybody) have any experience of deploying MS Access DBs to > IronSpeed? > > http://www.ironspeed.com/products/DownloadNow.aspx?c=CP02 > > Thanks > Max > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > > ________________________________________________________________________ > AOL Email goes Mobile! You can now read your AOL Emails whilst on the move. > Sign up for a free AOL Email account with unlimited storage today. > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sun Feb 1 14:21:52 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 1 Feb 2009 20:21:52 -0000 Subject: [AccessD] Access 2007 DoCmd In-Reply-To: <836FCDFC0AFC494F9D198103F88A2AD1@HAL9005> References: <000301c98267$3b472350$b1d569f0$@com> <49823b4e.0ec5100a.2388.4bf6@mx.google.com> <836FCDFC0AFC494F9D198103F88A2AD1@HAL9005> Message-ID: <4986045f.0c92100a.3a2c.ffffe56d@mx.google.com> Ha! But in whose favour? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 30 January 2009 00:42 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Access 2007 DoCmd True. For intellectually we need a completely different time scale... (running & ducking) Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Thursday, January 29, 2009 3:27 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Access 2007 DoCmd Compacting easy. Will post some stuff tomorrow if still needed (5-7 hrs behind USA - not intellectually you understand) Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Thomas Ewald Sent: 29 January 2009 23:14 To: accessd at databaseadvisors.com Subject: [AccessD] Access 2007 DoCmd Does anyone know a good source of information on converting Access XP DoCmd and other commands to 2007 VBA? For example, how do you get Access to compact the database via VBA? Thanks. Tom Ewald Detroit Area -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From darren at activebilling.com.au Sun Feb 1 18:01:16 2009 From: darren at activebilling.com.au (Darren D) Date: Mon, 2 Feb 2009 11:01:16 +1100 Subject: [AccessD] Access to SQL Server tool Message-ID: <00bc01c984c9$5fadac00$131b910a@denzilnote> Hi team I've been on leave for the last few weeks and have a zillion posts to read - but I can see in the group heading lots of stuff for Access an SQL Server Before I went on leave I created a tool I thought might be useful - created with lots of help from this list It basically allows you to pass a username, password, db Name and Server name as well as an SQL statement or the name of a Stored Procedure to an SQL Server dB using passthrough queries built on the fly The results are returned in a grid (Subform where grid is default display) that is built on the fly. It allows for the resizing of the grid just by resizing the form. Very neat Anyone want a copy sent me an off list request to Darren at active billing dot com dot au See ya'll Darren Active Billing p, 1300 301 731 f. 02 9826 0507 www.activebilling.com.au This email and attachments ("Email") are confidential and may contain privileged material. Delivery to a person other than the named addressee does not waive confidentiality or privilege. This Email is intended solely for the named addressee. If you have received this Email in error you must not rely on the contents of this Email. This Email is also subject to copyright. Unauthorised use, reproduction or distribution of this Email is prohibited. From wdhindman at dejpolsystems.com Mon Feb 2 09:47:33 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Mon, 2 Feb 2009 10:47:33 -0500 Subject: [AccessD] SQL concatenation References: <4985ce61.06a0100a.1838.ffffa2d6@mx.google.com> <4985d50d.02ab100a.7f1c.5caf@mx.google.com> Message-ID: <59CF0E0272254C048229020C324B9F7F@jislaptopdev> Group ...this works fine lstFound.RowSource = "SELECT DISTINCTROW tblOrg.OrgID, tblOrg.OrgName, tblOrg.Address, tblOrg.City, tblOrg.StateOrProvince, tblOrg.Country, tblOrg.Buyer, tblOrg.Inactive FROM tblOrg WHERE (((tblOrg.OrgName) Like [txtSearchExpression]) And ((tblOrg.Buyer) = True) And ((tblOrg.Inactive) = False)) ORDER BY tblOrg.OrgName;" ...but when I try to concatenate 3 of the fields, I get a syntax error lstFound.RowSource = "SELECT DISTINCTROW tblOrg.OrgID, tblOrg.OrgName, tblOrg.Address, [tblOrg]![City] & ", " & [tblOrg]![StateOrProvince] & " " & [tblOrg]![Country]) AS CSC, tblOrg.Buyer, tblOrg.Inactive FROM tblOrg WHERE (((tblOrg.OrgName) Like [txtSearchExpression]) And ((tblOrg.Buyer) = True) AND ((tblOrg.Inactive) = False)) ORDER BY tblOrg.OrgName;" ...any help appreciated. William From ssharkins at gmail.com Mon Feb 2 09:55:50 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Mon, 2 Feb 2009 10:55:50 -0500 Subject: [AccessD] SQL concatenation References: <4985ce61.06a0100a.1838.ffffa2d6@mx.google.com><4985d50d.02ab100a.7f1c.5caf@mx.google.com> <59CF0E0272254C048229020C324B9F7F@jislaptopdev> Message-ID: <1186606EDDA94D0AB1D3240F957DEF49@SusanOne> Here's my best advice, drop in a Debug.Print statement so VBA will print the evaluated statement in the Immediate window. Then, cut and paste the evaluated statement from the Immediate window into a SQL window -- for some reason, the SQL window gives more specific and helpful error messages. Susan H. ----- Original Message ----- From: "William Hindman" To: "Access Developers discussion and problem solving" Sent: Monday, February 02, 2009 10:47 AM Subject: [AccessD] SQL concatenation > Group > > ...this works fine > > lstFound.RowSource = "SELECT DISTINCTROW tblOrg.OrgID, tblOrg.OrgName, > tblOrg.Address, tblOrg.City, tblOrg.StateOrProvince, tblOrg.Country, > tblOrg.Buyer, tblOrg.Inactive FROM tblOrg WHERE (((tblOrg.OrgName) Like > [txtSearchExpression]) And ((tblOrg.Buyer) = True) And ((tblOrg.Inactive) > = > False)) ORDER BY tblOrg.OrgName;" > > ...but when I try to concatenate 3 of the fields, I get a syntax error > > lstFound.RowSource = "SELECT DISTINCTROW tblOrg.OrgID, tblOrg.OrgName, > tblOrg.Address, [tblOrg]![City] & ", " & [tblOrg]![StateOrProvince] & " " > & > [tblOrg]![Country]) AS CSC, tblOrg.Buyer, tblOrg.Inactive FROM tblOrg > WHERE > (((tblOrg.OrgName) Like [txtSearchExpression]) And ((tblOrg.Buyer) = True) > AND ((tblOrg.Inactive) = False)) ORDER BY tblOrg.OrgName;" > > ...any help appreciated. > > William > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From DWUTKA at Marlow.com Mon Feb 2 10:01:04 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Mon, 2 Feb 2009 10:01:04 -0600 Subject: [AccessD] SQL concatenation In-Reply-To: <59CF0E0272254C048229020C324B9F7F@jislaptopdev> References: <4985ce61.06a0100a.1838.ffffa2d6@mx.google.com><4985d50d.02ab100a.7f1c.5caf@mx.google.com> <59CF0E0272254C048229020C324B9F7F@jislaptopdev> Message-ID: Ummmmm, do you have the number of columns set with the difference in column count? Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Monday, February 02, 2009 9:48 AM To: Access Developers discussion and problem solving Subject: [AccessD] SQL concatenation Group ...this works fine lstFound.RowSource = "SELECT DISTINCTROW tblOrg.OrgID, tblOrg.OrgName, tblOrg.Address, tblOrg.City, tblOrg.StateOrProvince, tblOrg.Country, tblOrg.Buyer, tblOrg.Inactive FROM tblOrg WHERE (((tblOrg.OrgName) Like [txtSearchExpression]) And ((tblOrg.Buyer) = True) And ((tblOrg.Inactive) = False)) ORDER BY tblOrg.OrgName;" ...but when I try to concatenate 3 of the fields, I get a syntax error lstFound.RowSource = "SELECT DISTINCTROW tblOrg.OrgID, tblOrg.OrgName, tblOrg.Address, [tblOrg]![City] & ", " & [tblOrg]![StateOrProvince] & " " & [tblOrg]![Country]) AS CSC, tblOrg.Buyer, tblOrg.Inactive FROM tblOrg WHERE (((tblOrg.OrgName) Like [txtSearchExpression]) And ((tblOrg.Buyer) = True) AND ((tblOrg.Inactive) = False)) ORDER BY tblOrg.OrgName;" ...any help appreciated. William -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From markamatte at hotmail.com Mon Feb 2 10:01:10 2009 From: markamatte at hotmail.com (Mark A Matte) Date: Mon, 2 Feb 2009 16:01:10 +0000 Subject: [AccessD] SQL concatenation In-Reply-To: <59CF0E0272254C048229020C324B9F7F@jislaptopdev> References: <4985ce61.06a0100a.1838.ffffa2d6@mx.google.com> <4985d50d.02ab100a.7f1c.5caf@mx.google.com> <59CF0E0272254C048229020C324B9F7F@jislaptopdev> Message-ID: Long shot...but shouldn't those be single quotes? Mark ---------------------------------------- > From: wdhindman at dejpolsystems.com > To: accessd at databaseadvisors.com > Date: Mon, 2 Feb 2009 10:47:33 -0500 > Subject: [AccessD] SQL concatenation > > Group > > ...this works fine > > lstFound.RowSource = "SELECT DISTINCTROW tblOrg.OrgID, tblOrg.OrgName, > tblOrg.Address, tblOrg.City, tblOrg.StateOrProvince, tblOrg.Country, > tblOrg.Buyer, tblOrg.Inactive FROM tblOrg WHERE (((tblOrg.OrgName) Like > [txtSearchExpression]) And ((tblOrg.Buyer) = True) And ((tblOrg.Inactive) = > False)) ORDER BY tblOrg.OrgName;" > > ...but when I try to concatenate 3 of the fields, I get a syntax error > > lstFound.RowSource = "SELECT DISTINCTROW tblOrg.OrgID, tblOrg.OrgName, > tblOrg.Address, [tblOrg]![City] & ", " & [tblOrg]![StateOrProvince] & " " & > [tblOrg]![Country]) AS CSC, tblOrg.Buyer, tblOrg.Inactive FROM tblOrg WHERE > (((tblOrg.OrgName) Like [txtSearchExpression]) And ((tblOrg.Buyer) = True) > AND ((tblOrg.Inactive) = False)) ORDER BY tblOrg.OrgName;" > > ...any help appreciated. > > William > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com _________________________________________________________________ Hotmail? goes where you go. On a PC, on the Web, on your phone. http://www.windowslive-hotmail.com/learnmore/versatility.aspx#mobile?ocid=TXT_TAGHM_WL_HM_versatility_121208 From fuller.artful at gmail.com Mon Feb 2 10:03:55 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Mon, 2 Feb 2009 11:03:55 -0500 Subject: [AccessD] SQL concatenation In-Reply-To: <59CF0E0272254C048229020C324B9F7F@jislaptopdev> References: <4985ce61.06a0100a.1838.ffffa2d6@mx.google.com> <4985d50d.02ab100a.7f1c.5caf@mx.google.com> <59CF0E0272254C048229020C324B9F7F@jislaptopdev> Message-ID: <29f585dd0902020803k1fa2448el8288dae87e091700@mail.gmail.com> The syntax looks sound. Is it possible that one of the columns contains a null? If so, that would break your expression. You'd have to Nz() them before the concatenation. You might also try pasting your expression into a new query in the designer and check the results, then switch to SQL view and see what Access wrote. An alternative is to create a UDF called CSC that accepts three parameters. You can then test that in isolation and when it works, just call it from the original query. Arthur From ssharkins at gmail.com Mon Feb 2 10:25:40 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Mon, 2 Feb 2009 11:25:40 -0500 Subject: [AccessD] OT: Calling all women IT professionals References: Message-ID: <7444CA89C4B54A7A8161200597A1F28C@SusanOne> http://www.radmin.com/ > Remote Administrator: From Famatech.com --> Great tool for > administrating your network. =====Your link takes me to radmin -- want to find the exact product for me? Looks like there's been a buy out and it's been renamed. Susan H. From ssharkins at gmail.com Mon Feb 2 10:31:30 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Mon, 2 Feb 2009 11:31:30 -0500 Subject: [AccessD] OT: Calling all women IT professionals References: Message-ID: <4E71E58B6617489BAB5A6E8E722E43BB@SusanOne> Can't find this one either -- a link please? Susan H. > ISFE (Information Services Front End) --> Custom helpdesk application. > Has a company phone list, from which I can search/see all sorts of > information about employees, and their computers (what computers they > are currently logged into, what computers they have logged into (and > very soon what computers they 'own' or are in charge of)), and from that > same interface, I can launch Remote Administrator, Computer Manager, and > Windows Explorer for their local drives. From ssharkins at gmail.com Mon Feb 2 10:32:23 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Mon, 2 Feb 2009 11:32:23 -0500 Subject: [AccessD] OT: Calling all women IT professionals References: Message-ID: Need a link to this one too. > MoveWindows --> Custom VB .exe, that captures all of the open windows > on your machine. Allows you to move, resize and change the visibility > of any window on your machine. (VERY handy for multiple monitor issues > when an app gets 'lost'). From cfoust at infostatsystems.com Mon Feb 2 10:31:29 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Mon, 2 Feb 2009 08:31:29 -0800 Subject: [AccessD] SQL concatenation In-Reply-To: <59CF0E0272254C048229020C324B9F7F@jislaptopdev> References: <4985ce61.06a0100a.1838.ffffa2d6@mx.google.com><4985d50d.02ab100a.7f1c.5caf@mx.google.com> <59CF0E0272254C048229020C324B9F7F@jislaptopdev> Message-ID: William, If tblOrg is your table and StateOrProvince is the field, why are you using the bang (!) to delimit them in the second statement, and what are you trying to do? If you want to concatenate the fields within the SQL statement, don't use double quote around the commas, use single quotes. Otherwise, you're trying to set a rowsource to "Something", "Something", "Something else". Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Monday, February 02, 2009 7:48 AM To: Access Developers discussion and problem solving Subject: [AccessD] SQL concatenation Group ...this works fine lstFound.RowSource = "SELECT DISTINCTROW tblOrg.OrgID, tblOrg.OrgName, tblOrg.Address, tblOrg.City, tblOrg.StateOrProvince, tblOrg.Country, tblOrg.Buyer, tblOrg.Inactive FROM tblOrg WHERE (((tblOrg.OrgName) Like [txtSearchExpression]) And ((tblOrg.Buyer) = True) And ((tblOrg.Inactive) = False)) ORDER BY tblOrg.OrgName;" ...but when I try to concatenate 3 of the fields, I get a syntax error lstFound.RowSource = "SELECT DISTINCTROW tblOrg.OrgID, tblOrg.OrgName, tblOrg.Address, [tblOrg]![City] & ", " & [tblOrg]![StateOrProvince] & " " & [tblOrg]![Country]) AS CSC, tblOrg.Buyer, tblOrg.Inactive FROM tblOrg WHERE (((tblOrg.OrgName) Like [txtSearchExpression]) And ((tblOrg.Buyer) = True) AND ((tblOrg.Inactive) = False)) ORDER BY tblOrg.OrgName;" ...any help appreciated. William -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From ssharkins at gmail.com Mon Feb 2 10:34:34 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Mon, 2 Feb 2009 11:34:34 -0500 Subject: [AccessD] OT: Calling all women IT professionals References: Message-ID: <8D1687A0F8814D67906AAE47A9A4C269@SusanOne> What industry -- I know manufacturing -- but for the space industry? ----- Original Message ----- From: "Drew Wutka" To: "Access Developers discussion and problem solving" Sent: Sunday, February 01, 2009 11:18 AM Subject: Re: [AccessD] OT: Calling all women IT professionals > Email is fine. > > I'm a Network Systems Administrator (with just a tad of db and > programming skills....) > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins > Sent: Saturday, January 31, 2009 9:36 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] OT: Calling all women IT professionals > > Yes -- but also send a short job description -- to lend credibility -- > gotta > be an IT type professional. :) Also, if you want to include a contact, > let > me know where to include your email or a url. > > Thanks! > Susan H. > ----- Original Message ----- > From: "Drew Wutka" > To: "Access Developers discussion and problem solving" > > Sent: Saturday, January 31, 2009 6:54 PM > Subject: Re: [AccessD] OT: Calling all women IT professionals > > >> Can this include tools we built? >> >> If so, here would be my list: >> >> VB6 --> Can do so much with this, and so quickly, awesome for quick >> programs/utilities. >> >> Virtual PC / Virtual Server --> Totally free platform for all sorts > of >> things: Test platforms ready in a minute or two. Trash platforms > (for >> surfing the dark alleys of the web) ready in a minute or two. Ability >> to run every MS operating system from one platform, and also any >> combination of installed software on each. >> >> Remote Administrator: From Famatech.com --> Great tool for >> administrating your network. >> >> ISFE (Information Services Front End) --> Custom helpdesk > application. >> Has a company phone list, from which I can search/see all sorts of >> information about employees, and their computers (what computers they >> are currently logged into, what computers they have logged into (and >> very soon what computers they 'own' or are in charge of)), and from > that >> same interface, I can launch Remote Administrator, Computer Manager, > and >> Windows Explorer for their local drives. >> >> MoveWindows --> Custom VB .exe, that captures all of the open > windows >> on your machine. Allows you to move, resize and change the visibility >> of any window on your machine. (VERY handy for multiple monitor issues >> when an app gets 'lost'). >> >> Drew >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan > Harkins >> Sent: Saturday, January 31, 2009 10:32 AM >> To: AccessD at databaseadvisors.com >> Subject: [AccessD] OT: Calling all women IT professionals >> >> Okay, over the last few weeks I've been putting together a list of >> "can't >> live without" utilities and tools for an article to be published on >> TechRepublic.com. >> >> Now, I don't want to make a political statement, but so far, there's >> only >> one woman on that list! I'd like a few more, and no, I won't say >> anything >> about the gender mix in the content -- it's not relevant, but I'd like > a >> >> better mix. >> >> If you'd like to contribute, I just need a list of the tools/utilities >> that >> you use all the time and would feel lost without. I'll also need a > short >> >> description of your current contribution to the IT industry (what you >> do) >> and if you like, I can include contact information -- this is a great >> way >> for those of you working for yourself to network a bit. I never > promise >> results when I do this, but it can't hurt. >> >> I'm staring at a deadline, so um... if you'd be quick about it > too????? >> :) >> >> Oh, and any fellow who'd still like to contribute, you certainly may > -- >> >> there's no limit on the number. >> >> Please contact me privately at ssharkins at gmail.com. I think this > article >> has >> the potential to generate a lot of interest and discussion and should >> prove >> helpful for other developers/administrators/ITwhatevers. >> >> Susan H. >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> The information contained in this transmission is intended only for > the >> person or entity to which it is addressed and may contain II-VI >> Proprietary and/or II-VI Business Sensitive material. If you are not > the >> intended recipient, please contact the sender immediately and destroy > the >> material in its entirety, whether electronic or hard copy. You are >> notified that any review, retransmission, copying, disclosure, >> dissemination, or other use of, or taking of any action in reliance > upon >> this information by persons or entities other than the intended > recipient >> is prohibited. >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy the > material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended recipient > is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Mon Feb 2 10:35:33 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Mon, 2 Feb 2009 08:35:33 -0800 Subject: [AccessD] Onenote In-Reply-To: <4983A690.4050309@colbyconsulting.com> References: <49827DF8.6070006@colbyconsulting.com> <074401c982e8$cd6bd6f0$2f8601c7@SusanOne> <4983198A.5080608@colbyconsulting.com> <080801c982f0$b17cfc50$2f8601c7@SusanOne> <4983891B.3040608@colbyconsulting.com> <02fb01c98331$bfb20180$2f8601c7@SusanOne> <49838F22.7060501@colbyconsulting.com> <29f585dd0901301637s1f98f6d7oeba9ce79b4014cc7@mail.gmail.com> <4983A690.4050309@colbyconsulting.com> Message-ID: Yep, that's the difference. OneNote 2007 mobile is the equivalent of 2003 and doesn't have notebooks, but the PC product does and I highly recommend an upgrade. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, January 30, 2009 5:17 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Onenote Are you guys using 2007 by any chance? I am using 2003 and there is nothing about Notebooks. John W. Colby www.ColbyConsulting.com Arthur Fuller wrote: > I think that you are on the right track, Dian, and I also think that I > went off on the wrong track, possibly due to parallel thinking with > JWC's intuitive approach. Once that didn't work, I ventured into new > turf and instead created a new notebook for each project I was working > on. This proved much more profitable. I could simply open a "project > notebook" and presto, everything I recorded was there, and > conveniently located under tabls. > > Then I could switch projects and everything worked nicely. It took me > a while to get the hang of this tool. But at the end of the day, I > quite like it. I especially like the ability to paste in things like Excel documents. > > A. > On Fri, Jan 30, 2009 at 7:19 PM, Dian wrote: > >> I'm generally not much help, but I do use OneNote a lot. I have >> dozens set up. All you have to do for an individual project is open >> OneNote, save that notebook with whatever info you want to include >> under whatever name you want to use (I save mine to a folder on my >> desktop with a name that corresponds to whatever project I'm working >> on)...when I need it again...I just click to open it...hope that >> helps... >> >> >> -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Mon Feb 2 10:54:50 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Mon, 2 Feb 2009 11:54:50 -0500 Subject: [AccessD] SQL concatenation References: <4985ce61.06a0100a.1838.ffffa2d6@mx.google.com><4985d50d.02ab100a.7f1c.5caf@mx.google.com><59CF0E0272254C048229020C324B9F7F@jislaptopdev> Message-ID: <50423C0A94E3475AB434A96C24CE3F0D@jislaptopdev> ...thanks to all who responded so quickly ...Mark caught the extra parentheses but it was just a leftover from me experimenting, not the real problem ...Charlotte took me to the woodshed and administered a sound beating ...I had built the concat in the query designer and just copied the SQL over from there ...it gave me the bangs and the double quotes ...as Charlotte admonished, replacing them was the real answer ...lesson learned ...I'm sure the welts will heal :) William -------------------------------------------------- From: "Charlotte Foust" Sent: Monday, February 02, 2009 11:31 AM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] SQL concatenation > William, > > If tblOrg is your table and StateOrProvince is the field, why are you > using the bang (!) to delimit them in the second statement, and what are > you trying to do? If you want to concatenate the fields within the SQL > statement, don't use double quote around the commas, use single quotes. > Otherwise, you're trying to set a rowsource to "Something", "Something", > "Something else". > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William > Hindman > Sent: Monday, February 02, 2009 7:48 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] SQL concatenation > > Group > > ...this works fine > > lstFound.RowSource = "SELECT DISTINCTROW tblOrg.OrgID, tblOrg.OrgName, > tblOrg.Address, tblOrg.City, tblOrg.StateOrProvince, tblOrg.Country, > tblOrg.Buyer, tblOrg.Inactive FROM tblOrg WHERE (((tblOrg.OrgName) Like > [txtSearchExpression]) And ((tblOrg.Buyer) = True) And > ((tblOrg.Inactive) = > False)) ORDER BY tblOrg.OrgName;" > > ...but when I try to concatenate 3 of the fields, I get a syntax error > > lstFound.RowSource = "SELECT DISTINCTROW tblOrg.OrgID, tblOrg.OrgName, > tblOrg.Address, [tblOrg]![City] & ", " & [tblOrg]![StateOrProvince] & " > " & > [tblOrg]![Country]) AS CSC, tblOrg.Buyer, tblOrg.Inactive FROM tblOrg > WHERE > (((tblOrg.OrgName) Like [txtSearchExpression]) And ((tblOrg.Buyer) = > True) AND ((tblOrg.Inactive) = False)) ORDER BY tblOrg.OrgName;" > > ...any help appreciated. > > William > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From DWUTKA at Marlow.com Mon Feb 2 10:56:34 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Mon, 2 Feb 2009 10:56:34 -0600 Subject: [AccessD] OT: Calling all women IT professionals In-Reply-To: <7444CA89C4B54A7A8161200597A1F28C@SusanOne> References: <7444CA89C4B54A7A8161200597A1F28C@SusanOne> Message-ID: www.radmin.com is Remote Administrator. On the home page: "Radmin (Remote Administrator) is the world famous, award winning secure remote control software and remote access software which enables you to work on a remote computer in real time as if you were using its own keyboard and mouse." Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: Monday, February 02, 2009 10:26 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: Calling all women IT professionals http://www.radmin.com/ > Remote Administrator: From Famatech.com --> Great tool for > administrating your network. =====Your link takes me to radmin -- want to find the exact product for me? Looks like there's been a buy out and it's been renamed. Susan H. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Mon Feb 2 10:57:20 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Mon, 2 Feb 2009 10:57:20 -0600 Subject: [AccessD] OT: Calling all women IT professionals In-Reply-To: <4E71E58B6617489BAB5A6E8E722E43BB@SusanOne> References: <4E71E58B6617489BAB5A6E8E722E43BB@SusanOne> Message-ID: I built it.... Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: Monday, February 02, 2009 10:32 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: Calling all women IT professionals Can't find this one either -- a link please? Susan H. > ISFE (Information Services Front End) --> Custom helpdesk application. > Has a company phone list, from which I can search/see all sorts of > information about employees, and their computers (what computers they > are currently logged into, what computers they have logged into (and > very soon what computers they 'own' or are in charge of)), and from that > same interface, I can launch Remote Administrator, Computer Manager, and > Windows Explorer for their local drives. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Mon Feb 2 10:57:30 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Mon, 2 Feb 2009 10:57:30 -0600 Subject: [AccessD] OT: Calling all women IT professionals In-Reply-To: References: Message-ID: I built this one too.... Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: Monday, February 02, 2009 10:32 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: Calling all women IT professionals Need a link to this one too. > MoveWindows --> Custom VB .exe, that captures all of the open windows > on your machine. Allows you to move, resize and change the visibility > of any window on your machine. (VERY handy for multiple monitor issues > when an app gets 'lost'). -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Mon Feb 2 10:57:57 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Mon, 2 Feb 2009 10:57:57 -0600 Subject: [AccessD] OT: Calling all women IT professionals In-Reply-To: <8D1687A0F8814D67906AAE47A9A4C269@SusanOne> References: <8D1687A0F8814D67906AAE47A9A4C269@SusanOne> Message-ID: Defense, Space, Photonics, Telecommunications, Commercial, Industrial and Medical. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: Monday, February 02, 2009 10:35 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: Calling all women IT professionals What industry -- I know manufacturing -- but for the space industry? ----- Original Message ----- From: "Drew Wutka" To: "Access Developers discussion and problem solving" Sent: Sunday, February 01, 2009 11:18 AM Subject: Re: [AccessD] OT: Calling all women IT professionals > Email is fine. > > I'm a Network Systems Administrator (with just a tad of db and > programming skills....) > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins > Sent: Saturday, January 31, 2009 9:36 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] OT: Calling all women IT professionals > > Yes -- but also send a short job description -- to lend credibility -- > gotta > be an IT type professional. :) Also, if you want to include a contact, > let > me know where to include your email or a url. > > Thanks! > Susan H. > ----- Original Message ----- > From: "Drew Wutka" > To: "Access Developers discussion and problem solving" > > Sent: Saturday, January 31, 2009 6:54 PM > Subject: Re: [AccessD] OT: Calling all women IT professionals > > >> Can this include tools we built? >> >> If so, here would be my list: >> >> VB6 --> Can do so much with this, and so quickly, awesome for quick >> programs/utilities. >> >> Virtual PC / Virtual Server --> Totally free platform for all sorts > of >> things: Test platforms ready in a minute or two. Trash platforms > (for >> surfing the dark alleys of the web) ready in a minute or two. Ability >> to run every MS operating system from one platform, and also any >> combination of installed software on each. >> >> Remote Administrator: From Famatech.com --> Great tool for >> administrating your network. >> >> ISFE (Information Services Front End) --> Custom helpdesk > application. >> Has a company phone list, from which I can search/see all sorts of >> information about employees, and their computers (what computers they >> are currently logged into, what computers they have logged into (and >> very soon what computers they 'own' or are in charge of)), and from > that >> same interface, I can launch Remote Administrator, Computer Manager, > and >> Windows Explorer for their local drives. >> >> MoveWindows --> Custom VB .exe, that captures all of the open > windows >> on your machine. Allows you to move, resize and change the visibility >> of any window on your machine. (VERY handy for multiple monitor issues >> when an app gets 'lost'). >> >> Drew >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan > Harkins >> Sent: Saturday, January 31, 2009 10:32 AM >> To: AccessD at databaseadvisors.com >> Subject: [AccessD] OT: Calling all women IT professionals >> >> Okay, over the last few weeks I've been putting together a list of >> "can't >> live without" utilities and tools for an article to be published on >> TechRepublic.com. >> >> Now, I don't want to make a political statement, but so far, there's >> only >> one woman on that list! I'd like a few more, and no, I won't say >> anything >> about the gender mix in the content -- it's not relevant, but I'd like > a >> >> better mix. >> >> If you'd like to contribute, I just need a list of the tools/utilities >> that >> you use all the time and would feel lost without. I'll also need a > short >> >> description of your current contribution to the IT industry (what you >> do) >> and if you like, I can include contact information -- this is a great >> way >> for those of you working for yourself to network a bit. I never > promise >> results when I do this, but it can't hurt. >> >> I'm staring at a deadline, so um... if you'd be quick about it > too????? >> :) >> >> Oh, and any fellow who'd still like to contribute, you certainly may > -- >> >> there's no limit on the number. >> >> Please contact me privately at ssharkins at gmail.com. I think this > article >> has >> the potential to generate a lot of interest and discussion and should >> prove >> helpful for other developers/administrators/ITwhatevers. >> >> Susan H. >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> The information contained in this transmission is intended only for > the >> person or entity to which it is addressed and may contain II-VI >> Proprietary and/or II-VI Business Sensitive material. If you are not > the >> intended recipient, please contact the sender immediately and destroy > the >> material in its entirety, whether electronic or hard copy. You are >> notified that any review, retransmission, copying, disclosure, >> dissemination, or other use of, or taking of any action in reliance > upon >> this information by persons or entities other than the intended > recipient >> is prohibited. >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy the > material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended recipient > is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From accessd at shaw.ca Mon Feb 2 11:04:28 2009 From: accessd at shaw.ca (Jim Lawrence) Date: Mon, 2 Feb 2009 09:04:28 -0800 Subject: [AccessD] SQL concatenation In-Reply-To: <59CF0E0272254C048229020C324B9F7F@jislaptopdev> References: <4985ce61.06a0100a.1838.ffffa2d6@mx.google.com> <4985d50d.02ab100a.7f1c.5caf@mx.google.com> <59CF0E0272254C048229020C324B9F7F@jislaptopdev> Message-ID: <119DB1BFD2FB411F80F7063C9CB49F6D@creativesystemdesigns.com> Hi William: Check your concatenated field types. They will all have to be strings. Jim -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Monday, February 02, 2009 7:48 AM To: Access Developers discussion and problem solving Subject: [AccessD] SQL concatenation Group ...this works fine lstFound.RowSource = "SELECT DISTINCTROW tblOrg.OrgID, tblOrg.OrgName, tblOrg.Address, tblOrg.City, tblOrg.StateOrProvince, tblOrg.Country, tblOrg.Buyer, tblOrg.Inactive FROM tblOrg WHERE (((tblOrg.OrgName) Like [txtSearchExpression]) And ((tblOrg.Buyer) = True) And ((tblOrg.Inactive) = False)) ORDER BY tblOrg.OrgName;" ...but when I try to concatenate 3 of the fields, I get a syntax error lstFound.RowSource = "SELECT DISTINCTROW tblOrg.OrgID, tblOrg.OrgName, tblOrg.Address, [tblOrg]![City] & ", " & [tblOrg]![StateOrProvince] & " " & [tblOrg]![Country]) AS CSC, tblOrg.Buyer, tblOrg.Inactive FROM tblOrg WHERE (((tblOrg.OrgName) Like [txtSearchExpression]) And ((tblOrg.Buyer) = True) AND ((tblOrg.Inactive) = False)) ORDER BY tblOrg.OrgName;" ...any help appreciated. William -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From ssharkins at gmail.com Mon Feb 2 11:04:40 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Mon, 2 Feb 2009 12:04:40 -0500 Subject: [AccessD] I'm sorry (was Re: OT: Calling all women IT professionals) References: <7444CA89C4B54A7A8161200597A1F28C@SusanOne> Message-ID: <5350C72383474B4B8DD2427354D7EBFE@SusanOne> I apologize everyone -- I thought I was talking with Drew privately -- I'll make sure none of these come through to the list. Susan H. ----- Original Message ----- From: "Drew Wutka" To: "Access Developers discussion and problem solving" Sent: Monday, February 02, 2009 11:56 AM Subject: Re: [AccessD] OT: Calling all women IT professionals > www.radmin.com is Remote Administrator. > > On the home page: > > "Radmin (Remote Administrator) is the world famous, award winning secure > remote control software and remote access software which enables you to > work on a remote computer in real time as if you were using its own > keyboard and mouse." > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins > Sent: Monday, February 02, 2009 10:26 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] OT: Calling all women IT professionals > > http://www.radmin.com/ >> Remote Administrator: From Famatech.com --> Great tool for >> administrating your network. > > =====Your link takes me to radmin -- want to find the exact product for > me? > Looks like there's been a buy out and it's been renamed. > > Susan H. > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy the > material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended recipient > is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From ssharkins at gmail.com Mon Feb 2 11:13:00 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Mon, 2 Feb 2009 12:13:00 -0500 Subject: [AccessD] Fw: I'm sorry (was Re: OT: Calling all women IT professionals) Message-ID: >I apologize everyone -- I thought I was talking with Drew privately -- I'll > make sure none of these come through to the list. > >> www.radmin.com is Remote Administrator. From james at fcidms.com Mon Feb 2 11:16:53 2009 From: james at fcidms.com (James Barash) Date: Mon, 02 Feb 2009 12:16:53 -0500 (EST) Subject: [AccessD] SQL concatenation Message-ID: <20090202171654.115141D9C@captain.bcentralhost.com> William: It looks as though you have a stray ) in your statement, as in: [tblOrg]![Country]) AS CSC I don't see a corresponding open paren which would account for the syntax error. James Barash -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Monday, February 02, 2009 10:48 AM To: Access Developers discussion and problem solving Subject: [AccessD] SQL concatenation Group ...this works fine lstFound.RowSource = "SELECT DISTINCTROW tblOrg.OrgID, tblOrg.OrgName, tblOrg.Address, tblOrg.City, tblOrg.StateOrProvince, tblOrg.Country, tblOrg.Buyer, tblOrg.Inactive FROM tblOrg WHERE (((tblOrg.OrgName) Like [txtSearchExpression]) And ((tblOrg.Buyer) = True) And ((tblOrg.Inactive) = False)) ORDER BY tblOrg.OrgName;" ...but when I try to concatenate 3 of the fields, I get a syntax error lstFound.RowSource = "SELECT DISTINCTROW tblOrg.OrgID, tblOrg.OrgName, tblOrg.Address, [tblOrg]![City] & ", " & [tblOrg]![StateOrProvince] & " " & [tblOrg]![Country]) AS CSC, tblOrg.Buyer, tblOrg.Inactive FROM tblOrg WHERE (((tblOrg.OrgName) Like [txtSearchExpression]) And ((tblOrg.Buyer) = True) AND ((tblOrg.Inactive) = False)) ORDER BY tblOrg.OrgName;" ...any help appreciated. William From erbachs at gmail.com Mon Feb 2 14:43:28 2009 From: erbachs at gmail.com (Steve Erbach) Date: Mon, 2 Feb 2009 14:43:28 -0600 Subject: [AccessD] IronSpeed In-Reply-To: References: <7B3049B944AE43D196B39CCC9B39B14F@DCYN3T81> <29f585dd0901260548g8ceca33k793f43c7b930cb30@mail.gmail.com> <4980c244.06a0100a.729e.5c99@mx.google.com> Message-ID: <39cb22f30902021243y4c0382a2g1233ae18475610b7@mail.gmail.com> William, For what it's worth, I've looked at both IronSpeed and nth Penguin's WebWidgetry. I had a unique opportunity with WebWidgetry in that the guy who developed it lives in Neenah and his company has its office in Appleton, just 15 minutes away. I went to the guy's office one night a couple of weeks ago. I was looking at his code generator to get a jump on an Access-to-web conversion project. WebWidgetry is much different from IronSpeed in that IronSpeed uses "standard" ASP.NET objects to manipulate data with the associated SQL Data Sources. However, Web Widgetry sets up web services for the back-end database. It is very JavaScript heavy (the developer is a JS whiz)...but it still uses the ASP.NET framework. He's done a good job of integrating his WebWidgetry namespace into Visual Studio, complete with Intellisense. The auto code generation is just the tip of the WebWidgetry iceberg. Only one problem: it's a beta. The guy has been working on it for four years, but as a sideline to his main custom development business. He and his partner are looking for venture capital to get it to market. I'm not holding my breath. Steve Erbach Neenah, WI On Wed, Jan 28, 2009 at 3:57 PM, William Hindman wrote: > Max > > ...just a note from my own experience with such tools ...when I first > started looking at web technologies because a large client insisted that I > do his web site rather than farm it out to someone he didn't know, Iron > Speed was one of the tools I evaluated before going with Code Charge Studio > ...a long and painful time later I actually produced a data driven site with > it ...but the limitations are very serious ...you do it their way and if > they can't do it, well then you have to build it from scratch and wonder why > in the hell you didn't do it all from scratch ...there are compromises that > are forced upon you at every turn and they accumulate ...immediately after I > delivered the web site MS released VS Express Web Developer Edition for free > and I started playing with it ...heaven! ...Access on steroids on the web > ...and totally free ...and while the learning curve, while not paltry, was > no more than with Iron Speed or CCS, the results were enormously better in > functionality, performance, and the gui. > > ...any of these tools readily use an mdb as their datasource ...but with VS > its native and there are a HUGE amount of resources on the web to resolve > virtually any problem you can think of ...Iron Speed and CCS have dedicated > user communities but its necessarily very limited in comparison to VS. > > ...hth > > William > > -------------------------------------------------- > From: "Max Wanadoo" > Sent: Wednesday, January 28, 2009 3:38 PM > To: "'Access Developers discussion and problem solving'" > > Subject: [AccessD] IronSpeed > >> John Cliviger: >> >> John, do you (or anybody) have any experience of deploying MS Access DBs >> to >> IronSpeed? >> >> http://www.ironspeed.com/products/DownloadNow.aspx?c=CP02 >> >> Thanks >> Max From ssharkins at gmail.com Tue Feb 3 09:42:01 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Tue, 3 Feb 2009 10:42:01 -0500 Subject: [AccessD] Maximize throwing error Message-ID: <592078D6CB5947D0A5D3958405AB9505@SusanOne> Database I've been using for years is suddenly throwing an error on a Form Open event that simply maximizes the form using DoCmd.Maximize. No missing library references. What the hoooo???? Susan H. From ssharkins at gmail.com Tue Feb 3 09:44:13 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Tue, 3 Feb 2009 10:44:13 -0500 Subject: [AccessD] Fw: Maximize throwing error Message-ID: I stand corrected -- nothing works -- hosed. :( I commented out the DoCmd.Maximize and the form opened, so I thought that was it -- SURPRISE!!!! :( Everything else works but the main form that I use for everything!!! ;( "Object or class does not support the set of events." Nice. ;( Susan H. > Database I've been using for years is suddenly throwing an error on a Form > Open event that simply maximizes the form using > > DoCmd.Maximize. > > No missing library references. What the hoooo???? > > Susan H. From cfoust at infostatsystems.com Tue Feb 3 09:52:29 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Tue, 3 Feb 2009 07:52:29 -0800 Subject: [AccessD] Fw: Maximize throwing error In-Reply-To: References: Message-ID: Backups? Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: Tuesday, February 03, 2009 7:44 AM To: AccessD at databaseadvisors.com Subject: [AccessD] Fw: Maximize throwing error I stand corrected -- nothing works -- hosed. :( I commented out the DoCmd.Maximize and the form opened, so I thought that was it -- SURPRISE!!!! :( Everything else works but the main form that I use for everything!!! ;( "Object or class does not support the set of events." Nice. ;( Susan H. > Database I've been using for years is suddenly throwing an error on a > Form Open event that simply maximizes the form using > > DoCmd.Maximize. > > No missing library references. What the hoooo???? > > Susan H. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From ssharkins at gmail.com Tue Feb 3 10:24:59 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Tue, 3 Feb 2009 11:24:59 -0500 Subject: [AccessD] Fw: Maximize throwing error References: Message-ID: Right... um... Interestingly -- it works just fine in 2007 -- how odd is that? Susan H. > Backups? > From rockysmolin at bchacc.com Tue Feb 3 10:25:30 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 3 Feb 2009 08:25:30 -0800 Subject: [AccessD] Fw: Maximize throwing error In-Reply-To: References: Message-ID: If it's practical, zip it and send it over and I'll see if I get the same result on my machine. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: Tuesday, February 03, 2009 7:44 AM To: AccessD at databaseadvisors.com Subject: [AccessD] Fw: Maximize throwing error I stand corrected -- nothing works -- hosed. :( I commented out the DoCmd.Maximize and the form opened, so I thought that was it -- SURPRISE!!!! :( Everything else works but the main form that I use for everything!!! ;( "Object or class does not support the set of events." Nice. ;( Susan H. > Database I've been using for years is suddenly throwing an error on a > Form Open event that simply maximizes the form using > > DoCmd.Maximize. > > No missing library references. What the hoooo???? > > Susan H. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Tue Feb 3 10:25:30 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 3 Feb 2009 08:25:30 -0800 Subject: [AccessD] Fw: Maximize throwing error In-Reply-To: References: Message-ID: <18E54A81E1C84047907D6185769CCD50@HAL9005> Import that form from an earlier working version? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: Tuesday, February 03, 2009 7:44 AM To: AccessD at databaseadvisors.com Subject: [AccessD] Fw: Maximize throwing error I stand corrected -- nothing works -- hosed. :( I commented out the DoCmd.Maximize and the form opened, so I thought that was it -- SURPRISE!!!! :( Everything else works but the main form that I use for everything!!! ;( "Object or class does not support the set of events." Nice. ;( Susan H. > Database I've been using for years is suddenly throwing an error on a > Form Open event that simply maximizes the form using > > DoCmd.Maximize. > > No missing library references. What the hoooo???? > > Susan H. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From mcp2004 at mail.ru Tue Feb 3 10:29:19 2009 From: mcp2004 at mail.ru (=?koi8-r?Q?=F3=C1=CC=C1=C8=C5=D4=C4=C9=CE=CF=D7_=FB=C1=CD=C9=CC=D8?=) Date: Tue, 03 Feb 2009 19:29:19 +0300 Subject: [AccessD] =?koi8-r?b?TWF4aW1pemUgdGhyb3dpbmcgZXJyb3I=?= In-Reply-To: <592078D6CB5947D0A5D3958405AB9505@SusanOne> References: <592078D6CB5947D0A5D3958405AB9505@SusanOne> Message-ID: Hi Susan, Do you have any custom controls used on your form? (http://www.access-programmers.co.uk/forums/archive/index.php/t-91418.html ), and did you get any third-party software installed recently? -- Shamil From Lambert.Heenan at AIG.com Tue Feb 3 10:24:02 2009 From: Lambert.Heenan at AIG.com (Heenan, Lambert) Date: Tue, 3 Feb 2009 11:24:02 -0500 Subject: [AccessD] Fw: Maximize throwing error In-Reply-To: References: Message-ID: Decompile time? -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: Tuesday, February 03, 2009 10:44 AM To: AccessD at databaseadvisors.com Subject: [AccessD] Fw: Maximize throwing error I stand corrected -- nothing works -- hosed. :( I commented out the DoCmd.Maximize and the form opened, so I thought that was it -- SURPRISE!!!! :( Everything else works but the main form that I use for everything!!! ;( "Object or class does not support the set of events." Nice. ;( Susan H. > Database I've been using for years is suddenly throwing an error on a > Form Open event that simply maximizes the form using > > DoCmd.Maximize. > > No missing library references. What the hoooo???? > > Susan H. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From ssharkins at gmail.com Tue Feb 3 10:31:45 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Tue, 3 Feb 2009 11:31:45 -0500 Subject: [AccessD] Fw: Maximize throwing error References: <18E54A81E1C84047907D6185769CCD50@HAL9005> Message-ID: <4BD031671F2C4DAEBE3347346BE7C59F@SusanOne> For now, I'll just use 2007 -- I did a quick repair on XP, but didn't help. Susan H. > Import that form from an earlier working version? From ssharkins at gmail.com Tue Feb 3 10:39:36 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Tue, 3 Feb 2009 11:39:36 -0500 Subject: [AccessD] Maximize throwing error References: <592078D6CB5947D0A5D3958405AB9505@SusanOne> Message-ID: No and no. Well, what do you mean by "custom control" -- lots of controls, but all native with a bit of VBA behind them. Susan H. > Do you have any custom controls used on your form? > (http://www.access-programmers.co.uk/forums/archive/index.php/t-91418.html > ), and did you get any third-party software installed recently? > From ssharkins at gmail.com Tue Feb 3 10:39:55 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Tue, 3 Feb 2009 11:39:55 -0500 Subject: [AccessD] Fw: Maximize throwing error References: Message-ID: <4603EB858C354BF5AF51F18E332DBCB1@SusanOne> Will try. Susan H. > Decompile time? > From ssharkins at gmail.com Tue Feb 3 10:41:06 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Tue, 3 Feb 2009 11:41:06 -0500 Subject: [AccessD] Fw: Maximize throwing error References: Message-ID: And have you see my messy work? Not hardly! ;) But, thanks for the offer. BTW, after reading your book -- and I owe you a review, which I'll publish soon -- I have a great idea for a product -- just need to do some research. :) I'm told by someone in the biz that there's nothing out there, which I don't really believe, but thought I'd take a look. Susan H. > If it's practical, zip it and send it over and I'll see if I get the same > result on my machine. > From rockysmolin at bchacc.com Tue Feb 3 10:53:15 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 3 Feb 2009 08:53:15 -0800 Subject: [AccessD] Fw: Maximize throwing error In-Reply-To: References: Message-ID: <69D1FBC0B7AB4B0CACAC53ACC1A9C21E@HAL9005> Happy to collaborate if you want to run the idea by me. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: Tuesday, February 03, 2009 8:41 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Fw: Maximize throwing error And have you see my messy work? Not hardly! ;) But, thanks for the offer. BTW, after reading your book -- and I owe you a review, which I'll publish soon -- I have a great idea for a product -- just need to do some research. :) I'm told by someone in the biz that there's nothing out there, which I don't really believe, but thought I'd take a look. Susan H. > If it's practical, zip it and send it over and I'll see if I get the > same result on my machine. > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jimdettman at verizon.net Tue Feb 3 11:51:30 2009 From: jimdettman at verizon.net (Jim Dettman) Date: Tue, 03 Feb 2009 12:51:30 -0500 Subject: [AccessD] Maximize throwing error In-Reply-To: <592078D6CB5947D0A5D3958405AB9505@SusanOne> References: <592078D6CB5947D0A5D3958405AB9505@SusanOne> Message-ID: Susan, Check any un-checked reference, close the DB and Access, re-open and uncheck the reference just checked. Then try a compile. If it compiles, see if the error is gone. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: Tuesday, February 03, 2009 10:42 AM To: AccessD at databaseadvisors.com Subject: [AccessD] Maximize throwing error Database I've been using for years is suddenly throwing an error on a Form Open event that simply maximizes the form using DoCmd.Maximize. No missing library references. What the hoooo???? Susan H. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Feb 3 11:55:16 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 03 Feb 2009 12:55:16 -0500 Subject: [AccessD] Fw: Maximize throwing error In-Reply-To: References: Message-ID: <49888504.3030009@colbyconsulting.com> Usually if the form is corrupt you cannot open to see the code. If you haven't done so already, try a decompile / compile / compact / repair. John W. Colby www.ColbyConsulting.com Susan Harkins wrote: > > > Right... um... > > Interestingly -- it works just fine in 2007 -- how odd is that? > > Susan H. > > >> Backups? >> > From rockysmolin at bchacc.com Tue Feb 3 15:01:14 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 3 Feb 2009 13:01:14 -0800 Subject: [AccessD] Conditional Formatting Message-ID: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005> Dear List: I am using conditional formatting on a continuous form to set the background color to gray if [Archive] = True. Where Archive is a Yes/No field in the underlying recordset. Works fine on all text fields and combo boxes on the form. Except for 4 text boxes that refuse to change their background color. I can't see any difference between this set of four and all the others. But I'm sure there must be. And I'm just not seeing it. Any ideas? MTIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com From ssharkins at gmail.com Tue Feb 3 15:07:03 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Tue, 3 Feb 2009 16:07:03 -0500 Subject: [AccessD] Conditional Formatting References: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005> Message-ID: <2D438CD2D22944EDAFD0BC19516D73FD@SusanOne> Rocky, if you're using a loop, check the object type -- maybe it's just skipping those controls because they're not part of the conditional type or name. Oh wait... you're using the building in formatting, right? Share the expressions/conditions, etc. with us. Susan H. > Dear List: > > I am using conditional formatting on a continuous form to set the > background > color to gray if [Archive] = True. Where Archive is a Yes/No field in the > underlying recordset. > > Works fine on all text fields and combo boxes on the form. > > Except for 4 text boxes that refuse to change their background color. I > can't see any difference between this set of four and all the others. But > I'm sure there must be. And I'm just not seeing it. From max.wanadoo at gmail.com Tue Feb 3 15:08:15 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 3 Feb 2009 21:08:15 -0000 Subject: [AccessD] Conditional Formatting In-Reply-To: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005> References: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005> Message-ID: <4988b239.1f145e0a.1540.63e6@mx.google.com> Copy one of the ones that work and replace one of the ones that don't with the copied one changing the source etc. If that works, do it for the other three. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 03 February 2009 21:01 To: 'Access Developers discussion and problem solving' Subject: [AccessD] Conditional Formatting Dear List: I am using conditional formatting on a continuous form to set the background color to gray if [Archive] = True. Where Archive is a Yes/No field in the underlying recordset. Works fine on all text fields and combo boxes on the form. Except for 4 text boxes that refuse to change their background color. I can't see any difference between this set of four and all the others. But I'm sure there must be. And I'm just not seeing it. Any ideas? MTIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Tue Feb 3 15:11:42 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 04 Feb 2009 07:11:42 +1000 Subject: [AccessD] Conditional Formatting In-Reply-To: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005> References: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005> Message-ID: <49893FAE.32586.8967432@stuart.lexacorp.com.pg> On 3 Feb 2009 at 13:01, Rocky Smolin at Beach Access wrote: > Dear List: > > I am using conditional formatting on a continuous form to set the background > color to gray if [Archive] = True. Where Archive is a Yes/No field in the > underlying recordset. > > Works fine on all text fields and combo boxes on the form. > > Except for 4 text boxes that refuse to change their background color. I > can't see any difference between this set of four and all the others. But > I'm sure there must be. And I'm just not seeing it. > Are the controls "Back Style" properties set to "Traansparent" by any chance? -- Stuart From stuart at lexacorp.com.pg Tue Feb 3 15:11:42 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 04 Feb 2009 07:11:42 +1000 Subject: [AccessD] Conditional Formatting In-Reply-To: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005> References: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005> Message-ID: <49893FAE.32586.8967432@stuart.lexacorp.com.pg> On 3 Feb 2009 at 13:01, Rocky Smolin at Beach Access wrote: > Dear List: > > I am using conditional formatting on a continuous form to set the background > color to gray if [Archive] = True. Where Archive is a Yes/No field in the > underlying recordset. > > Works fine on all text fields and combo boxes on the form. > > Except for 4 text boxes that refuse to change their background color. I > can't see any difference between this set of four and all the others. But > I'm sure there must be. And I'm just not seeing it. > Are the controls "Back Style" properties set to "Traansparent" by any chance? -- Stuart From miscellany at mvps.org Tue Feb 3 15:14:28 2009 From: miscellany at mvps.org (Steve Schapel) Date: Wed, 04 Feb 2009 10:14:28 +1300 Subject: [AccessD] Conditional Formatting In-Reply-To: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005> References: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005> Message-ID: Rocky, Is the Back Style property set to Transparent? Regards Steve -------------------------------------------------- From: "Rocky Smolin at Beach Access Software" Sent: Wednesday, February 04, 2009 10:01 AM To: "'Access Developers discussion and problem solving'" Subject: [AccessD] Conditional Formatting > Dear List: > > I am using conditional formatting on a continuous form to set the > background > color to gray if [Archive] = True. Where Archive is a Yes/No field in the > underlying recordset. > > Works fine on all text fields and combo boxes on the form. > > Except for 4 text boxes that refuse to change their background color. I > can't see any difference between this set of four and all the others. But > I'm sure there must be. And I'm just not seeing it. > From ssharkins at gmail.com Tue Feb 3 15:29:52 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Tue, 3 Feb 2009 16:29:52 -0500 Subject: [AccessD] Maximize throwing error References: <592078D6CB5947D0A5D3958405AB9505@SusanOne> Message-ID: <347BAC54789C489B99E4AEBA304982D0@SusanOne> I did install updates yesterday and I guess I've been bit. :( In Access 2007, publishing to Word now returns an error. Criminy... I hate updates. Susan H. > Susan, > > Check any un-checked reference, close the DB and Access, re-open and > uncheck the reference just checked. Then try a compile. If it compiles, > see if the error is gone. From rockysmolin at bchacc.com Tue Feb 3 17:50:28 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 3 Feb 2009 15:50:28 -0800 Subject: [AccessD] Conditional Formatting In-Reply-To: <4988b239.1f145e0a.1540.63e6@mx.google.com> References: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005> <4988b239.1f145e0a.1540.63e6@mx.google.com> Message-ID: That's cheating! Stand by... Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, February 03, 2009 1:08 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Conditional Formatting Copy one of the ones that work and replace one of the ones that don't with the copied one changing the source etc. If that works, do it for the other three. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 03 February 2009 21:01 To: 'Access Developers discussion and problem solving' Subject: [AccessD] Conditional Formatting Dear List: I am using conditional formatting on a continuous form to set the background color to gray if [Archive] = True. Where Archive is a Yes/No field in the underlying recordset. Works fine on all text fields and combo boxes on the form. Except for 4 text boxes that refuse to change their background color. I can't see any difference between this set of four and all the others. But I'm sure there must be. And I'm just not seeing it. Any ideas? MTIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Tue Feb 3 17:51:29 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 3 Feb 2009 15:51:29 -0800 Subject: [AccessD] Conditional Formatting In-Reply-To: <49893FAE.32586.8967432@stuart.lexacorp.com.pg> References: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005> <49893FAE.32586.8967432@stuart.lexacorp.com.pg> Message-ID: <7B63C61FFB5946FD994FF4E3FE4A069B@HAL9005> No, back style normal. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Tuesday, February 03, 2009 1:12 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Conditional Formatting On 3 Feb 2009 at 13:01, Rocky Smolin at Beach Access wrote: > Dear List: > > I am using conditional formatting on a continuous form to set the > background color to gray if [Archive] = True. Where Archive is a > Yes/No field in the underlying recordset. > > Works fine on all text fields and combo boxes on the form. > > Except for 4 text boxes that refuse to change their background color. > I can't see any difference between this set of four and all the > others. But I'm sure there must be. And I'm just not seeing it. > Are the controls "Back Style" properties set to "Traansparent" by any chance? -- Stuart -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Tue Feb 3 17:51:49 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 3 Feb 2009 15:51:49 -0800 Subject: [AccessD] Conditional Formatting In-Reply-To: References: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005> Message-ID: Normal Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Schapel Sent: Tuesday, February 03, 2009 1:14 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Conditional Formatting Rocky, Is the Back Style property set to Transparent? Regards Steve -------------------------------------------------- From: "Rocky Smolin at Beach Access Software" Sent: Wednesday, February 04, 2009 10:01 AM To: "'Access Developers discussion and problem solving'" Subject: [AccessD] Conditional Formatting > Dear List: > > I am using conditional formatting on a continuous form to set the > background color to gray if [Archive] = True. Where Archive is a > Yes/No field in the underlying recordset. > > Works fine on all text fields and combo boxes on the form. > > Except for 4 text boxes that refuse to change their background color. > I can't see any difference between this set of four and all the > others. But I'm sure there must be. And I'm just not seeing it. > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Tue Feb 3 17:52:50 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 3 Feb 2009 15:52:50 -0800 Subject: [AccessD] Conditional Formatting In-Reply-To: <2D438CD2D22944EDAFD0BC19516D73FD@SusanOne> References: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005> <2D438CD2D22944EDAFD0BC19516D73FD@SusanOne> Message-ID: Expression is [archive]=True (where archive is a yes/no field. When expression is True, back color is set to gray. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: Tuesday, February 03, 2009 1:07 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Conditional Formatting Rocky, if you're using a loop, check the object type -- maybe it's just skipping those controls because they're not part of the conditional type or name. Oh wait... you're using the building in formatting, right? Share the expressions/conditions, etc. with us. Susan H. > Dear List: > > I am using conditional formatting on a continuous form to set the > background color to gray if [Archive] = True. Where Archive is a > Yes/No field in the underlying recordset. > > Works fine on all text fields and combo boxes on the form. > > Except for 4 text boxes that refuse to change their background color. > I can't see any difference between this set of four and all the > others. But I'm sure there must be. And I'm just not seeing it. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Tue Feb 3 18:00:12 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 3 Feb 2009 16:00:12 -0800 Subject: [AccessD] Conditional Formatting References: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005> <4988b239.1f145e0a.1540.63e6@mx.google.com> Message-ID: <26BB5F1BAFBB46D19CE762AD6D0A86DA@HAL9005> You are such a cheater! Worked a treat. Thanks. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: Rocky Smolin at Beach Access Software [mailto:rockysmolin at bchacc.com] Sent: Tuesday, February 03, 2009 3:50 PM To: 'Access Developers discussion and problem solving' Subject: RE: [AccessD] Conditional Formatting That's cheating! Stand by... Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, February 03, 2009 1:08 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Conditional Formatting Copy one of the ones that work and replace one of the ones that don't with the copied one changing the source etc. If that works, do it for the other three. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 03 February 2009 21:01 To: 'Access Developers discussion and problem solving' Subject: [AccessD] Conditional Formatting Dear List: I am using conditional formatting on a continuous form to set the background color to gray if [Archive] = True. Where Archive is a Yes/No field in the underlying recordset. Works fine on all text fields and combo boxes on the form. Except for 4 text boxes that refuse to change their background color. I can't see any difference between this set of four and all the others. But I'm sure there must be. And I'm just not seeing it. Any ideas? MTIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Tue Feb 3 18:12:31 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Tue, 3 Feb 2009 19:12:31 -0500 Subject: [AccessD] Conditional Formatting References: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005><4988b239.1f145e0a.1540.63e6@mx.google.com> <26BB5F1BAFBB46D19CE762AD6D0A86DA@HAL9005> Message-ID: <4CC7D17FF4394DB18CAE2E8370B894B8@jislaptopdev> ...next time try this first ...shift select one of the good controls and one of the bad ones ...open properties on the selected group ...somewhere among the missing property specs is the one causing your problem ...usually easy to see which one it is. William -------------------------------------------------- From: "Rocky Smolin at Beach Access Software" Sent: Tuesday, February 03, 2009 7:00 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Conditional Formatting > You are such a cheater! > > Worked a treat. > > Thanks. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: Rocky Smolin at Beach Access Software > [mailto:rockysmolin at bchacc.com] > Sent: Tuesday, February 03, 2009 3:50 PM > To: 'Access Developers discussion and problem solving' > Subject: RE: [AccessD] Conditional Formatting > > That's cheating! > > Stand by... > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Tuesday, February 03, 2009 1:08 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Conditional Formatting > > Copy one of the ones that work and replace one of the ones that don't with > the copied one changing the source etc. If that works, do it for the > other > three. > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: 03 February 2009 21:01 > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Conditional Formatting > > Dear List: > > I am using conditional formatting on a continuous form to set the > background > color to gray if [Archive] = True. Where Archive is a Yes/No field in the > underlying recordset. > > Works fine on all text fields and combo boxes on the form. > > Except for 4 text boxes that refuse to change their background color. I > can't see any difference between this set of four and all the others. But > I'm sure there must be. And I'm just not seeing it. > > Any ideas? > > MTIA > > > > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From Gustav at cactus.dk Wed Feb 4 01:27:21 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 04 Feb 2009 08:27:21 +0100 Subject: [AccessD] Tip: Sum elapsed time and display as a time string Message-ID: Hi all Did you know how easy it is in a query to sum elapsed time (of date/time value) and format this as a string even when count of hours exceed 24? SELECT DateDiff("h",0,Sum([ElapsedTime])) & Format(Sum([ElapsedTime]),":nn:ss") AS ElapsedTimeTotal FROM tblElapsedTime; This will return a string like, say, 45:37:12. The trick is, of course, to count the hours from date/time value 0 (zero). Then let Format handle the minutes and seconds. /gustav From max.wanadoo at gmail.com Wed Feb 4 03:09:48 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 4 Feb 2009 09:09:48 -0000 Subject: [AccessD] Conditional Formatting In-Reply-To: <26BB5F1BAFBB46D19CE762AD6D0A86DA@HAL9005> References: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005> <4988b239.1f145e0a.1540.63e6@mx.google.com> <26BB5F1BAFBB46D19CE762AD6D0A86DA@HAL9005> Message-ID: <49895b5b.2115300a.2bc8.3ba5@mx.google.com> Great stuff! Next please... Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 04 February 2009 00:00 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Conditional Formatting You are such a cheater! Worked a treat. Thanks. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: Rocky Smolin at Beach Access Software [mailto:rockysmolin at bchacc.com] Sent: Tuesday, February 03, 2009 3:50 PM To: 'Access Developers discussion and problem solving' Subject: RE: [AccessD] Conditional Formatting That's cheating! Stand by... Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, February 03, 2009 1:08 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Conditional Formatting Copy one of the ones that work and replace one of the ones that don't with the copied one changing the source etc. If that works, do it for the other three. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 03 February 2009 21:01 To: 'Access Developers discussion and problem solving' Subject: [AccessD] Conditional Formatting Dear List: I am using conditional formatting on a continuous form to set the background color to gray if [Archive] = True. Where Archive is a Yes/No field in the underlying recordset. Works fine on all text fields and combo boxes on the form. Except for 4 text boxes that refuse to change their background color. I can't see any difference between this set of four and all the others. But I'm sure there must be. And I'm just not seeing it. Any ideas? MTIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 4 03:23:47 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 4 Feb 2009 09:23:47 -0000 Subject: [AccessD] Conditional Formatting In-Reply-To: <4CC7D17FF4394DB18CAE2E8370B894B8@jislaptopdev> References: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005><4988b239.1f145e0a.1540.63e6@mx.google.com> <26BB5F1BAFBB46D19CE762AD6D0A86DA@HAL9005> <4CC7D17FF4394DB18CAE2E8370B894B8@jislaptopdev> Message-ID: <49895e9d.05ed300a.27a1.ffff91d8@mx.google.com> ...and if this fails, go back to cheating Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: 04 February 2009 00:13 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Conditional Formatting ...next time try this first ...shift select one of the good controls and one of the bad ones ...open properties on the selected group ...somewhere among the missing property specs is the one causing your problem ...usually easy to see which one it is. William -------------------------------------------------- From: "Rocky Smolin at Beach Access Software" Sent: Tuesday, February 03, 2009 7:00 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Conditional Formatting > You are such a cheater! > > Worked a treat. > > Thanks. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: Rocky Smolin at Beach Access Software > [mailto:rockysmolin at bchacc.com] > Sent: Tuesday, February 03, 2009 3:50 PM > To: 'Access Developers discussion and problem solving' > Subject: RE: [AccessD] Conditional Formatting > > That's cheating! > > Stand by... > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Tuesday, February 03, 2009 1:08 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Conditional Formatting > > Copy one of the ones that work and replace one of the ones that don't with > the copied one changing the source etc. If that works, do it for the > other > three. > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: 03 February 2009 21:01 > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Conditional Formatting > > Dear List: > > I am using conditional formatting on a continuous form to set the > background > color to gray if [Archive] = True. Where Archive is a Yes/No field in the > underlying recordset. > > Works fine on all text fields and combo boxes on the form. > > Except for 4 text boxes that refuse to change their background color. I > can't see any difference between this set of four and all the others. But > I'm sure there must be. And I'm just not seeing it. > > Any ideas? > > MTIA > > > > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From fuller.artful at gmail.com Wed Feb 4 04:54:04 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Wed, 4 Feb 2009 05:54:04 -0500 Subject: [AccessD] Tip: Sum elapsed time and display as a time string In-Reply-To: References: Message-ID: <29f585dd0902040254v171bdbbeqda7487bdfff7591d@mail.gmail.com> Wow. I didn't know that, Gustav! Thanks. Arthur On Wed, Feb 4, 2009 at 2:27 AM, Gustav Brock wrote: > Hi all > > Did you know how easy it is in a query to sum elapsed time (of date/time > value) and format this as a string even when count of hours exceed 24? > > SELECT > DateDiff("h",0,Sum([ElapsedTime])) & > Format(Sum([ElapsedTime]),":nn:ss") AS > ElapsedTimeTotal > FROM > tblElapsedTime; > > This will return a string like, say, 45:37:12. > > The trick is, of course, to count the hours from date/time value 0 (zero). > Then let Format handle the minutes and seconds. > > /gustav > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From johncliviger at aol.com Wed Feb 4 06:15:43 2009 From: johncliviger at aol.com (johncliviger at aol.com) Date: Wed, 04 Feb 2009 07:15:43 -0500 Subject: [AccessD] Conditional Formatting In-Reply-To: <49895e9d.05ed300a.27a1.ffff91d8@mx.google.com> References: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005><4988b239.1f145e0a.1540.63e6@mx.google.com> <26BB5F1BAFBB46D19CE762AD6D0A86DA@HAL9005><4CC7D17FF4394DB18CAE2E8370B894B8@jislaptopdev> <49895e9d.05ed300a.27a1.ffff91d8@mx.google.com> Message-ID: <8CB54D96FD99696-13E0-25F4@MBLK-M28.sysops.aol.com> Max Thought you were on holiday! jc -----Original Message----- From: Max Wanadoo To: 'Access Developers discussion and problem solving' Sent: Wed, 4 Feb 2009 9:23 Subject: Re: [AccessD] Conditional Formatting ...and if this fails, go back to cheating Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: 04 February 2009 00:13 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Conditional Formatting ...next time try this first ...shift select one of the good controls and one of the bad ones ...open properties on the selected group ...somewhere among the missing property specs is the one causing your problem ...usually easy to see which one it is. William -------------------------------------------------- From: "Rocky Smolin at Beach Access Software" Sent: Tuesday, February 03, 2009 7:00 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Conditional Formatting > You are such a cheater! > > Worked a treat. > > Thanks. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: Rocky Smolin at Beach Access Software > [mailto:rockysmolin at bchacc.com] > Sent: Tuesday, February 03, 2009 3:50 PM > To: 'Access Developers discussion and problem solving' > Subject: RE: [AccessD] Conditional Formatting > > That's cheating! > > Stand by... > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Tuesday, February 03, 2009 1:08 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Conditional Formatting > > Copy one of the ones that work and replace one of the ones that don't with > the copied one changing the source etc. If that works, do it for the > other > three. > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: 03 February 2009 21:01 > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Conditional Formatting > > Dear List: > > I am using conditional formatting on a continuous form to set the > background > color to gray if [Archive] = True. Where Archive is a Yes/No field in the > underlying recordset. > > Works fine on all text fields and combo boxes on the form. > > Except for 4 text boxes that refuse to change their background color. I > can't see any difference between this set of four and all the others. But > I'm sure there must be. And I'm just not seeing it. > > Any ideas? > > MTIA > > > > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ________________________________________________________________________ AOL Email goes Mobile! You can now read your AOL Emails whilst on the move. Sign up for a free AOL Email account with unlimited storage today. From max.wanadoo at gmail.com Wed Feb 4 06:21:48 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 4 Feb 2009 12:21:48 -0000 Subject: [AccessD] Conditional Formatting In-Reply-To: <8CB54D96FD99696-13E0-25F4@MBLK-M28.sysops.aol.com> References: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005><4988b239.1f145e0a.1540.63e6@mx.google.com> <26BB5F1BAFBB46D19CE762AD6D0A86DA@HAL9005><4CC7D17FF4394DB18CAE2E8370B894B8@jislaptopdev> <49895e9d.05ed300a.27a1.ffff91d8@mx.google.com> <8CB54D96FD99696-13E0-25F4@MBLK-M28.sysops.aol.com> Message-ID: <49898856.2315300a.0af1.ffffcef3@mx.google.com> I am....good fun this....great when your job is your hobby too. ....get paid for having a hobby.... Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of johncliviger at aol.com Sent: 04 February 2009 12:16 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Conditional Formatting Max Thought you were on holiday! jc -----Original Message----- From: Max Wanadoo To: 'Access Developers discussion and problem solving' Sent: Wed, 4 Feb 2009 9:23 Subject: Re: [AccessD] Conditional Formatting ...and if this fails, go back to cheating Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: 04 February 2009 00:13 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Conditional Formatting ...next time try this first ...shift select one of the good controls and one of the bad ones ...open properties on the selected group ...somewhere among the missing property specs is the one causing your problem ...usually easy to see which one it is. William -------------------------------------------------- From: "Rocky Smolin at Beach Access Software" Sent: Tuesday, February 03, 2009 7:00 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Conditional Formatting > You are such a cheater! > > Worked a treat. > > Thanks. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: Rocky Smolin at Beach Access Software > [mailto:rockysmolin at bchacc.com] > Sent: Tuesday, February 03, 2009 3:50 PM > To: 'Access Developers discussion and problem solving' > Subject: RE: [AccessD] Conditional Formatting > > That's cheating! > > Stand by... > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Tuesday, February 03, 2009 1:08 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Conditional Formatting > > Copy one of the ones that work and replace one of the ones that don't with > the copied one changing the source etc. If that works, do it for the > other > three. > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: 03 February 2009 21:01 > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Conditional Formatting > > Dear List: > > I am using conditional formatting on a continuous form to set the > background > color to gray if [Archive] = True. Where Archive is a Yes/No field in the > underlying recordset. > > Works fine on all text fields and combo boxes on the form. > > Except for 4 text boxes that refuse to change their background color. I > can't see any difference between this set of four and all the others. But > I'm sure there must be. And I'm just not seeing it. > > Any ideas? > > MTIA > > > > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ________________________________________________________________________ AOL Email goes Mobile! You can now read your AOL Emails whilst on the move. Sign up for a free AOL Email account with unlimited storage today. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From johncliviger at aol.com Wed Feb 4 06:27:34 2009 From: johncliviger at aol.com (johncliviger at aol.com) Date: Wed, 04 Feb 2009 07:27:34 -0500 Subject: [AccessD] Conditional Formatting In-Reply-To: <49898856.2315300a.0af1.ffffcef3@mx.google.com> References: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005><4988b239.1f145e0a.1540.63e6@mx.google.com> <26BB5F1BAFBB46D19CE762AD6D0A86DA@HAL9005><4CC7D17FF4394DB18CAE2E8370B894B8@jislaptopdev> <49895e9d.05ed300a.27a1.ffff91d8@mx.google.com><8CB54D96FD99696-13E0-25F4@MBLK-M28.sysops.aol.com> <49898856.2315300a.0af1.ffffcef3@mx.google.com> Message-ID: <8CB54DB175DBE41-13E0-265D@MBLK-M28.sysops.aol.com> Max Some people have all the luck. And I bet you've not had any snow too! jc -----Original Message----- From: Max Wanadoo To: 'Access Developers discussion and problem solving' Sent: Wed, 4 Feb 2009 12:21 Subject: Re: [AccessD] Conditional Formatting I am....good fun this....great when your job is your hobby too. ....get paid for having a hobby.... Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of johncliviger at aol.com Sent: 04 February 2009 12:16 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Conditional Formatting Max Thought you were on holiday! jc -----Original Message----- From: Max Wanadoo To: 'Access Developers discussion and problem solving' Sent: Wed, 4 Feb 2009 9:23 Subject: Re: [AccessD] Conditional Formatting ...and if this fails, go back to cheating Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: 04 February 2009 00:13 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Conditional Formatting ...next time try this first ...shift select one of the good controls and one of the bad ones ...open properties on the selected group ...somewhere among the missing property specs is the one causing your problem ...usually easy to see which one it is. William -------------------------------------------------- From: "Rocky Smolin at Beach Access Software" Sent: Tuesday, February 03, 2009 7:00 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Conditional Formatting > You are such a cheater! > > Worked a treat. > > Thanks. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: Rocky Smolin at Beach Access Software > [mailto:rockysmolin at bchacc.com] > Sent: Tuesday, February 03, 2009 3:50 PM > To: 'Access Developers discussion and problem solving' > Subject: RE: [AccessD] Conditional Formatting > > That's cheating! > > Stand by... > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-m rp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Tuesday, February 03, 2009 1:08 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Conditional Formatting > > Copy one of the ones that work and replace one of the ones that don't with > the copied one changing the source etc. If that works, do it for the > other > three. > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: 03 February 2009 21:01 > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Conditional Formatting > > Dear List: > > I am using conditional formatting on a continuous form to set the > background > color to gray if [Archive] = True. Where Archive is a Yes/No field in the > underlying recordset. > > Works fine on all text fields and combo boxes on the form. > > Except for 4 text boxes that refuse to change their background color. I > can't see any difference between this set of four and all the others. But > I'm sure there must be. And I'm just not seeing it. > > Any ideas? > > MTIA > > > > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/m ailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ________________________________________________________________________ AOL Email goes Mobile! You can now read your AOL Emails whilst on the move. Sign up for a free AOL Email account with unlimited storage today. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ________________________________________________________________________ AOL Email goes Mobile! You can now read your AOL Emails whilst on the move. Sign up for a free AOL Email account with unlimited storage today. From max.wanadoo at gmail.com Wed Feb 4 06:31:50 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 4 Feb 2009 12:31:50 -0000 Subject: [AccessD] Conditional Formatting In-Reply-To: <8CB54DB175DBE41-13E0-265D@MBLK-M28.sysops.aol.com> References: <022A0D96A3AE4C25B2A5A453EB37A1B0@HAL9005><4988b239.1f145e0a.1540.63e6@mx.google.com> <26BB5F1BAFBB46D19CE762AD6D0A86DA@HAL9005><4CC7D17FF4394DB18CAE2E8370B894B8@jislaptopdev> <49895e9d.05ed300a.27a1.ffff91d8@mx.google.com><8CB54D96FD99696-13E0-25F4@MBLK-M28.sysops.aol.com> <49898856.2315300a.0af1.ffffcef3@mx.google.com> <8CB54DB175DBE41-13E0-265D@MBLK-M28.sysops.aol.com> Message-ID: <49898ab1.0116300a.6945.ffffe8fc@mx.google.com> You lose! Send the ?200 immediately. Thanks Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of johncliviger at aol.com Sent: 04 February 2009 12:28 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Conditional Formatting Max Some people have all the luck. And I bet you've not had any snow too! jc -----Original Message----- From: Max Wanadoo To: 'Access Developers discussion and problem solving' Sent: Wed, 4 Feb 2009 12:21 Subject: Re: [AccessD] Conditional Formatting I am....good fun this....great when your job is your hobby too. ....get paid for having a hobby.... Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of johncliviger at aol.com Sent: 04 February 2009 12:16 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Conditional Formatting Max Thought you were on holiday! jc -----Original Message----- From: Max Wanadoo To: 'Access Developers discussion and problem solving' Sent: Wed, 4 Feb 2009 9:23 Subject: Re: [AccessD] Conditional Formatting ...and if this fails, go back to cheating Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: 04 February 2009 00:13 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Conditional Formatting ...next time try this first ...shift select one of the good controls and one of the bad ones ...open properties on the selected group ...somewhere among the missing property specs is the one causing your problem ...usually easy to see which one it is. William -------------------------------------------------- From: "Rocky Smolin at Beach Access Software" Sent: Tuesday, February 03, 2009 7:00 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Conditional Formatting > You are such a cheater! > > Worked a treat. > > Thanks. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: Rocky Smolin at Beach Access Software > [mailto:rockysmolin at bchacc.com] > Sent: Tuesday, February 03, 2009 3:50 PM > To: 'Access Developers discussion and problem solving' > Subject: RE: [AccessD] Conditional Formatting > > That's cheating! > > Stand by... > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-m rp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Tuesday, February 03, 2009 1:08 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Conditional Formatting > > Copy one of the ones that work and replace one of the ones that don't with > the copied one changing the source etc. If that works, do it for the > other > three. > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: 03 February 2009 21:01 > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Conditional Formatting > > Dear List: > > I am using conditional formatting on a continuous form to set the > background > color to gray if [Archive] = True. Where Archive is a Yes/No field in the > underlying recordset. > > Works fine on all text fields and combo boxes on the form. > > Except for 4 text boxes that refuse to change their background color. I > can't see any difference between this set of four and all the others. But > I'm sure there must be. And I'm just not seeing it. > > Any ideas? > > MTIA > > > > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/m ailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ________________________________________________________________________ AOL Email goes Mobile! You can now read your AOL Emails whilst on the move. Sign up for a free AOL Email account with unlimited storage today. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ________________________________________________________________________ AOL Email goes Mobile! You can now read your AOL Emails whilst on the move. Sign up for a free AOL Email account with unlimited storage today. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Wed Feb 4 09:12:19 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 04 Feb 2009 10:12:19 -0500 Subject: [AccessD] Thunderbird line wrap Message-ID: <4989B053.7080005@colbyconsulting.com> When I reply to emails, in at least some cases the email below my signature (from the person I am responding to) does not line wrap, i.e. it just runs off the right hand side of the screen. This makes it difficult to read. Does anyone know how to cause the line to wrap? -- John W. Colby www.ColbyConsulting.com From markamatte at hotmail.com Wed Feb 4 09:27:57 2009 From: markamatte at hotmail.com (Mark A Matte) Date: Wed, 4 Feb 2009 15:27:57 +0000 Subject: [AccessD] Thunderbird line wrap In-Reply-To: <4989B053.7080005@colbyconsulting.com> References: <4989B053.7080005@colbyconsulting.com> Message-ID: Its not Thunderbird related...but as of about 6-10 months ago...Anytime I reply to this list...I have to Switch to 'plain text' or everything...including my email will run together. I know it is not a solution...but a possible workaround. Mark ---------------------------------------- > Date: Wed, 4 Feb 2009 10:12:19 -0500 > From: jwcolby at colbyconsulting.com > To: accessd at databaseadvisors.com > Subject: [AccessD] Thunderbird line wrap > > When I reply to emails, in at least some cases the email below my signature (from the person I am > responding to) does not line wrap, i.e. it just runs off the right hand side of the screen. This > makes it difficult to read. Does anyone know how to cause the line to wrap? > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com _________________________________________________________________ Windows Live?: E-mail. Chat. Share. Get more ways to connect. http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_HM_AE_Faster_022009 From rockysmolin at bchacc.com Wed Feb 4 10:28:15 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 4 Feb 2009 08:28:15 -0800 Subject: [AccessD] Decimal point with no places to the right Message-ID: Dear List: Is it possible to format a number in a bound text box with zero decimal places to the right of the decimal point but still display the decimal point? MTIA Rocky From max.wanadoo at gmail.com Wed Feb 4 10:48:35 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 4 Feb 2009 16:48:35 -0000 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: References: Message-ID: <4989c6de.0269300a.2f60.fffff09e@mx.google.com> If it is a "number" that is displayed and not "acted" upon then format it as a string and you can put whatever you want in it. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 04 February 2009 16:28 To: 'Access Developers discussion and problem solving' Subject: [AccessD] Decimal point with no places to the right Dear List: Is it possible to format a number in a bound text box with zero decimal places to the right of the decimal point but still display the decimal point? MTIA Rocky -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Wed Feb 4 10:51:07 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Wed, 4 Feb 2009 08:51:07 -0800 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: References: Message-ID: Only if you bind the textbox to a text representation of the value. If you want to edit it, no. The decimal point is a delimiter. No decimal places, no decimal point QED. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 04, 2009 8:28 AM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Decimal point with no places to the right Dear List: Is it possible to format a number in a bound text box with zero decimal places to the right of the decimal point but still display the decimal point? MTIA Rocky -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Wed Feb 4 11:00:42 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 04 Feb 2009 18:00:42 +0100 Subject: [AccessD] Decimal point with no places to the right Message-ID: Hi Rocky You can use a format string of: "0.#" /gustav >>> rockysmolin at bchacc.com 04-02-2009 17:28 >>> Dear List: Is it possible to format a number in a bound text box with zero decimal places to the right of the decimal point but still display the decimal point? MTIA Rocky From joe.rojas at symmetrynb.com Wed Feb 4 11:06:09 2009 From: joe.rojas at symmetrynb.com (Rojas, Joe) Date: Wed, 4 Feb 2009 12:06:09 -0500 Subject: [AccessD] Help with Query References: <4989c6de.0269300a.2f60.fffff09e@mx.google.com> Message-ID: <5BAE0A5B5D7E414D96584521B26E6C09AA6DB3@DPYUSNBEXS1.snb.local> Hi All, I am trying to pull data into Access from our ERP system that runs off of a Progress OpenEdge database. The problem I'm having is that the query takes a long time to run...around 20 mins. I think the problem is related to how I've designed the query and I'm hoping someone can point out my error. I'm connecting to OpenEdge via ODBC. I've linked to the tables I need in Access. I've pasted the SQL for the queries below. The first query runs pretty quick. It pulles data from one of the tables based on date range and inserts the records into a local table in Access. The second query is the one that has the problem. I created a query in Access that pulls data from another table in OpenEdge that has a WHERE clause that uses the IN statement. The IN statement uses a sub query to get the distinct job numbers from the local table that was created in the first query. The sub query could return many job numbers depending on the span in the date range for the first query. By many, I mean it could be 10, 100, 1000, or more. My guess is that the sub query could be the problem. When I run the query, the CPU spikes to 100% for MSACESS but the network traffic indicates that it's not actually pulling data the whole time. Is there an alternate method to achieving my goal? Tables in my query that have a 'tbl' prefix are local tables. Tables with a 'PUB' prefix are link ODBC tables. Query 1 (runs in seconds) INSERT INTO tblLaborDtl ( Company, EmployeeNum, JobNum, OprSeq, ResourceGrpID, ScrapQty, ResourceID, ClockInDate, LaborDtlSeq, ScrapReasonCode ) SELECT PUB_LaborDtl.Company, PUB_LaborDtl.EmployeeNum, PUB_LaborDtl.JobNum, PUB_LaborDtl.OprSeq, PUB_LaborDtl.ResourceGrpID, PUB_LaborDtl.ScrapQty, PUB_LaborDtl.ResourceID, PUB_LaborDtl.ClockInDate, PUB_LaborDtl.LaborDtlSeq, PUB_LaborDtl.ScrapReasonCode FROM PUB_LaborDtl WHERE (((PUB_LaborDtl.ClockInDate) Between [dteStart] And [dteEnd])); Query 2 (take 20 mins) INSERT INTO tblJobOper ( Company, JobNum, OprSeq, OpCode, SubContract, ActBurCost, ActLabCost ) SELECT PUB_JobOper.Company, PUB_JobOper.JobNum, PUB_JobOper.OprSeq, PUB_JobOper.OpCode, PUB_JobOper.SubContract, PUB_JobOper.ActBurCost, PUB_JobOper.ActLabCost FROM PUB_JobOper WHERE PUB_JobOper.Company = 'SNB' AND PUB_JobOper.JobNum In (SELECT DISTINCT tblLaborDtl.JobNum FROM tblLaborDtl); Joe From rockysmolin at bchacc.com Wed Feb 4 12:14:48 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 4 Feb 2009 10:14:48 -0800 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: <4989c6de.0269300a.2f60.fffff09e@mx.google.com> References: <4989c6de.0269300a.2f60.fffff09e@mx.google.com> Message-ID: <67BAE8EAA0364A838FD7B2CF3B864342@HAL9005> Bound numeric field which needs updating. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Wednesday, February 04, 2009 8:49 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right If it is a "number" that is displayed and not "acted" upon then format it as a string and you can put whatever you want in it. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 04 February 2009 16:28 To: 'Access Developers discussion and problem solving' Subject: [AccessD] Decimal point with no places to the right Dear List: Is it possible to format a number in a bound text box with zero decimal places to the right of the decimal point but still display the decimal point? MTIA Rocky -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 4 12:19:15 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 4 Feb 2009 10:19:15 -0800 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: References: Message-ID: Gustav: Didn't show the decimal point. What am I doing wrong? I tried it both in the Format property and the input mask. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 9:01 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Rocky You can use a format string of: "0.#" /gustav >>> rockysmolin at bchacc.com 04-02-2009 17:28 >>> Dear List: Is it possible to format a number in a bound text box with zero decimal places to the right of the decimal point but still display the decimal point? MTIA Rocky -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Wed Feb 4 12:25:12 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 04 Feb 2009 19:25:12 +0100 Subject: [AccessD] Decimal point with no places to the right Message-ID: Hi Rocky Don't know about the input mask. Remove that for a test. It works here just like that. /gustav >>> rockysmolin at bchacc.com 04-02-2009 19:19 >>> Gustav: Didn't show the decimal point. What am I doing wrong? I tried it both in the Format property and the input mask. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 9:01 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Rocky You can use a format string of: "0.#" /gustav >>> rockysmolin at bchacc.com 04-02-2009 17:28 >>> Dear List: Is it possible to format a number in a bound text box with zero decimal places to the right of the decimal point but still display the decimal point? MTIA Rocky From rockysmolin at bchacc.com Wed Feb 4 12:33:16 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 4 Feb 2009 10:33:16 -0800 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: References: Message-ID: Without the quote marks, I assume - just 0.# in the format property?. 2003 or 2007? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 10:25 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Rocky Don't know about the input mask. Remove that for a test. It works here just like that. /gustav >>> rockysmolin at bchacc.com 04-02-2009 19:19 >>> Gustav: Didn't show the decimal point. What am I doing wrong? I tried it both in the Format property and the input mask. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 9:01 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Rocky You can use a format string of: "0.#" /gustav >>> rockysmolin at bchacc.com 04-02-2009 17:28 >>> Dear List: Is it possible to format a number in a bound text box with zero decimal places to the right of the decimal point but still display the decimal point? MTIA Rocky -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Lambert.Heenan at AIG.com Wed Feb 4 12:23:00 2009 From: Lambert.Heenan at AIG.com (Heenan, Lambert) Date: Wed, 4 Feb 2009 13:23:00 -0500 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: References: Message-ID: Gustav? Your format string shows one decimal place (as I would expect it to) ? format(111.12,"0.#") 111.1 This shows no decimal places... ? format(111.12,"0.") 111. Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 04, 2009 1:19 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right Gustav: Didn't show the decimal point. What am I doing wrong? I tried it both in the Format property and the input mask. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 9:01 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Rocky You can use a format string of: "0.#" /gustav >>> rockysmolin at bchacc.com 04-02-2009 17:28 >>> Dear List: Is it possible to format a number in a bound text box with zero decimal places to the right of the decimal point but still display the decimal point? MTIA Rocky -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From carbonnb at gmail.com Wed Feb 4 12:38:21 2009 From: carbonnb at gmail.com (Bryan Carbonnell) Date: Wed, 4 Feb 2009 13:38:21 -0500 Subject: [AccessD] Training Records Database Message-ID: Does anyone have a training records database I could get from them as a starting point for a new one? Basically I need to track: Course, Participant(s), Instructor(s), Location, Date(s), Time(s) Thanks for any help you can lend. -- Bryan Carbonnell - carbonnb at gmail.com Life's journey is not to arrive at the grave safely in a well preserved body, but rather to skid in sideways, totally worn out, shouting "What a great ride!" From Gustav at cactus.dk Wed Feb 4 12:46:08 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 04 Feb 2009 19:46:08 +0100 Subject: [AccessD] Decimal point with no places to the right Message-ID: Hi Lambert > Your format string shows one decimal place (as I would expect it to) Yes, but none for an Integer - that I understood was the issue. /gustav >>> Lambert.Heenan at aig.com 04-02-2009 19:23 >>> Gustav? Your format string shows one decimal place (as I would expect it to) ? format(111.12,"0.#") 111.1 This shows no decimal places... ? format(111.12,"0.") 111. Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 04, 2009 1:19 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right Gustav: Didn't show the decimal point. What am I doing wrong? I tried it both in the Format property and the input mask. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 9:01 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Rocky You can use a format string of: "0.#" /gustav >>> rockysmolin at bchacc.com 04-02-2009 17:28 >>> Dear List: Is it possible to format a number in a bound text box with zero decimal places to the right of the decimal point but still display the decimal point? MTIA Rocky From Gustav at cactus.dk Wed Feb 4 12:47:03 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 04 Feb 2009 19:47:03 +0100 Subject: [AccessD] Decimal point with no places to the right Message-ID: Hi Rocky Yes. Access 97. But it should not matter. /gustav >>> rockysmolin at bchacc.com 04-02-2009 19:33 >>> Without the quote marks, I assume - just 0.# in the format property?. 2003 or 2007? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 10:25 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Rocky Don't know about the input mask. Remove that for a test. It works here just like that. /gustav >>> rockysmolin at bchacc.com 04-02-2009 19:19 >>> Gustav: Didn't show the decimal point. What am I doing wrong? I tried it both in the Format property and the input mask. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 9:01 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Rocky You can use a format string of: "0.#" /gustav >>> rockysmolin at bchacc.com 04-02-2009 17:28 >>> Dear List: Is it possible to format a number in a bound text box with zero decimal places to the right of the decimal point but still display the decimal point? MTIA Rocky From markamatte at hotmail.com Wed Feb 4 12:49:10 2009 From: markamatte at hotmail.com (Mark A Matte) Date: Wed, 4 Feb 2009 18:49:10 +0000 Subject: [AccessD] Help with Query In-Reply-To: <5BAE0A5B5D7E414D96584521B26E6C09AA6DB3@DPYUSNBEXS1.snb.local> References: <4989c6de.0269300a.2f60.fffff09e@mx.google.com> <5BAE0A5B5D7E414D96584521B26E6C09AA6DB3@DPYUSNBEXS1.snb.local> Message-ID: I have the same issue when pulling data via ODBC...I have found it is much quicker to NOT join a local table to a linked ODBC...just my opinion. Any reason you can't do the filtering in one SQL statement.(see sample below) Good Luck, Mark A. Matte SELECT PUB_JobOper.Company, PUB_JobOper.JobNum, PUB_JobOper.OprSeq, PUB_JobOper.OpCode, PUB_JobOper.SubContract, PUB_JobOper.ActBurCost, PUB_JobOper.ActLabCost FROM PUB_JobOper,PUB_LaborDtl WHERE PUB_JobOper.JobNum=PUB_LaborDtl.JobNum and PUB_JobOper.Company = 'SNB' and ((PUB_LaborDtl.ClockInDate) Between [dteStart] And [dteEnd]); ---------------------------------------- > Date: Wed, 4 Feb 2009 12:06:09 -0500 > From: joe.rojas at symmetrynb.com > To: accessd at databaseadvisors.com > Subject: [AccessD] Help with Query > > Hi All, > > I am trying to pull data into Access from our ERP system that runs off > of a Progress OpenEdge database. > The problem I'm having is that the query takes a long time to > run...around 20 mins. > I think the problem is related to how I've designed the query and I'm > hoping someone can point out my error. > > I'm connecting to OpenEdge via ODBC. I've linked to the tables I need in > Access. > I've pasted the SQL for the queries below. > The first query runs pretty quick. It pulles data from one of the tables > based on date range and inserts the records into a local table in > Access. > The second query is the one that has the problem. I created a query in > Access that pulls data from another table in OpenEdge that has a WHERE > clause that uses the IN statement. The IN statement uses a sub query to > get the distinct job numbers from the local table that was created in > the first query. > The sub query could return many job numbers depending on the span in the > date range for the first query. > By many, I mean it could be 10, 100, 1000, or more. > > My guess is that the sub query could be the problem. > When I run the query, the CPU spikes to 100% for MSACESS but the network > traffic indicates that it's not actually pulling data the whole time. > > Is there an alternate method to achieving my goal? > > Tables in my query that have a 'tbl' prefix are local tables. Tables > with a 'PUB' prefix are link ODBC tables. > > Query 1 (runs in seconds) > INSERT INTO tblLaborDtl ( Company, EmployeeNum, JobNum, OprSeq, > ResourceGrpID, ScrapQty, ResourceID, ClockInDate, LaborDtlSeq, > ScrapReasonCode ) > SELECT PUB_LaborDtl.Company, PUB_LaborDtl.EmployeeNum, > PUB_LaborDtl.JobNum, PUB_LaborDtl.OprSeq, PUB_LaborDtl.ResourceGrpID, > PUB_LaborDtl.ScrapQty, PUB_LaborDtl.ResourceID, > PUB_LaborDtl.ClockInDate, PUB_LaborDtl.LaborDtlSeq, > PUB_LaborDtl.ScrapReasonCode > FROM PUB_LaborDtl > WHERE (((PUB_LaborDtl.ClockInDate) Between [dteStart] And [dteEnd])); > > Query 2 (take 20 mins) > INSERT INTO tblJobOper ( Company, JobNum, OprSeq, OpCode, SubContract, > ActBurCost, ActLabCost ) > SELECT PUB_JobOper.Company, PUB_JobOper.JobNum, PUB_JobOper.OprSeq, > PUB_JobOper.OpCode, PUB_JobOper.SubContract, PUB_JobOper.ActBurCost, > PUB_JobOper.ActLabCost > FROM PUB_JobOper > WHERE PUB_JobOper.Company = 'SNB' AND PUB_JobOper.JobNum In (SELECT > DISTINCT tblLaborDtl.JobNum FROM tblLaborDtl); > > Joe > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com _________________________________________________________________ Windows Live?: Keep your life in sync. http://windowslive.com/explore?ocid=TXT_TAGLM_WL_t1_allup_explore_022009 From max.wanadoo at gmail.com Wed Feb 4 12:57:38 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 4 Feb 2009 18:57:38 -0000 Subject: [AccessD] Training Records Database In-Reply-To: References: Message-ID: <4989e51d.0c53300a.52cc.ffffc18f@mx.google.com> Bit of a long shot Bryan, But did northwind not come with something similar. Also have you tried the MS site. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bryan Carbonnell Sent: 04 February 2009 18:38 To: Access Developers discussion and problem solving Subject: [AccessD] Training Records Database Does anyone have a training records database I could get from them as a starting point for a new one? Basically I need to track: Course, Participant(s), Instructor(s), Location, Date(s), Time(s) Thanks for any help you can lend. -- Bryan Carbonnell - carbonnb at gmail.com Life's journey is not to arrive at the grave safely in a well preserved body, but rather to skid in sideways, totally worn out, shouting "What a great ride!" -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 4 13:00:35 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 4 Feb 2009 19:00:35 -0000 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: <67BAE8EAA0364A838FD7B2CF3B864342@HAL9005> References: <4989c6de.0269300a.2f60.fffff09e@mx.google.com> <67BAE8EAA0364A838FD7B2CF3B864342@HAL9005> Message-ID: <4989e5cc.19e7300a.53ea.ffff852c@mx.google.com> Well, if Gustav et al cannot help then as a final solution you could put a hidden field on top of another and have the visible one (Unbound) as a string displaying what you want with the hidden field actually holding the numeric data. Bit convoluted but I like to think laterally (ie, lying down with a beer) Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 04 February 2009 18:15 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right Bound numeric field which needs updating. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Wednesday, February 04, 2009 8:49 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right If it is a "number" that is displayed and not "acted" upon then format it as a string and you can put whatever you want in it. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 04 February 2009 16:28 To: 'Access Developers discussion and problem solving' Subject: [AccessD] Decimal point with no places to the right Dear List: Is it possible to format a number in a bound text box with zero decimal places to the right of the decimal point but still display the decimal point? MTIA Rocky -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From ssharkins at gmail.com Wed Feb 4 13:06:26 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Wed, 4 Feb 2009 14:06:26 -0500 Subject: [AccessD] Thanks Guys! Message-ID: <9D5E2D9F415C4941A1688AD4FD9D27A2@SusanOne> http://blogs.techrepublic.com.com/10things/?p=497&alertspromo=100907&tag=nl.rSINGLE Susan H. From carbonnb at gmail.com Wed Feb 4 13:17:41 2009 From: carbonnb at gmail.com (Bryan Carbonnell) Date: Wed, 4 Feb 2009 14:17:41 -0500 Subject: [AccessD] Training Records Database In-Reply-To: <4989e51d.0c53300a.52cc.ffffc18f@mx.google.com> References: <4989e51d.0c53300a.52cc.ffffc18f@mx.google.com> Message-ID: On Wed, Feb 4, 2009 at 1:57 PM, Max Wanadoo wrote: > Bit of a long shot Bryan, > But did northwind not come with something similar. Also have you tried the > MS site. AFAIK, Northwind didn't have anything like this, but I could be wrong. As for looking at MS site, I was hoping to get something GOOD. LOL -- Bryan Carbonnell - carbonnb at gmail.com Life's journey is not to arrive at the grave safely in a well preserved body, but rather to skid in sideways, totally worn out, shouting "What a great ride!" From max.wanadoo at gmail.com Wed Feb 4 13:21:18 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 4 Feb 2009 19:21:18 -0000 Subject: [AccessD] Training Records Database In-Reply-To: References: <4989e51d.0c53300a.52cc.ffffc18f@mx.google.com> Message-ID: <4989eaa8.06e9300a.443d.ffff97f3@mx.google.com> Ha! Good one! Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bryan Carbonnell Sent: 04 February 2009 19:18 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Training Records Database On Wed, Feb 4, 2009 at 1:57 PM, Max Wanadoo wrote: > Bit of a long shot Bryan, > But did northwind not come with something similar. Also have you tried the > MS site. AFAIK, Northwind didn't have anything like this, but I could be wrong. As for looking at MS site, I was hoping to get something GOOD. LOL -- Bryan Carbonnell - carbonnb at gmail.com Life's journey is not to arrive at the grave safely in a well preserved body, but rather to skid in sideways, totally worn out, shouting "What a great ride!" -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Lambert.Heenan at AIG.com Wed Feb 4 13:00:51 2009 From: Lambert.Heenan at AIG.com (Heenan, Lambert) Date: Wed, 4 Feb 2009 14:00:51 -0500 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: References: Message-ID: ? format(111&,"0.#") 111. Too true. Works for integer types, though not sure if Rocky specified integers. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 1:46 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Lambert > Your format string shows one decimal place (as I would expect it to) Yes, but none for an Integer - that I understood was the issue. /gustav >>> Lambert.Heenan at aig.com 04-02-2009 19:23 >>> Gustav? Your format string shows one decimal place (as I would expect it to) ? format(111.12,"0.#") 111.1 This shows no decimal places... ? format(111.12,"0.") 111. Lambert From dw-murphy at cox.net Wed Feb 4 13:28:26 2009 From: dw-murphy at cox.net (Doug Murphy) Date: Wed, 4 Feb 2009 11:28:26 -0800 Subject: [AccessD] Training Records Database In-Reply-To: References: Message-ID: <4D2AA4F159D24AB0893241BD836B5144@murphy3234aaf1> Access 2007 has a bunch of example data bases one of which probably covers training. I took a quick look at the MS site, but as usual finding something isn't easy. Doug -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bryan Carbonnell Sent: Wednesday, February 04, 2009 10:38 AM To: Access Developers discussion and problem solving Subject: [AccessD] Training Records Database Does anyone have a training records database I could get from them as a starting point for a new one? Basically I need to track: Course, Participant(s), Instructor(s), Location, Date(s), Time(s) Thanks for any help you can lend. -- Bryan Carbonnell - carbonnb at gmail.com Life's journey is not to arrive at the grave safely in a well preserved body, but rather to skid in sideways, totally worn out, shouting "What a great ride!" -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From carbonnb at gmail.com Wed Feb 4 13:34:34 2009 From: carbonnb at gmail.com (Bryan Carbonnell) Date: Wed, 4 Feb 2009 14:34:34 -0500 Subject: [AccessD] Training Records Database In-Reply-To: <4D2AA4F159D24AB0893241BD836B5144@murphy3234aaf1> References: <4D2AA4F159D24AB0893241BD836B5144@murphy3234aaf1> Message-ID: On Wed, Feb 4, 2009 at 2:28 PM, Doug Murphy wrote: > Access 2007 has a bunch of example data bases one of which probably covers > training. I took a quick look at the MS site, but as usual finding something > isn't easy. Guess I shoulda mentioned, I'm stuck on A2K. -- Bryan Carbonnell - carbonnb at gmail.com Life's journey is not to arrive at the grave safely in a well preserved body, but rather to skid in sideways, totally worn out, shouting "What a great ride!" From max.wanadoo at gmail.com Wed Feb 4 13:43:24 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 4 Feb 2009 19:43:24 -0000 Subject: [AccessD] Training Records Database In-Reply-To: References: <4D2AA4F159D24AB0893241BD836B5144@murphy3234aaf1> Message-ID: <4989efd5.0616300a.4075.ffffd43e@mx.google.com> Just had a quick look at 2007 and it has a Faculties and a Students template. Have to go out now, but I was thinking that somebody might be able to save them in an earlier version for you. I have (but don't use) 2007 'cos it is so stupidly cumbersome to navigate and at the end of the day, it does no more than 2003. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bryan Carbonnell Sent: 04 February 2009 19:35 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Training Records Database On Wed, Feb 4, 2009 at 2:28 PM, Doug Murphy wrote: > Access 2007 has a bunch of example data bases one of which probably covers > training. I took a quick look at the MS site, but as usual finding something > isn't easy. Guess I shoulda mentioned, I'm stuck on A2K. -- Bryan Carbonnell - carbonnb at gmail.com Life's journey is not to arrive at the grave safely in a well preserved body, but rather to skid in sideways, totally worn out, shouting "What a great ride!" -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From garykjos at gmail.com Wed Feb 4 13:46:51 2009 From: garykjos at gmail.com (Gary Kjos) Date: Wed, 4 Feb 2009 13:46:51 -0600 Subject: [AccessD] Help with Query In-Reply-To: <5BAE0A5B5D7E414D96584521B26E6C09AA6DB3@DPYUSNBEXS1.snb.local> References: <4989c6de.0269300a.2f60.fffff09e@mx.google.com> <5BAE0A5B5D7E414D96584521B26E6C09AA6DB3@DPYUSNBEXS1.snb.local> Message-ID: How about instead of the IN and with the Distict in the select statement, what if you created a temp table of those job numbers with a make table query over the results from the first query with group by. Then I would set the job number as a KEY field too. Then run you second query with a join between the job number in your temp table and on the source system. If this proves to be satisfactory performance wise you might want to change the make table to an append query and run a delete query on the temp file first to clean it out. That way the key field stays there. I do this kind of stuff and have had good results but am using Oracle database tables as source data. GK On 2/4/09, Rojas, Joe wrote: > Hi All, > > I am trying to pull data into Access from our ERP system that runs off > of a Progress OpenEdge database. > The problem I'm having is that the query takes a long time to > run...around 20 mins. > I think the problem is related to how I've designed the query and I'm > hoping someone can point out my error. > > I'm connecting to OpenEdge via ODBC. I've linked to the tables I need in > Access. > I've pasted the SQL for the queries below. > The first query runs pretty quick. It pulles data from one of the tables > based on date range and inserts the records into a local table in > Access. > The second query is the one that has the problem. I created a query in > Access that pulls data from another table in OpenEdge that has a WHERE > clause that uses the IN statement. The IN statement uses a sub query to > get the distinct job numbers from the local table that was created in > the first query. > The sub query could return many job numbers depending on the span in the > date range for the first query. > By many, I mean it could be 10, 100, 1000, or more. > > My guess is that the sub query could be the problem. > When I run the query, the CPU spikes to 100% for MSACESS but the network > traffic indicates that it's not actually pulling data the whole time. > > Is there an alternate method to achieving my goal? > > Tables in my query that have a 'tbl' prefix are local tables. Tables > with a 'PUB' prefix are link ODBC tables. > > Query 1 (runs in seconds) > INSERT INTO tblLaborDtl ( Company, EmployeeNum, JobNum, OprSeq, > ResourceGrpID, ScrapQty, ResourceID, ClockInDate, LaborDtlSeq, > ScrapReasonCode ) > SELECT PUB_LaborDtl.Company, PUB_LaborDtl.EmployeeNum, > PUB_LaborDtl.JobNum, PUB_LaborDtl.OprSeq, PUB_LaborDtl.ResourceGrpID, > PUB_LaborDtl.ScrapQty, PUB_LaborDtl.ResourceID, > PUB_LaborDtl.ClockInDate, PUB_LaborDtl.LaborDtlSeq, > PUB_LaborDtl.ScrapReasonCode > FROM PUB_LaborDtl > WHERE (((PUB_LaborDtl.ClockInDate) Between [dteStart] And [dteEnd])); > > Query 2 (take 20 mins) > INSERT INTO tblJobOper ( Company, JobNum, OprSeq, OpCode, SubContract, > ActBurCost, ActLabCost ) > SELECT PUB_JobOper.Company, PUB_JobOper.JobNum, PUB_JobOper.OprSeq, > PUB_JobOper.OpCode, PUB_JobOper.SubContract, PUB_JobOper.ActBurCost, > PUB_JobOper.ActLabCost > FROM PUB_JobOper > WHERE PUB_JobOper.Company = 'SNB' AND PUB_JobOper.JobNum In (SELECT > DISTINCT tblLaborDtl.JobNum FROM tblLaborDtl); > > Joe > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- Gary Kjos garykjos at gmail.com From miscellany at mvps.org Wed Feb 4 13:55:03 2009 From: miscellany at mvps.org (Steve Schapel) Date: Thu, 05 Feb 2009 08:55:03 +1300 Subject: [AccessD] Training Records Database In-Reply-To: References: Message-ID: Bryan, I have an Access 2000 application which is used to run adult education courses, currently operating in 25 schools. I would be happy to let you have a look at it. I will contact you off-list. Regards Steve -------------------------------------------------- From: "Bryan Carbonnell" Sent: Thursday, February 05, 2009 7:38 AM To: "Access Developers discussion and problem solving" Subject: [AccessD] Training Records Database > Does anyone have a training records database I could get from them as > a starting point for a new one? > > Basically I need to track: Course, Participant(s), Instructor(s), > Location, Date(s), Time(s) > > Thanks for any help you can lend. From miscellany at mvps.org Wed Feb 4 13:59:52 2009 From: miscellany at mvps.org (Steve Schapel) Date: Thu, 05 Feb 2009 08:59:52 +1300 Subject: [AccessD] Training Records Database In-Reply-To: <4989efd5.0616300a.4075.ffffd43e@mx.google.com> References: <4D2AA4F159D24AB0893241BD836B5144@murphy3234aaf1> <4989efd5.0616300a.4075.ffffd43e@mx.google.com> Message-ID: Max, -------------------------------------------------- From: "Max Wanadoo" Sent: Thursday, February 05, 2009 8:43 AM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Training Records Database > ... 2007 'cos it is > so stupidly cumbersome to navigate I can understand (though don't agree with) this sentiment. > and at the end of the day, it does no > more than 2003. But this, I can't believe. Oh dear, have you had a serious look? Does no more than 2003... you're kidding, right? Regards Steve From carbonnb at gmail.com Wed Feb 4 14:04:58 2009 From: carbonnb at gmail.com (Bryan Carbonnell) Date: Wed, 4 Feb 2009 15:04:58 -0500 Subject: [AccessD] Training Records Database In-Reply-To: References: Message-ID: On Wed, Feb 4, 2009 at 2:55 PM, Steve Schapel wrote: > Bryan, > > I have an Access 2000 application which is used to run adult education > courses, currently operating in 25 schools. I would be happy to let you > have a look at it. I will contact you off-list. Thanks Steve. I appreciate it -- Bryan Carbonnell - carbonnb at gmail.com Life's journey is not to arrive at the grave safely in a well preserved body, but rather to skid in sideways, totally worn out, shouting "What a great ride!" From wdhindman at dejpolsystems.com Wed Feb 4 14:18:38 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 4 Feb 2009 15:18:38 -0500 Subject: [AccessD] Training Records Database References: Message-ID: http://www.rogersaccesslibrary.com/forum/forum_posts.asp?TID=232 ...full training registration app with source that has all your needs ...hth :) William -------------------------------------------------- From: "Bryan Carbonnell" Sent: Wednesday, February 04, 2009 1:38 PM To: "Access Developers discussion and problem solving" Subject: [AccessD] Training Records Database > Does anyone have a training records database I could get from them as > a starting point for a new one? > > Basically I need to track: Course, Participant(s), Instructor(s), > Location, Date(s), Time(s) > > Thanks for any help you can lend. > > -- > Bryan Carbonnell - carbonnb at gmail.com > Life's journey is not to arrive at the grave safely in a well > preserved body, but rather to skid in sideways, totally worn out, > shouting "What a great ride!" > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From carbonnb at gmail.com Wed Feb 4 14:48:18 2009 From: carbonnb at gmail.com (Bryan Carbonnell) Date: Wed, 4 Feb 2009 15:48:18 -0500 Subject: [AccessD] Training Records Database In-Reply-To: References: Message-ID: On Wed, Feb 4, 2009 at 3:18 PM, William Hindman wrote: > http://www.rogersaccesslibrary.com/forum/forum_posts.asp?TID=232 > ...full training registration app with source that has all your needs ...hth > :) Thanks William. -- Bryan Carbonnell - carbonnb at gmail.com Life's journey is not to arrive at the grave safely in a well preserved body, but rather to skid in sideways, totally worn out, shouting "What a great ride!" From jimdettman at verizon.net Wed Feb 4 15:18:31 2009 From: jimdettman at verizon.net (Jim Dettman) Date: Wed, 04 Feb 2009 16:18:31 -0500 Subject: [AccessD] Training Records Database In-Reply-To: References: Message-ID: Yeah. I'll send it along in a few. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bryan Carbonnell Sent: Wednesday, February 04, 2009 1:38 PM To: Access Developers discussion and problem solving Subject: [AccessD] Training Records Database Does anyone have a training records database I could get from them as a starting point for a new one? Basically I need to track: Course, Participant(s), Instructor(s), Location, Date(s), Time(s) Thanks for any help you can lend. -- Bryan Carbonnell - carbonnb at gmail.com Life's journey is not to arrive at the grave safely in a well preserved body, but rather to skid in sideways, totally worn out, shouting "What a great ride!" -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Chester_Kaup at kindermorgan.com Wed Feb 4 15:43:40 2009 From: Chester_Kaup at kindermorgan.com (Kaup, Chester) Date: Wed, 4 Feb 2009 15:43:40 -0600 Subject: [AccessD] Sorting in a report Message-ID: <0B2BF8524B73A248A2F1B81BA751ED3C0642705E00@houex1.kindermorgan.com> I have a report with 4 columns. The user wants the data sorted by the second column and then by the first column then sorted by the third column and the first column and then by the third column and the first column. I can get ti to sort by the second then third then fourth column but I cannot see how do do a subsort of the first column for ech of the other three column sorts. Hope this makes sense. Or do I need to use three sub reports? Thanks. Chester Kaup Engineering Technician Kinder Morgan CO2 Company, LLP Office (432) 688-3797 FAX (432) 688-3799 No trees were killed in the sending of this message. However a large number of electrons were terribly inconvenienced. From dwaters at usinternet.com Wed Feb 4 16:02:01 2009 From: dwaters at usinternet.com (Dan Waters) Date: Wed, 4 Feb 2009 16:02:01 -0600 Subject: [AccessD] Sorting in a report In-Reply-To: <0B2BF8524B73A248A2F1B81BA751ED3C0642705E00@houex1.kindermorgan.com> References: <0B2BF8524B73A248A2F1B81BA751ED3C0642705E00@houex1.kindermorgan.com> Message-ID: You might try 3 or 4 stacked queries. Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Kaup, Chester Sent: Wednesday, February 04, 2009 3:44 PM To: Access Developers discussion and problem solving Subject: [AccessD] Sorting in a report I have a report with 4 columns. The user wants the data sorted by the second column and then by the first column then sorted by the third column and the first column and then by the third column and the first column. I can get ti to sort by the second then third then fourth column but I cannot see how do do a subsort of the first column for ech of the other three column sorts. Hope this makes sense. Or do I need to use three sub reports? Thanks. Chester Kaup Engineering Technician Kinder Morgan CO2 Company, LLP Office (432) 688-3797 FAX (432) 688-3799 No trees were killed in the sending of this message. However a large number of electrons were terribly inconvenienced. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 4 16:02:51 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 4 Feb 2009 14:02:51 -0800 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: <4989e5cc.19e7300a.53ea.ffff852c@mx.google.com> References: <4989c6de.0269300a.2f60.fffff09e@mx.google.com><67BAE8EAA0364A838FD7B2CF3B864342@HAL9005> <4989e5cc.19e7300a.53ea.ffff852c@mx.google.com> Message-ID: <9C149EAFE67E4FB8A28E1549D676C680@HAL9005> If the client will forgo the decimal point, that would be an even faster solution. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Wednesday, February 04, 2009 11:01 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right Well, if Gustav et al cannot help then as a final solution you could put a hidden field on top of another and have the visible one (Unbound) as a string displaying what you want with the hidden field actually holding the numeric data. Bit convoluted but I like to think laterally (ie, lying down with a beer) Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 04 February 2009 18:15 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right Bound numeric field which needs updating. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Wednesday, February 04, 2009 8:49 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right If it is a "number" that is displayed and not "acted" upon then format it as a string and you can put whatever you want in it. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 04 February 2009 16:28 To: 'Access Developers discussion and problem solving' Subject: [AccessD] Decimal point with no places to the right Dear List: Is it possible to format a number in a bound text box with zero decimal places to the right of the decimal point but still display the decimal point? MTIA Rocky -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 4 16:02:51 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 4 Feb 2009 14:02:51 -0800 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: References: Message-ID: <8140E6DD0BE941CBBC87C3E6C5EB31BB@HAL9005> No soap. :( Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 10:47 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Rocky Yes. Access 97. But it should not matter. /gustav >>> rockysmolin at bchacc.com 04-02-2009 19:33 >>> Without the quote marks, I assume - just 0.# in the format property?. 2003 or 2007? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 10:25 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Rocky Don't know about the input mask. Remove that for a test. It works here just like that. /gustav >>> rockysmolin at bchacc.com 04-02-2009 19:19 >>> Gustav: Didn't show the decimal point. What am I doing wrong? I tried it both in the Format property and the input mask. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 9:01 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Rocky You can use a format string of: "0.#" /gustav >>> rockysmolin at bchacc.com 04-02-2009 17:28 >>> Dear List: Is it possible to format a number in a bound text box with zero decimal places to the right of the decimal point but still display the decimal point? MTIA Rocky -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 4 16:06:45 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 4 Feb 2009 14:06:45 -0800 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: References: Message-ID: <2DB9B45749164C5794DD9414DB5C9B5F@HAL9005> The field is a double but the user doesn't want the decimal places to display. The format example has the value and the mask as the two arguments for the format. But in this case the value is in a bound text box on a continuous form. So I can't use the Format on the control source. So not sure how to get the text box to show the whole number plus the decimal point without the decimals fractions. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Wednesday, February 04, 2009 11:01 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right ? format(111&,"0.#") 111. Too true. Works for integer types, though not sure if Rocky specified integers. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 1:46 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Lambert > Your format string shows one decimal place (as I would expect it to) Yes, but none for an Integer - that I understood was the issue. /gustav >>> Lambert.Heenan at aig.com 04-02-2009 19:23 >>> Gustav? Your format string shows one decimal place (as I would expect it to) ? format(111.12,"0.#") 111.1 This shows no decimal places... ? format(111.12,"0.") 111. Lambert -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Lambert.Heenan at AIG.com Wed Feb 4 16:09:27 2009 From: Lambert.Heenan at AIG.com (Heenan, Lambert) Date: Wed, 4 Feb 2009 17:09:27 -0500 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: <2DB9B45749164C5794DD9414DB5C9B5F@HAL9005> References: <2DB9B45749164C5794DD9414DB5C9B5F@HAL9005> Message-ID: Like this? format(111.12,"0.") Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 04, 2009 5:07 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right The field is a double but the user doesn't want the decimal places to display. The format example has the value and the mask as the two arguments for the format. But in this case the value is in a bound text box on a continuous form. So I can't use the Format on the control source. So not sure how to get the text box to show the whole number plus the decimal point without the decimals fractions. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Wednesday, February 04, 2009 11:01 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right ? format(111&,"0.#") 111. Too true. Works for integer types, though not sure if Rocky specified integers. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 1:46 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Lambert > Your format string shows one decimal place (as I would expect it to) Yes, but none for an Integer - that I understood was the issue. /gustav >>> Lambert.Heenan at aig.com 04-02-2009 19:23 >>> Gustav? Your format string shows one decimal place (as I would expect it to) ? format(111.12,"0.#") 111.1 This shows no decimal places... ? format(111.12,"0.") 111. Lambert -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From ssharkins at gmail.com Wed Feb 4 16:16:20 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Wed, 4 Feb 2009 17:16:20 -0500 Subject: [AccessD] Sorting in a report References: <0B2BF8524B73A248A2F1B81BA751ED3C0642705E00@houex1.kindermorgan.com> Message-ID: <8899EE4B3EBB4DD8A3CF690CF1732EDA@SusanOne> Sounds like a grouped report, but I don't know how you'd repeat a column in the effort. Susan H. >I have a report with 4 columns. The user wants the data sorted by the >second column and then by the first column then sorted by the third column >and the first column and then by the third column and the first column. I >can get ti to sort by the second then third then fourth column but I cannot >see how do do a subsort of the first column for ech of the other three >column sorts. Hope this makes sense. Or do I need to use three sub reports? >Thanks. From miscellany at mvps.org Wed Feb 4 16:16:56 2009 From: miscellany at mvps.org (Steve Schapel) Date: Thu, 05 Feb 2009 11:16:56 +1300 Subject: [AccessD] Sorting in a report In-Reply-To: <0B2BF8524B73A248A2F1B81BA751ED3C0642705E00@houex1.kindermorgan.com> References: <0B2BF8524B73A248A2F1B81BA751ED3C0642705E00@houex1.kindermorgan.com> Message-ID: <625E8412773C4406B673E632DC88D358@stevePC> Chester, In the Sorting & Grouping dialog, you can enter an expression in the 'Field/Expression' box, for example: =[OneField] & [AnotherField] Does that help? Regards Steve -------------------------------------------------- From: "Kaup, Chester" Sent: Thursday, February 05, 2009 10:43 AM To: "Access Developers discussion and problem solving" Subject: [AccessD] Sorting in a report > I have a report with 4 columns. The user wants the data sorted by the > second column and then by the first column then sorted by the third column > and the first column and then by the third column and the first column. I > can get ti to sort by the second then third then fourth column but I > cannot see how do do a subsort of the first column for ech of the other > three column sorts. Hope this makes sense. Or do I need to use three sub > reports? Thanks. > From Gustav at cactus.dk Wed Feb 4 16:23:54 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 04 Feb 2009 23:23:54 +0100 Subject: [AccessD] Decimal point with no places to the right Message-ID: Hi Rocky I tried this in A2007 as well, and it works perfectly. Did you remove the input mask? And you apply the format to the textbox? The source _must_ be left as is. Else something weird must be going on at your end. /gustav >>> rockysmolin at bchacc.com 04-02-2009 23:06 >>> The field is a double but the user doesn't want the decimal places to display. The format example has the value and the mask as the two arguments for the format. But in this case the value is in a bound text box on a continuous form. So I can't use the Format on the control source. So not sure how to get the text box to show the whole number plus the decimal point without the decimals fractions. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Wednesday, February 04, 2009 11:01 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right ? format(111&,"0.#") 111. Too true. Works for integer types, though not sure if Rocky specified integers. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 1:46 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Lambert > Your format string shows one decimal place (as I would expect it to) Yes, but none for an Integer - that I understood was the issue. /gustav >>> Lambert.Heenan at aig.com 04-02-2009 19:23 >>> Gustav? Your format string shows one decimal place (as I would expect it to) ? format(111.12,"0.#") 111.1 This shows no decimal places... ? format(111.12,"0.") 111. Lambert From ab-mi at post3.tele.dk Wed Feb 4 16:47:46 2009 From: ab-mi at post3.tele.dk (Asger Blond) Date: Wed, 4 Feb 2009 23:47:46 +0100 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: <2DB9B45749164C5794DD9414DB5C9B5F@HAL9005> Message-ID: <000001c9871a$99ce1890$2301a8c0@AB> How about binding your control to following expression: =int(YourField) & "." Or =int(YourField) & format(0,".#") First example gives decimal sign fixed as "." like: ?int(10.78) & "." --> 10. Second example gives decimal sign as "." or "," dependent on your country setting like: ?int(10.78) & format(0,".#") --> 10. or 10, Asger -----Oprindelig meddelelse----- Fra: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] P? vegne af Rocky Smolin at Beach Access Software Sendt: 4. februar 2009 23:07 Til: 'Access Developers discussion and problem solving' Emne: Re: [AccessD] Decimal point with no places to the right The field is a double but the user doesn't want the decimal places to display. The format example has the value and the mask as the two arguments for the format. But in this case the value is in a bound text box on a continuous form. So I can't use the Format on the control source. So not sure how to get the text box to show the whole number plus the decimal point without the decimals fractions. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Wednesday, February 04, 2009 11:01 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right ? format(111&,"0.#") 111. Too true. Works for integer types, though not sure if Rocky specified integers. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 1:46 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Lambert > Your format string shows one decimal place (as I would expect it to) Yes, but none for an Integer - that I understood was the issue. /gustav >>> Lambert.Heenan at aig.com 04-02-2009 19:23 >>> Gustav? Your format string shows one decimal place (as I would expect it to) ? format(111.12,"0.#") 111.1 This shows no decimal places... ? format(111.12,"0.") 111. Lambert -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 4 16:47:46 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 4 Feb 2009 14:47:46 -0800 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: References: <2DB9B45749164C5794DD9414DB5C9B5F@HAL9005> Message-ID: Lambert: In your example the 111.12 is the value to be displayed and should display 111. yes? But since this is a bound text box I'm not sure where to enter format(111.12,"0.") and I'd have to substitute the bound field name for 111.12. Right? Thanks for hanging in there with me. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Wednesday, February 04, 2009 2:09 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right Like this? format(111.12,"0.") Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 04, 2009 5:07 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right The field is a double but the user doesn't want the decimal places to display. The format example has the value and the mask as the two arguments for the format. But in this case the value is in a bound text box on a continuous form. So I can't use the Format on the control source. So not sure how to get the text box to show the whole number plus the decimal point without the decimals fractions. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Wednesday, February 04, 2009 11:01 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right ? format(111&,"0.#") 111. Too true. Works for integer types, though not sure if Rocky specified integers. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 1:46 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Lambert > Your format string shows one decimal place (as I would expect it to) Yes, but none for an Integer - that I understood was the issue. /gustav >>> Lambert.Heenan at aig.com 04-02-2009 19:23 >>> Gustav? Your format string shows one decimal place (as I would expect it to) ? format(111.12,"0.#") 111.1 This shows no decimal places... ? format(111.12,"0.") 111. Lambert -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 4 16:51:07 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 4 Feb 2009 14:51:07 -0800 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: References: Message-ID: Gustav: Removed the input mask and entered 0.# in the format property of the bound text box. But no decimal point showed up. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 2:24 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Rocky I tried this in A2007 as well, and it works perfectly. Did you remove the input mask? And you apply the format to the textbox? The source _must_ be left as is. Else something weird must be going on at your end. /gustav >>> rockysmolin at bchacc.com 04-02-2009 23:06 >>> The field is a double but the user doesn't want the decimal places to display. The format example has the value and the mask as the two arguments for the format. But in this case the value is in a bound text box on a continuous form. So I can't use the Format on the control source. So not sure how to get the text box to show the whole number plus the decimal point without the decimals fractions. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Wednesday, February 04, 2009 11:01 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right ? format(111&,"0.#") 111. Too true. Works for integer types, though not sure if Rocky specified integers. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 1:46 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Lambert > Your format string shows one decimal place (as I would expect it to) Yes, but none for an Integer - that I understood was the issue. /gustav >>> Lambert.Heenan at aig.com 04-02-2009 19:23 >>> Gustav? Your format string shows one decimal place (as I would expect it to) ? format(111.12,"0.#") 111.1 This shows no decimal places... ? format(111.12,"0.") 111. Lambert -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 4 16:52:32 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 4 Feb 2009 14:52:32 -0800 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: References: Message-ID: <5D408DF7E0B34B869C7F155B8DF1106A@HAL9005> Gustav and Lambert: Just figured it out. I had changed Decimal places to zero. When I change Decimal Places back to Auto it displays the decimal point. Thanks both. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 2:24 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Rocky I tried this in A2007 as well, and it works perfectly. Did you remove the input mask? And you apply the format to the textbox? The source _must_ be left as is. Else something weird must be going on at your end. /gustav >>> rockysmolin at bchacc.com 04-02-2009 23:06 >>> The field is a double but the user doesn't want the decimal places to display. The format example has the value and the mask as the two arguments for the format. But in this case the value is in a bound text box on a continuous form. So I can't use the Format on the control source. So not sure how to get the text box to show the whole number plus the decimal point without the decimals fractions. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Wednesday, February 04, 2009 11:01 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right ? format(111&,"0.#") 111. Too true. Works for integer types, though not sure if Rocky specified integers. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 1:46 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Lambert > Your format string shows one decimal place (as I would expect it to) Yes, but none for an Integer - that I understood was the issue. /gustav >>> Lambert.Heenan at aig.com 04-02-2009 19:23 >>> Gustav? Your format string shows one decimal place (as I would expect it to) ? format(111.12,"0.#") 111.1 This shows no decimal places... ? format(111.12,"0.") 111. Lambert -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 4 16:54:54 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 4 Feb 2009 14:54:54 -0800 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: <000001c9871a$99ce1890$2301a8c0@AB> References: <2DB9B45749164C5794DD9414DB5C9B5F@HAL9005> <000001c9871a$99ce1890$2301a8c0@AB> Message-ID: <82A6D8C2F34E4BC78482C669C038B2B6@HAL9005> Asger: Thanks, the first suggestions worked after I changed the Decimal Places property back to Auto from zero. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Asger Blond Sent: Wednesday, February 04, 2009 2:48 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right How about binding your control to following expression: =int(YourField) & "." Or =int(YourField) & format(0,".#") First example gives decimal sign fixed as "." like: ?int(10.78) & "." --> 10. Second example gives decimal sign as "." or "," dependent on your country setting like: ?int(10.78) & format(0,".#") --> 10. or 10, Asger -----Oprindelig meddelelse----- Fra: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] P? vegne af Rocky Smolin at Beach Access Software Sendt: 4. februar 2009 23:07 Til: 'Access Developers discussion and problem solving' Emne: Re: [AccessD] Decimal point with no places to the right The field is a double but the user doesn't want the decimal places to display. The format example has the value and the mask as the two arguments for the format. But in this case the value is in a bound text box on a continuous form. So I can't use the Format on the control source. So not sure how to get the text box to show the whole number plus the decimal point without the decimals fractions. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Wednesday, February 04, 2009 11:01 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right ? format(111&,"0.#") 111. Too true. Works for integer types, though not sure if Rocky specified integers. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 1:46 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Lambert > Your format string shows one decimal place (as I would expect it to) Yes, but none for an Integer - that I understood was the issue. /gustav >>> Lambert.Heenan at aig.com 04-02-2009 19:23 >>> Gustav? Your format string shows one decimal place (as I would expect it to) ? format(111.12,"0.#") 111.1 This shows no decimal places... ? format(111.12,"0.") 111. Lambert -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Chester_Kaup at kindermorgan.com Wed Feb 4 16:54:52 2009 From: Chester_Kaup at kindermorgan.com (Kaup, Chester) Date: Wed, 4 Feb 2009 16:54:52 -0600 Subject: [AccessD] Sorting in a report In-Reply-To: <625E8412773C4406B673E632DC88D358@stevePC> References: <0B2BF8524B73A248A2F1B81BA751ED3C0642705E00@houex1.kindermorgan.com> <625E8412773C4406B673E632DC88D358@stevePC> Message-ID: <0B2BF8524B73A248A2F1B81BA751ED3C0642705E32@houex1.kindermorgan.com> Sorry but does not work. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Schapel Sent: Wednesday, February 04, 2009 4:17 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Sorting in a report Chester, In the Sorting & Grouping dialog, you can enter an expression in the 'Field/Expression' box, for example: =[OneField] & [AnotherField] Does that help? Regards Steve -------------------------------------------------- From: "Kaup, Chester" Sent: Thursday, February 05, 2009 10:43 AM To: "Access Developers discussion and problem solving" Subject: [AccessD] Sorting in a report > I have a report with 4 columns. The user wants the data sorted by the > second column and then by the first column then sorted by the third column > and the first column and then by the third column and the first column. I > can get ti to sort by the second then third then fourth column but I > cannot see how do do a subsort of the first column for ech of the other > three column sorts. Hope this makes sense. Or do I need to use three sub > reports? Thanks. > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 4 16:55:34 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 4 Feb 2009 14:55:34 -0800 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: References: <2DB9B45749164C5794DD9414DB5C9B5F@HAL9005> Message-ID: <2CCFEF3DF87E4A14AA873E914FFEA165@HAL9005> Lambert: Fixed it - changed the Decimal places property back to auto from 0. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 04, 2009 2:48 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right Lambert: In your example the 111.12 is the value to be displayed and should display 111. yes? But since this is a bound text box I'm not sure where to enter format(111.12,"0.") and I'd have to substitute the bound field name for 111.12. Right? Thanks for hanging in there with me. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Wednesday, February 04, 2009 2:09 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right Like this? format(111.12,"0.") Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 04, 2009 5:07 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right The field is a double but the user doesn't want the decimal places to display. The format example has the value and the mask as the two arguments for the format. But in this case the value is in a bound text box on a continuous form. So I can't use the Format on the control source. So not sure how to get the text box to show the whole number plus the decimal point without the decimals fractions. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Wednesday, February 04, 2009 11:01 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right ? format(111&,"0.#") 111. Too true. Works for integer types, though not sure if Rocky specified integers. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 1:46 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Lambert > Your format string shows one decimal place (as I would expect it to) Yes, but none for an Integer - that I understood was the issue. /gustav >>> Lambert.Heenan at aig.com 04-02-2009 19:23 >>> Gustav? Your format string shows one decimal place (as I would expect it to) ? format(111.12,"0.#") 111.1 This shows no decimal places... ? format(111.12,"0.") 111. Lambert -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Wed Feb 4 17:02:31 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Wed, 4 Feb 2009 15:02:31 -0800 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: <2DB9B45749164C5794DD9414DB5C9B5F@HAL9005> References: <2DB9B45749164C5794DD9414DB5C9B5F@HAL9005> Message-ID: But Rocky, why would you show a decimal point at all if you aren't going to show the decimal places? That doesn't make any kind of sense to me. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 04, 2009 2:07 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right The field is a double but the user doesn't want the decimal places to display. The format example has the value and the mask as the two arguments for the format. But in this case the value is in a bound text box on a continuous form. So I can't use the Format on the control source. So not sure how to get the text box to show the whole number plus the decimal point without the decimals fractions. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Wednesday, February 04, 2009 11:01 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right ? format(111&,"0.#") 111. Too true. Works for integer types, though not sure if Rocky specified integers. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 1:46 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Lambert > Your format string shows one decimal place (as I would expect it to) Yes, but none for an Integer - that I understood was the issue. /gustav >>> Lambert.Heenan at aig.com 04-02-2009 19:23 >>> Gustav? Your format string shows one decimal place (as I would expect it to) ? format(111.12,"0.#") 111.1 This shows no decimal places... ? format(111.12,"0.") 111. Lambert -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 4 17:06:54 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 4 Feb 2009 15:06:54 -0800 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: References: <2DB9B45749164C5794DD9414DB5C9B5F@HAL9005> Message-ID: <4E25B80140564895A3FD6218729C894A@HAL9005> I don't know. Client requests it. I do it. :) Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Wednesday, February 04, 2009 3:03 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Decimal point with no places to the right But Rocky, why would you show a decimal point at all if you aren't going to show the decimal places? That doesn't make any kind of sense to me. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 04, 2009 2:07 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right The field is a double but the user doesn't want the decimal places to display. The format example has the value and the mask as the two arguments for the format. But in this case the value is in a bound text box on a continuous form. So I can't use the Format on the control source. So not sure how to get the text box to show the whole number plus the decimal point without the decimals fractions. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Wednesday, February 04, 2009 11:01 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right ? format(111&,"0.#") 111. Too true. Works for integer types, though not sure if Rocky specified integers. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 1:46 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Lambert > Your format string shows one decimal place (as I would expect it to) Yes, but none for an Integer - that I understood was the issue. /gustav >>> Lambert.Heenan at aig.com 04-02-2009 19:23 >>> Gustav? Your format string shows one decimal place (as I would expect it to) ? format(111.12,"0.#") 111.1 This shows no decimal places... ? format(111.12,"0.") 111. Lambert -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Wed Feb 4 17:09:28 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Thu, 05 Feb 2009 09:09:28 +1000 Subject: [AccessD] Training Records Database In-Reply-To: References: Message-ID: <498AACC8.26349.E28A618@stuart.lexacorp.com.pg> Something will be on its way off-list shortly - I need to clean a lot of data out first) On 4 Feb 2009 at 13:38, Bryan Carbonnell wrote: > Does anyone have a training records database I could get from them as > a starting point for a new one? > > Basically I need to track: Course, Participant(s), Instructor(s), > Location, Date(s), Time(s) > > Thanks for any help you can lend. > > -- > Bryan Carbonnell - carbonnb at gmail.com > Life's journey is not to arrive at the grave safely in a well > preserved body, but rather to skid in sideways, totally worn out, > shouting "What a great ride!" > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From miscellany at mvps.org Wed Feb 4 17:15:47 2009 From: miscellany at mvps.org (Steve Schapel) Date: Thu, 05 Feb 2009 12:15:47 +1300 Subject: [AccessD] Sorting in a report In-Reply-To: <0B2BF8524B73A248A2F1B81BA751ED3C0642705E32@houex1.kindermorgan.com> References: <0B2BF8524B73A248A2F1B81BA751ED3C0642705E00@houex1.kindermorgan.com> <625E8412773C4406B673E632DC88D358@stevePC> <0B2BF8524B73A248A2F1B81BA751ED3C0642705E32@houex1.kindermorgan.com> Message-ID: <0D72ED2BFB7B4A469287374BCB056327@stevePC> Can you expand on that idea, Chester? Can you say what you did, and what the outcome was, and how the outcome differed from what you wanted? Thanks. Regards Steve -------------------------------------------------- From: "Kaup, Chester" Sent: Thursday, February 05, 2009 11:54 AM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Sorting in a report > Sorry but does not work. From jwcolby at colbyconsulting.com Wed Feb 4 18:09:47 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 04 Feb 2009 19:09:47 -0500 Subject: [AccessD] Training Records Database In-Reply-To: References: <4989e51d.0c53300a.52cc.ffffc18f@mx.google.com> Message-ID: <498A2E4B.30509@colbyconsulting.com> > As for looking at MS site, I was hoping to get something GOOD. LOL ROTFL. Not impressed with their summer interns? John W. Colby www.ColbyConsulting.com Bryan Carbonnell wrote: > On Wed, Feb 4, 2009 at 1:57 PM, Max Wanadoo wrote: >> Bit of a long shot Bryan, >> But did northwind not come with something similar. Also have you tried the >> MS site. > > AFAIK, Northwind didn't have anything like this, but I could be wrong. > > As for looking at MS site, I was hoping to get something GOOD. LOL > From bheid at sc.rr.com Wed Feb 4 18:19:19 2009 From: bheid at sc.rr.com (Bobby Heid) Date: Wed, 4 Feb 2009 19:19:19 -0500 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: References: Message-ID: <007b01c98727$636f1b70$2a4d5250$@rr.com> One way would be to convert it to a string and then lop off the decimal digits. Bobby -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 04, 2009 11:28 AM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Decimal point with no places to the right Dear List: Is it possible to format a number in a bound text box with zero decimal places to the right of the decimal point but still display the decimal point? MTIA Rocky -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 4 18:22:39 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 4 Feb 2009 16:22:39 -0800 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: <007b01c98727$636f1b70$2a4d5250$@rr.com> References: <007b01c98727$636f1b70$2a4d5250$@rr.com> Message-ID: <45FB37EA9EB44F92AC2DA5710813087B@HAL9005> =str(int(fldMyField)) & "."? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bobby Heid Sent: Wednesday, February 04, 2009 4:19 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right One way would be to convert it to a string and then lop off the decimal digits. Bobby -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 04, 2009 11:28 AM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Decimal point with no places to the right Dear List: Is it possible to format a number in a bound text box with zero decimal places to the right of the decimal point but still display the decimal point? MTIA Rocky -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 4 19:15:36 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 4 Feb 2009 17:15:36 -0800 Subject: [AccessD] A2007 - Programmatically Minimize Ribbon Message-ID: Dear List: I am still looking for a way to programmatically minimize the A2007 ribbon. I would prefer not to replace it with a custom ribbon as during development I need the standard bar. Theoretically, everything you can do through the UI in Access can be done through the object model. But I have been unable to find any info on minimizing the ribbon. Doe anyone know of a property or method or something to do this? MTIA Rocky From wdhindman at dejpolsystems.com Wed Feb 4 20:57:24 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 4 Feb 2009 21:57:24 -0500 Subject: [AccessD] Training Records Database References: <4989e51d.0c53300a.52cc.ffffc18f@mx.google.com> <498A2E4B.30509@colbyconsulting.com> Message-ID: "ROTFL. Not impressed with their summer interns?" jc ...did they upgrade their sample writing staff and not warn me? William -------------------------------------------------- From: "jwcolby" Sent: Wednesday, February 04, 2009 7:09 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Training Records Database > > As for looking at MS site, I was hoping to get something GOOD. LOL > > ROTFL. Not impressed with their summer interns? > > John W. Colby > www.ColbyConsulting.com > > > Bryan Carbonnell wrote: >> On Wed, Feb 4, 2009 at 1:57 PM, Max Wanadoo >> wrote: >>> Bit of a long shot Bryan, >>> But did northwind not come with something similar. Also have you tried >>> the >>> MS site. >> >> AFAIK, Northwind didn't have anything like this, but I could be wrong. >> >> As for looking at MS site, I was hoping to get something GOOD. LOL >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From mmattys at rochester.rr.com Wed Feb 4 21:11:04 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Wed, 4 Feb 2009 22:11:04 -0500 Subject: [AccessD] A2007 - Programmatically Minimize Ribbon References: Message-ID: Hi Rocky, Seems like step 4 at this site would do it? http://www.access-freak.com/tutorials.html#Tutorial05 - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Rocky Smolin at Beach Access Software" To: "'Access Developers discussion and problem solving'" Sent: Wednesday, February 04, 2009 8:15 PM Subject: [AccessD] A2007 - Programmatically Minimize Ribbon > > Dear List: > > I am still looking for a way to programmatically minimize the A2007 > ribbon. > I would prefer not to replace it with a custom ribbon as during > development > I need the standard bar. > > Theoretically, everything you can do through the UI in Access can be done > through the object model. But I have been unable to find any info on > minimizing the ribbon. > > Doe anyone know of a property or method or something to do this? > > MTIA > > Rocky > > > > > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Wed Feb 4 21:14:48 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Thu, 05 Feb 2009 13:14:48 +1000 Subject: [AccessD] A2007 - Programmatically Minimize Ribbon In-Reply-To: References: Message-ID: <498AE648.5745.9E8FF2@stuart.lexacorp.com.pg> Rocky! This was answered two months ago when you asked about "turning off the ribbons programmatically" Here's what I posted then: My Height was slightly different to those in the link, probably because of different screen resolutions, fonts etc but it looks like it will always be above/below 100 so this should work anywhere. It certainly works for me: Function RibbonMinimized() As Boolean RibbonMinimized = Application.CommandBars("Ribbon").Height < 100 End Function The following four functions give you full control over the Ribbon :-) Function HideRibbon() DoCmd.ShowToolbar "Ribbon", acToolbarNo End Function Function ShowRibbon() DoCmd.ShowToolbar "Ribbon", acToolbarYes End Function Function MinimizeRibbon() If Not RibbonMinimized Then SendKeys "^{F1}" End If End Function Function MaximizeRibbon() If RibbonMinimized Then SendKeys "^{F1}" End If End Function From wdhindman at dejpolsystems.com Wed Feb 4 21:28:51 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 4 Feb 2009 22:28:51 -0500 Subject: [AccessD] A2007 - Programmatically Minimize Ribbon References: <498AE648.5745.9E8FF2@stuart.lexacorp.com.pg> Message-ID: "SendKeys"????????? ...shakes head ...returns to A2K3 :( ...sorry Stu, just couldn't help myself :) William -------------------------------------------------- From: "Stuart McLachlan" Sent: Wednesday, February 04, 2009 10:14 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon > Rocky! > > This was answered two months ago when you asked about "turning off the > ribbons > programmatically" > > Here's what I posted then: > My Height was slightly different to those in the link, probably because of > different screen > resolutions, fonts etc but it looks like it will always be above/below > 100 so this should work > anywhere. It certainly works for me: > > Function RibbonMinimized() As Boolean > RibbonMinimized = Application.CommandBars("Ribbon").Height < 100 > End Function > > The following four functions give you full control over the Ribbon :-) > > Function HideRibbon() > DoCmd.ShowToolbar "Ribbon", acToolbarNo > End Function > > Function ShowRibbon() > DoCmd.ShowToolbar "Ribbon", acToolbarYes > End Function > > Function MinimizeRibbon() > If Not RibbonMinimized Then SendKeys "^{F1}" > End If > End Function > > Function MaximizeRibbon() > If RibbonMinimized Then SendKeys "^{F1}" > End If > End Function > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From wdhindman at dejpolsystems.com Wed Feb 4 21:31:16 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 4 Feb 2009 22:31:16 -0500 Subject: [AccessD] Decimal point with no places to the right References: <2DB9B45749164C5794DD9414DB5C9B5F@HAL9005> <4E25B80140564895A3FD6218729C894A@HAL9005> Message-ID: ...Lesson #1 in how to survive as an independent Access developer. :) William -------------------------------------------------- From: "Rocky Smolin at Beach Access Software" Sent: Wednesday, February 04, 2009 6:06 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Decimal point with no places to the right > I don't know. Client requests it. I do it. :) > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust > Sent: Wednesday, February 04, 2009 3:03 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Decimal point with no places to the right > > But Rocky, why would you show a decimal point at all if you aren't going > to > show the decimal places? That doesn't make any kind of sense to me. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: Wednesday, February 04, 2009 2:07 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Decimal point with no places to the right > > The field is a double but the user doesn't want the decimal places to > display. The format example has the value and the mask as the two > arguments > for the format. But in this case the value is in a bound text box on a > continuous form. So I can't use the Format on the control source. So not > sure how to get the text box to show the whole number plus the decimal > point > without the decimals fractions. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert > Sent: Wednesday, February 04, 2009 11:01 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Decimal point with no places to the right > > ? format(111&,"0.#") > 111. > > Too true. Works for integer types, though not sure if Rocky specified > integers. > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Wednesday, February 04, 2009 1:46 PM > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Decimal point with no places to the right > > Hi Lambert > >> Your format string shows one decimal place (as I would expect it to) > > Yes, but none for an Integer - that I understood was the issue. > > /gustav > >>>> Lambert.Heenan at aig.com 04-02-2009 19:23 >>> > Gustav? Your format string shows one decimal place (as I would expect it > to) ? format(111.12,"0.#") > 111.1 > > This shows no decimal places... > ? format(111.12,"0.") > 111. > > Lambert > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From stuart at lexacorp.com.pg Wed Feb 4 22:14:58 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Thu, 05 Feb 2009 14:14:58 +1000 Subject: [AccessD] A2007 - Programmatically Minimize Ribbon In-Reply-To: References: , Message-ID: <498AF462.28624.D5A335@stuart.lexacorp.com.pg> Yep, it's a real kludge, but it's the only one we could find to programmatically control that f*ing ribbon :-( On 4 Feb 2009 at 22:28, William Hindman wrote: > "SendKeys"????????? > > ...shakes head ...returns to A2K3 :( > > ...sorry Stu, just couldn't help myself :) > > William > > -------------------------------------------------- > From: "Stuart McLachlan" > Sent: Wednesday, February 04, 2009 10:14 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon > > > Rocky! > > > > This was answered two months ago when you asked about "turning off the > > ribbons > > programmatically" > > > > Here's what I posted then: > > My Height was slightly different to those in the link, probably because of > > different screen > > resolutions, fonts etc but it looks like it will always be above/below > > 100 so this should work > > anywhere. It certainly works for me: > > > > Function RibbonMinimized() As Boolean > > RibbonMinimized = Application.CommandBars("Ribbon").Height < 100 > > End Function > > > > The following four functions give you full control over the Ribbon :-) > > > > Function HideRibbon() > > DoCmd.ShowToolbar "Ribbon", acToolbarNo > > End Function > > > > Function ShowRibbon() > > DoCmd.ShowToolbar "Ribbon", acToolbarYes > > End Function > > > > Function MinimizeRibbon() > > If Not RibbonMinimized Then SendKeys "^{F1}" > > End If > > End Function > > > > Function MaximizeRibbon() > > If RibbonMinimized Then SendKeys "^{F1}" > > End If > > End Function > > > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Thu Feb 5 00:08:42 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 4 Feb 2009 22:08:42 -0800 Subject: [AccessD] A2007 - Programmatically Minimize Ribbon In-Reply-To: <498AE648.5745.9E8FF2@stuart.lexacorp.com.pg> References: <498AE648.5745.9E8FF2@stuart.lexacorp.com.pg> Message-ID: How did I miss that? Thanks. Will implement tomorrow and let you know the results. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Wednesday, February 04, 2009 7:15 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon Rocky! This was answered two months ago when you asked about "turning off the ribbons programmatically" Here's what I posted then: My Height was slightly different to those in the link, probably because of different screen resolutions, fonts etc but it looks like it will always be above/below 100 so this should work anywhere. It certainly works for me: Function RibbonMinimized() As Boolean RibbonMinimized = Application.CommandBars("Ribbon").Height < 100 End Function The following four functions give you full control over the Ribbon :-) Function HideRibbon() DoCmd.ShowToolbar "Ribbon", acToolbarNo End Function Function ShowRibbon() DoCmd.ShowToolbar "Ribbon", acToolbarYes End Function Function MinimizeRibbon() If Not RibbonMinimized Then SendKeys "^{F1}" End If End Function Function MaximizeRibbon() If RibbonMinimized Then SendKeys "^{F1}" End If End Function -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Thu Feb 5 00:08:42 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 4 Feb 2009 22:08:42 -0800 Subject: [AccessD] A2007 - Programmatically Minimize Ribbon In-Reply-To: References: Message-ID: <9DA7FC5E84CF4BAAA627E40B6B160D67@HAL9005> Maybe. Looks like I have to create a custom ribbon. Wonder how this will play with a 2003 mdb or mde. We can't right now, have a totally 2007 app. Has to be runnable on either. But I'll check this out. Thanks. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Mike Mattys Sent: Wednesday, February 04, 2009 7:11 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon Hi Rocky, Seems like step 4 at this site would do it? http://www.access-freak.com/tutorials.html#Tutorial05 - Michael R Mattys MapPoint and Database Dev www.mattysconsulting.com - ----- Original Message ----- From: "Rocky Smolin at Beach Access Software" To: "'Access Developers discussion and problem solving'" Sent: Wednesday, February 04, 2009 8:15 PM Subject: [AccessD] A2007 - Programmatically Minimize Ribbon > > Dear List: > > I am still looking for a way to programmatically minimize the A2007 > ribbon. > I would prefer not to replace it with a custom ribbon as during > development > I need the standard bar. > > Theoretically, everything you can do through the UI in Access can be done > through the object model. But I have been unable to find any info on > minimizing the ribbon. > > Doe anyone know of a property or method or something to do this? > > MTIA > > Rocky > > > > > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Thu Feb 5 01:08:42 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Thu, 05 Feb 2009 08:08:42 +0100 Subject: [AccessD] Decimal point with no places to the right Message-ID: Hi Rocky No, that wouldn't work for negative numbers. While that could be fixed(!): =Str(Fix(fldMyField)) & "." it would round down/off (towards zero) where the format expression will round to nearest integer. Also, it would always return a trailing dot even if your decimal point is something else (like most places outside the US). /gustav >>> rockysmolin at bchacc.com 05-02-2009 01:22 >>> =str(int(fldMyField)) & "."? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bobby Heid Sent: Wednesday, February 04, 2009 4:19 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right One way would be to convert it to a string and then lop off the decimal digits. Bobby -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 04, 2009 11:28 AM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Decimal point with no places to the right Dear List: Is it possible to format a number in a bound text box with zero decimal places to the right of the decimal point but still display the decimal point? MTIA Rocky From andy at minstersystems.co.uk Thu Feb 5 04:12:46 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Thu, 5 Feb 2009 10:12:46 -0000 Subject: [AccessD] Specific Printer In-Reply-To: Message-ID: <68B8616EE6CC48A4BCF94F92C16C8837@MINSTER> Hi folks How do I supply an MDB with a report set to print to a specific printer which I don't have? The report is used by several people in an office and needs to print on their one colour printer which is not the default for any of them. So it's a network printer and I'm not on their netowrk of course. Can this be done, by code if necessary? Oh and this is A2K. Cheers Andy Lacey PS Deep snow today here. A very pretty English scene as long as you don't have to try to negotiate the roads, which I don't tee hee. From paul.hartland at googlemail.com Thu Feb 5 04:24:40 2009 From: paul.hartland at googlemail.com (Paul Hartland) Date: Thu, 5 Feb 2009 10:24:40 +0000 Subject: [AccessD] Specific Printer In-Reply-To: <68B8616EE6CC48A4BCF94F92C16C8837@MINSTER> References: <68B8616EE6CC48A4BCF94F92C16C8837@MINSTER> Message-ID: <38c884770902050224t4fca2facue88701fd01fbcd04@mail.gmail.com> Andy, Just cut some sample code from what I use, you will need to know what the name of the printer is called on the network, but may get you started (this is VB6, but don't see why it wouldn't work for you): Dim prnPrinter As Printer Dim strDeviceName As String strDeviceName = Printer.DeviceName bolFoundPrinter = False ' Loop through all printers to find specific one. For Each prnPrinter In Printers If (prnPrinter.DeviceName = "Network Zebra P110i USB Card Printer") Then ' Set printer as default to print the report. cSetPrinter.SetPrinterAsDefault ("Network Zebra P110i USB Card Printer") 'Print report here...... Exit For End If Next ' Reset default printer to the original one. For Each prnPrinter In Printers If (prnPrinter.DeviceName = strDeviceName) Then cSetPrinter.SetPrinterAsDefault (strDeviceName) Exit For End If Next Had to negotiate the roads, I need to go freelance lol... 2009/2/5 Andy Lacey > Hi folks > How do I supply an MDB with a report set to print to a specific printer > which I don't have? The report is used by several people in an office and > needs to print on their one colour printer which is not the default for any > of them. So it's a network printer and I'm not on their netowrk of course. > Can this be done, by code if necessary? > > Oh and this is A2K. > > Cheers > > Andy Lacey > > PS Deep snow today here. A very pretty English scene as long as you don't > have to try to negotiate the roads, which I don't tee hee. > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- Paul Hartland paul.hartland at googlemail.com From Gustav at cactus.dk Thu Feb 5 04:32:20 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Thu, 05 Feb 2009 11:32:20 +0100 Subject: [AccessD] Specific Printer Message-ID: Hi Andy You should be able to create a printer setup at your machine named exactly the same as at the client, and then set your report to use that specific printer. If you use anything else than the default paper size, you may get into trouble. /gustav >>> andy at minstersystems.co.uk 05-02-2009 11:12 >>> Hi folks How do I supply an MDB with a report set to print to a specific printer which I don't have? The report is used by several people in an office and needs to print on their one colour printer which is not the default for any of them. So it's a network printer and I'm not on their netowrk of course. Can this be done, by code if necessary? Oh and this is A2K. Cheers Andy Lacey PS Deep snow today here. A very pretty English scene as long as you don't have to try to negotiate the roads, which I don't tee hee. From jwcolby at colbyconsulting.com Thu Feb 5 04:49:36 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 05 Feb 2009 05:49:36 -0500 Subject: [AccessD] Sorting in a report In-Reply-To: <0B2BF8524B73A248A2F1B81BA751ED3C0642705E00@houex1.kindermorgan.com> References: <0B2BF8524B73A248A2F1B81BA751ED3C0642705E00@houex1.kindermorgan.com> Message-ID: <498AC440.6040107@colbyconsulting.com> I think you need to do subreports. John W. Colby www.ColbyConsulting.com Kaup, Chester wrote: > I have a report with 4 columns. The user wants the data sorted by the second column and then by the first column then sorted by the third column and the first column and then by the third column and the first column. I can get ti to sort by the second then third then fourth column but I cannot see how do do a subsort of the first column for ech of the other three column sorts. Hope this makes sense. Or do I need to use three sub reports? Thanks. > > > Chester Kaup > > Engineering Technician > > Kinder Morgan CO2 Company, LLP > > Office (432) 688-3797 > > FAX (432) 688-3799 > > > > > > No trees were killed in the sending of this message. However a large number of electrons were terribly inconvenienced. > From andy at minstersystems.co.uk Thu Feb 5 04:50:59 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Thu, 5 Feb 2009 10:50:59 -0000 Subject: [AccessD] Specific Printer In-Reply-To: <38c884770902050224t4fca2facue88701fd01fbcd04@mail.gmail.com> Message-ID: <0C6A6D3A26A948B6AEEC399D9144A747@MINSTER> Yes I know the printer name so I'll give this a try. Thanks Paul. (Yea I must say it's one of the upsides of being freelance. No boss to say "you didn't make the effort") Andy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Paul Hartland Sent: 05 February 2009 10:25 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Specific Printer Andy, Just cut some sample code from what I use, you will need to know what the name of the printer is called on the network, but may get you started (this is VB6, but don't see why it wouldn't work for you): Dim prnPrinter As Printer Dim strDeviceName As String strDeviceName = Printer.DeviceName bolFoundPrinter = False ' Loop through all printers to find specific one. For Each prnPrinter In Printers If (prnPrinter.DeviceName = "Network Zebra P110i USB Card Printer") Then ' Set printer as default to print the report. cSetPrinter.SetPrinterAsDefault ("Network Zebra P110i USB Card Printer") 'Print report here...... Exit For End If Next ' Reset default printer to the original one. For Each prnPrinter In Printers If (prnPrinter.DeviceName = strDeviceName) Then cSetPrinter.SetPrinterAsDefault (strDeviceName) Exit For End If Next Had to negotiate the roads, I need to go freelance lol... 2009/2/5 Andy Lacey > Hi folks > How do I supply an MDB with a report set to print to a specific > printer which I don't have? The report is used by several people in an > office and needs to print on their one colour printer which is not the > default for any of them. So it's a network printer and I'm not on > their netowrk of course. Can this be done, by code if necessary? > > Oh and this is A2K. > > Cheers > > Andy Lacey > > PS Deep snow today here. A very pretty English scene as long as you > don't have to try to negotiate the roads, which I don't tee hee. > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- Paul Hartland paul.hartland at googlemail.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From andy at minstersystems.co.uk Thu Feb 5 04:50:59 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Thu, 5 Feb 2009 10:50:59 -0000 Subject: [AccessD] Specific Printer In-Reply-To: Message-ID: <05B0DC0CF1FA40D5A815CB3289294D35@MINSTER> Yes I suppose I could do that. I'm going to give Paul's coded solution a try but if not I'll fall back on this. Thanks for the thought as ever Gustav. Andy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 05 February 2009 10:32 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Specific Printer Hi Andy You should be able to create a printer setup at your machine named exactly the same as at the client, and then set your report to use that specific printer. If you use anything else than the default paper size, you may get into trouble. /gustav >>> andy at minstersystems.co.uk 05-02-2009 11:12 >>> Hi folks How do I supply an MDB with a report set to print to a specific printer which I don't have? The report is used by several people in an office and needs to print on their one colour printer which is not the default for any of them. So it's a network printer and I'm not on their netowrk of course. Can this be done, by code if necessary? Oh and this is A2K. Cheers Andy Lacey PS Deep snow today here. A very pretty English scene as long as you don't have to try to negotiate the roads, which I don't tee hee. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Thu Feb 5 04:51:01 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Thu, 05 Feb 2009 20:51:01 +1000 Subject: [AccessD] Specific Printer In-Reply-To: <68B8616EE6CC48A4BCF94F92C16C8837@MINSTER> References: , <68B8616EE6CC48A4BCF94F92C16C8837@MINSTER> Message-ID: <498B5135.24200.26ADBC@stuart.lexacorp.com.pg> On 5 Feb 2009 at 10:12, Andy Lacey wrote: > Hi folks > How do I supply an MDB with a report set to print to a specific printer > which I don't have? The report is used by several people in an office and > needs to print on their one colour printer which is not the default for any > of them. So it's a network printer and I'm not on their netowrk of course. > Can this be done, by code if necessary? > > Oh and this is A2K. > Problem - the Printer object only came in in Access2002! I haven't got any examples, but try googling PrtDevMode and PrtDevNames - you will need to manipulate these to do it. > Cheers > > Andy Lacey > > PS Deep snow today here. A very pretty English scene as long as you don't > have to try to negotiate the roads, which I don't tee hee. So much for Global Warming :-) -- Stuart From andy at minstersystems.co.uk Thu Feb 5 04:53:40 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Thu, 5 Feb 2009 10:53:40 -0000 Subject: [AccessD] Specific Printer In-Reply-To: <38c884770902050224t4fca2facue88701fd01fbcd04@mail.gmail.com> Message-ID: Actually Paul, now I look at it this is changing the default printer before printing rather than setting a specific report to that printer. Not sure I want to do that. Isn't that fraught with the danger of a printing error leaving the user's default printer set wrong? Andy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Paul Hartland Sent: 05 February 2009 10:25 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Specific Printer Andy, Just cut some sample code from what I use, you will need to know what the name of the printer is called on the network, but may get you started (this is VB6, but don't see why it wouldn't work for you): Dim prnPrinter As Printer Dim strDeviceName As String strDeviceName = Printer.DeviceName bolFoundPrinter = False ' Loop through all printers to find specific one. For Each prnPrinter In Printers If (prnPrinter.DeviceName = "Network Zebra P110i USB Card Printer") Then ' Set printer as default to print the report. cSetPrinter.SetPrinterAsDefault ("Network Zebra P110i USB Card Printer") 'Print report here...... Exit For End If Next ' Reset default printer to the original one. For Each prnPrinter In Printers If (prnPrinter.DeviceName = strDeviceName) Then cSetPrinter.SetPrinterAsDefault (strDeviceName) Exit For End If Next Had to negotiate the roads, I need to go freelance lol... 2009/2/5 Andy Lacey > Hi folks > How do I supply an MDB with a report set to print to a specific > printer which I don't have? The report is used by several people in an > office and needs to print on their one colour printer which is not the > default for any of them. So it's a network printer and I'm not on > their netowrk of course. Can this be done, by code if necessary? > > Oh and this is A2K. > > Cheers > > Andy Lacey > > PS Deep snow today here. A very pretty English scene as long as you > don't have to try to negotiate the roads, which I don't tee hee. > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- Paul Hartland paul.hartland at googlemail.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From andy at minstersystems.co.uk Thu Feb 5 04:54:48 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Thu, 5 Feb 2009 10:54:48 -0000 Subject: [AccessD] Specific Printer In-Reply-To: <498B5135.24200.26ADBC@stuart.lexacorp.com.pg> Message-ID: <702FC80E3C7C480CA772D0D65A366215@MINSTER> Oh God is it that stuff still in A2K? That's horrible. Think I'll go with Gustav's plan. Andy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: 05 February 2009 10:51 To: Andy Lacey; Access Developers discussion and problem solving Subject: Re: [AccessD] Specific Printer On 5 Feb 2009 at 10:12, Andy Lacey wrote: > Hi folks > How do I supply an MDB with a report set to print to a specific > printer which I don't have? The report is used by several people in an > office and needs to print on their one colour printer which is not the > default for any of them. So it's a network printer and I'm not on > their netowrk of course. Can this be done, by code if necessary? > > Oh and this is A2K. > Problem - the Printer object only came in in Access2002! I haven't got any examples, but try googling PrtDevMode and PrtDevNames - you will need to manipulate these to do it. > Cheers > > Andy Lacey > > PS Deep snow today here. A very pretty English scene as long as you > don't have to try to negotiate the roads, which I don't tee hee. So much for Global Warming :-) -- Stuart -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From paul.hartland at googlemail.com Thu Feb 5 05:08:40 2009 From: paul.hartland at googlemail.com (Paul Hartland) Date: Thu, 5 Feb 2009 11:08:40 +0000 Subject: [AccessD] Specific Printer In-Reply-To: References: <38c884770902050224t4fca2facue88701fd01fbcd04@mail.gmail.com> Message-ID: <38c884770902050308o15b70eb7w9e3dd8c78f2d67db@mail.gmail.com> You may have a point, although we haven't had any problems with it, and it's been on our main application for about 2 years now. Paul 2009/2/5 Andy Lacey > Actually Paul, now I look at it this is changing the default printer before > printing rather than setting a specific report to that printer. Not sure I > want to do that. Isn't that fraught with the danger of a printing error > leaving the user's default printer set wrong? > > Andy > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Paul Hartland > Sent: 05 February 2009 10:25 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Specific Printer > > > Andy, > > Just cut some sample code from what I use, you will need to know what the > name of the printer is called on the network, but may get you started (this > is VB6, but don't see why it wouldn't work for you): > > Dim prnPrinter As Printer > Dim strDeviceName As String > > > strDeviceName = Printer.DeviceName > bolFoundPrinter = False > ' Loop through all printers to find specific one. > For Each prnPrinter In Printers > If (prnPrinter.DeviceName = "Network Zebra P110i USB Card Printer") > Then > ' Set printer as default to print the report. > cSetPrinter.SetPrinterAsDefault ("Network Zebra P110i USB Card > Printer") > 'Print report here...... > Exit For > End If > Next > > ' Reset default printer to the original one. > For Each prnPrinter In Printers > If (prnPrinter.DeviceName = strDeviceName) Then > cSetPrinter.SetPrinterAsDefault (strDeviceName) > Exit For > End If > Next > > Had to negotiate the roads, I need to go freelance lol... > > 2009/2/5 Andy Lacey > > > Hi folks > > How do I supply an MDB with a report set to print to a specific > > printer which I don't have? The report is used by several people in an > > office and needs to print on their one colour printer which is not the > > default for any of them. So it's a network printer and I'm not on > > their netowrk of course. Can this be done, by code if necessary? > > > > Oh and this is A2K. > > > > Cheers > > > > Andy Lacey > > > > PS Deep snow today here. A very pretty English scene as long as you > > don't have to try to negotiate the roads, which I don't tee hee. > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > > > -- > Paul Hartland > paul.hartland at googlemail.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- Paul Hartland paul.hartland at googlemail.com From max.wanadoo at gmail.com Thu Feb 5 05:11:08 2009 From: max.wanadoo at gmail.com (Denis Sherman) Date: Thu, 5 Feb 2009 11:11:08 -0000 Subject: [AccessD] OT Friday In-Reply-To: <702FC80E3C7C480CA772D0D65A366215@MINSTER> References: <498B5135.24200.26ADBC@stuart.lexacorp.com.pg> <702FC80E3C7C480CA772D0D65A366215@MINSTER> Message-ID: <498ac942.02ab100a.5014.72e9@mx.google.com> Always remember this: You don't stop laughing because you grow old, You grow old because you stop laughing! Lady rings her local hospital and this conversation follows: Lady - Hello, I'd like some information on a patient, Mrs Tiptree. She was admitted last week with chest pains and I just want to know if here condition has deteriorated, stabilised or improved? Hospital - Do you know which ward she is in? Lady - Yes, Ward P room 2B Hospital - I'll just put you through to the nurse station Lady - I would like some information on a patient, Mrs Tiptree. I was wondering if her condition had deteriorated. stabilised or improved? Nurse - I'll just check her notes. I'm pleased to say that Mrs Tiptree's condition has improved. She has regained her appetite, her temperature has steadied and after some routine checks tonight, she should be well enough to go home tomorrow. Lady - Oh that's wonderful news. I'm so happy, thank you very much! Nurse - You seem very relieved. A\re you a close friend or relative? Lady - No, I'm Mrs Tiptree inn room 2B. Nobody tells you f***k all in here......... TGIF Max From max.wanadoo at gmail.com Thu Feb 5 05:32:11 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 5 Feb 2009 11:32:11 -0000 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: <4E25B80140564895A3FD6218729C894A@HAL9005> References: <2DB9B45749164C5794DD9414DB5C9B5F@HAL9005> <4E25B80140564895A3FD6218729C894A@HAL9005> Message-ID: <498ace4b.0856100a.19c4.ffff9033@mx.google.com> Might be worth asking WHY and then you may get the chance to suggest alternatives. That is the difference between Analysts and Programmers Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 04 February 2009 23:07 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right I don't know. Client requests it. I do it. :) Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Wednesday, February 04, 2009 3:03 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Decimal point with no places to the right But Rocky, why would you show a decimal point at all if you aren't going to show the decimal places? That doesn't make any kind of sense to me. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 04, 2009 2:07 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right The field is a double but the user doesn't want the decimal places to display. The format example has the value and the mask as the two arguments for the format. But in this case the value is in a bound text box on a continuous form. So I can't use the Format on the control source. So not sure how to get the text box to show the whole number plus the decimal point without the decimals fractions. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Wednesday, February 04, 2009 11:01 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right ? format(111&,"0.#") 111. Too true. Works for integer types, though not sure if Rocky specified integers. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 1:46 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Lambert > Your format string shows one decimal place (as I would expect it to) Yes, but none for an Integer - that I understood was the issue. /gustav >>> Lambert.Heenan at aig.com 04-02-2009 19:23 >>> Gustav? Your format string shows one decimal place (as I would expect it to) ? format(111.12,"0.#") 111.1 This shows no decimal places... ? format(111.12,"0.") 111. Lambert -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Thu Feb 5 05:42:51 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 5 Feb 2009 11:42:51 -0000 Subject: [AccessD] Training Records Database In-Reply-To: References: <4D2AA4F159D24AB0893241BD836B5144@murphy3234aaf1> <4989efd5.0616300a.4075.ffffd43e@mx.google.com> Message-ID: <498ad0ca.0b9e100a.6eb9.ffff9d71@mx.google.com> No Steve, I am not kidding. If I write a program in whatever language (it matters not which language) to do a task then that is the job done. End of! Depending on the language interface (ala Access) the implementation of the task can be easy or difficult but regardless of which, it still only does the same job/task. Ie. A form to capture data and a report to output the captured data. For me, a simple task in 2003 and hideous in 2007. For you perhaps easy but the task is the same. But the 2007 will do no more that what 2003 does. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Schapel Sent: 04 February 2009 20:00 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Training Records Database Max, -------------------------------------------------- From: "Max Wanadoo" Sent: Thursday, February 05, 2009 8:43 AM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Training Records Database > ... 2007 'cos it is > so stupidly cumbersome to navigate I can understand (though don't agree with) this sentiment. > and at the end of the day, it does no > more than 2003. But this, I can't believe. Oh dear, have you had a serious look? Does no more than 2003... you're kidding, right? Regards Steve -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Thu Feb 5 05:47:07 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 5 Feb 2009 11:47:07 -0000 Subject: [AccessD] Thanks Guys! In-Reply-To: <9D5E2D9F415C4941A1688AD4FD9D27A2@SusanOne> References: <9D5E2D9F415C4941A1688AD4FD9D27A2@SusanOne> Message-ID: <498ad1ca.0b9e100a.6de5.513e@mx.google.com> I am astounded, nay more than that. I would say my flabber is ghasted! Not a single mention of Truecrypt. Sheeshh...you guys! No wonder there is so much data lost. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: 04 February 2009 19:06 To: AccessD at databaseadvisors.com Subject: [AccessD] Thanks Guys! http://blogs.techrepublic.com.com/10things/?p=497&alertspromo=100907&tag=nl. rSINGLE Susan H. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From andy at minstersystems.co.uk Thu Feb 5 06:50:43 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Thu, 5 Feb 2009 12:50:43 -0000 Subject: [AccessD] OT Friday In-Reply-To: <498ac942.02ab100a.5014.72e9@mx.google.com> Message-ID: <2F34272CEF384278A971757166FC0425@MINSTER> Love it....but it's only Thursday by my calendar, although if you're in NZ then maybe. Whatever happened to Friday OT anyway? Oh I remember. So many people found so many jokes offensive for one reason or another everyone got fed up of posting them. Sigh. Andy Lacey -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Denis Sherman Sent: 05 February 2009 11:11 To: 'Access Developers discussion and problem solving' Subject: [AccessD] OT Friday Always remember this: You don't stop laughing because you grow old, You grow old because you stop laughing! Lady rings her local hospital and this conversation follows: Lady - Hello, I'd like some information on a patient, Mrs Tiptree. She was admitted last week with chest pains and I just want to know if here condition has deteriorated, stabilised or improved? Hospital - Do you know which ward she is in? Lady - Yes, Ward P room 2B Hospital - I'll just put you through to the nurse station Lady - I would like some information on a patient, Mrs Tiptree. I was wondering if her condition had deteriorated. stabilised or improved? Nurse - I'll just check her notes. I'm pleased to say that Mrs Tiptree's condition has improved. She has regained her appetite, her temperature has steadied and after some routine checks tonight, she should be well enough to go home tomorrow. Lady - Oh that's wonderful news. I'm so happy, thank you very much! Nurse - You seem very relieved. A\re you a close friend or relative? Lady - No, I'm Mrs Tiptree inn room 2B. Nobody tells you f***k all in here......... TGIF Max -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Thu Feb 5 07:58:03 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 5 Feb 2009 13:58:03 -0000 Subject: [AccessD] OT Friday In-Reply-To: <2F34272CEF384278A971757166FC0425@MINSTER> References: <498ac942.02ab100a.5014.72e9@mx.google.com> <2F34272CEF384278A971757166FC0425@MINSTER> Message-ID: <498af06e.09a8100a.3a88.6c02@mx.google.com> Oh good. That means I get another Friday tomorrow! Brilliant Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: 05 February 2009 12:51 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday Love it....but it's only Thursday by my calendar, although if you're in NZ then maybe. Whatever happened to Friday OT anyway? Oh I remember. So many people found so many jokes offensive for one reason or another everyone got fed up of posting them. Sigh. Andy Lacey -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Denis Sherman Sent: 05 February 2009 11:11 To: 'Access Developers discussion and problem solving' Subject: [AccessD] OT Friday Always remember this: You don't stop laughing because you grow old, You grow old because you stop laughing! Lady rings her local hospital and this conversation follows: Lady - Hello, I'd like some information on a patient, Mrs Tiptree. She was admitted last week with chest pains and I just want to know if here condition has deteriorated, stabilised or improved? Hospital - Do you know which ward she is in? Lady - Yes, Ward P room 2B Hospital - I'll just put you through to the nurse station Lady - I would like some information on a patient, Mrs Tiptree. I was wondering if her condition had deteriorated. stabilised or improved? Nurse - I'll just check her notes. I'm pleased to say that Mrs Tiptree's condition has improved. She has regained her appetite, her temperature has steadied and after some routine checks tonight, she should be well enough to go home tomorrow. Lady - Oh that's wonderful news. I'm so happy, thank you very much! Nurse - You seem very relieved. A\re you a close friend or relative? Lady - No, I'm Mrs Tiptree inn room 2B. Nobody tells you f***k all in here......... TGIF Max -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Lambert.Heenan at AIG.com Thu Feb 5 08:19:57 2009 From: Lambert.Heenan at AIG.com (Heenan, Lambert) Date: Thu, 5 Feb 2009 09:19:57 -0500 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: References: <2DB9B45749164C5794DD9414DB5C9B5F@HAL9005> Message-ID: Rocky, Just tested this in Access 2002. On a bound form, I set up a textbox bound to a double type field in a table. In the textbox's Format property I typed in just the two characters "0." - no quotes. And that does the job. 111.12 displays as 111. I then added a new record using the form and entered 1112.21 in the text box. That value was stored in the table, but on returning to the record, it displays as "1112." Seems to fit the bill. Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 04, 2009 5:48 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right Lambert: In your example the 111.12 is the value to be displayed and should display 111. yes? But since this is a bound text box I'm not sure where to enter format(111.12,"0.") and I'd have to substitute the bound field name for 111.12. Right? Thanks for hanging in there with me. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Wednesday, February 04, 2009 2:09 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right Like this? format(111.12,"0.") Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 04, 2009 5:07 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right The field is a double but the user doesn't want the decimal places to display. The format example has the value and the mask as the two arguments for the format. But in this case the value is in a bound text box on a continuous form. So I can't use the Format on the control source. So not sure how to get the text box to show the whole number plus the decimal point without the decimals fractions. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Wednesday, February 04, 2009 11:01 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right ? format(111&,"0.#") 111. Too true. Works for integer types, though not sure if Rocky specified integers. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 1:46 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Lambert > Your format string shows one decimal place (as I would expect it to) Yes, but none for an Integer - that I understood was the issue. /gustav >>> Lambert.Heenan at aig.com 04-02-2009 19:23 >>> Gustav? Your format string shows one decimal place (as I would expect it to) ? format(111.12,"0.#") 111.1 This shows no decimal places... ? format(111.12,"0.") 111. Lambert -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Chester_Kaup at kindermorgan.com Thu Feb 5 08:28:41 2009 From: Chester_Kaup at kindermorgan.com (Kaup, Chester) Date: Thu, 5 Feb 2009 08:28:41 -0600 Subject: [AccessD] Sorting in a report In-Reply-To: <0D72ED2BFB7B4A469287374BCB056327@stevePC> References: <0B2BF8524B73A248A2F1B81BA751ED3C0642705E00@houex1.kindermorgan.com> <625E8412773C4406B673E632DC88D358@stevePC> <0B2BF8524B73A248A2F1B81BA751ED3C0642705E32@houex1.kindermorgan.com> <0D72ED2BFB7B4A469287374BCB056327@stevePC> Message-ID: <0B2BF8524B73A248A2F1B81BA751ED3C0642705EB7@houex1.kindermorgan.com> Here are the grouping and sorting criteria I used [DayCount1000] & [WellName] Descending [DayCount500] & [WellName] Descending [DayCount200] & [WellName] Descending The WellNames that had a value for DayCount1000 appeared at the top of the report sorted by WellName. The remainder of the data appeared below sorted by WellName. No sorting occurred on DayCount500 or DayCount200. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Schapel Sent: Wednesday, February 04, 2009 5:16 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Sorting in a report Can you expand on that idea, Chester? Can you say what you did, and what the outcome was, and how the outcome differed from what you wanted? Thanks. Regards Steve -------------------------------------------------- From: "Kaup, Chester" Sent: Thursday, February 05, 2009 11:54 AM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Sorting in a report > Sorry but does not work. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Thu Feb 5 08:52:40 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 05 Feb 2009 09:52:40 -0500 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: References: <2DB9B45749164C5794DD9414DB5C9B5F@HAL9005> <4E25B80140564895A3FD6218729C894A@HAL9005> Message-ID: <498AFD38.9030808@colbyconsulting.com> Amen! John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...Lesson #1 in how to survive as an independent Access developer. :) > > William > > -------------------------------------------------- > From: "Rocky Smolin at Beach Access Software" > Sent: Wednesday, February 04, 2009 6:06 PM > To: "'Access Developers discussion and problem solving'" > > Subject: Re: [AccessD] Decimal point with no places to the right > >> I don't know. Client requests it. I do it. :) >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust >> Sent: Wednesday, February 04, 2009 3:03 PM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Decimal point with no places to the right >> >> But Rocky, why would you show a decimal point at all if you aren't going >> to >> show the decimal places? That doesn't make any kind of sense to me. >> >> Charlotte Foust >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at >> Beach Access Software >> Sent: Wednesday, February 04, 2009 2:07 PM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Decimal point with no places to the right >> >> The field is a double but the user doesn't want the decimal places to >> display. The format example has the value and the mask as the two >> arguments >> for the format. But in this case the value is in a bound text box on a >> continuous form. So I can't use the Format on the control source. So not >> sure how to get the text box to show the whole number plus the decimal >> point >> without the decimals fractions. >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert >> Sent: Wednesday, February 04, 2009 11:01 AM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Decimal point with no places to the right >> >> ? format(111&,"0.#") >> 111. >> >> Too true. Works for integer types, though not sure if Rocky specified >> integers. >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock >> Sent: Wednesday, February 04, 2009 1:46 PM >> To: accessd at databaseadvisors.com >> Subject: Re: [AccessD] Decimal point with no places to the right >> >> Hi Lambert >> >>> Your format string shows one decimal place (as I would expect it to) >> Yes, but none for an Integer - that I understood was the issue. >> >> /gustav >> >>>>> Lambert.Heenan at aig.com 04-02-2009 19:23 >>> >> Gustav? Your format string shows one decimal place (as I would expect it >> to) ? format(111.12,"0.#") >> 111.1 >> >> This shows no decimal places... >> ? format(111.12,"0.") >> 111. >> >> Lambert >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From jwcolby at colbyconsulting.com Thu Feb 5 08:54:55 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 05 Feb 2009 09:54:55 -0500 Subject: [AccessD] A2007 - Programmatically Minimize Ribbon In-Reply-To: References: <498AE648.5745.9E8FF2@stuart.lexacorp.com.pg> Message-ID: <498AFDBF.8060807@colbyconsulting.com> All of this to get rid of something that should be directly programmatically manipulatable. John W. Colby www.ColbyConsulting.com William Hindman wrote: > "SendKeys"????????? > > ...shakes head ...returns to A2K3 :( > > ...sorry Stu, just couldn't help myself :) > > William > > -------------------------------------------------- > From: "Stuart McLachlan" > Sent: Wednesday, February 04, 2009 10:14 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon > >> Rocky! >> >> This was answered two months ago when you asked about "turning off the >> ribbons >> programmatically" >> >> Here's what I posted then: >> My Height was slightly different to those in the link, probably because of >> different screen >> resolutions, fonts etc but it looks like it will always be above/below >> 100 so this should work >> anywhere. It certainly works for me: >> >> Function RibbonMinimized() As Boolean >> RibbonMinimized = Application.CommandBars("Ribbon").Height < 100 >> End Function >> >> The following four functions give you full control over the Ribbon :-) >> >> Function HideRibbon() >> DoCmd.ShowToolbar "Ribbon", acToolbarNo >> End Function >> >> Function ShowRibbon() >> DoCmd.ShowToolbar "Ribbon", acToolbarYes >> End Function >> >> Function MinimizeRibbon() >> If Not RibbonMinimized Then SendKeys "^{F1}" >> End If >> End Function >> >> Function MaximizeRibbon() >> If RibbonMinimized Then SendKeys "^{F1}" >> End If >> End Function >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From jwcolby at colbyconsulting.com Thu Feb 5 08:57:44 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 05 Feb 2009 09:57:44 -0500 Subject: [AccessD] Training Records Database In-Reply-To: References: <4989e51d.0c53300a.52cc.ffffc18f@mx.google.com> <498A2E4B.30509@colbyconsulting.com> Message-ID: <498AFE68.2080104@colbyconsulting.com> Nope, they just hire eight graders as interns. Something about "getting a jump on the workplace". ;-) John W. Colby www.ColbyConsulting.com William Hindman wrote: > "ROTFL. Not impressed with their summer interns?" jc > > ...did they upgrade their sample writing staff and not warn me? > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Wednesday, February 04, 2009 7:09 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] Training Records Database > >>> As for looking at MS site, I was hoping to get something GOOD. LOL >> ROTFL. Not impressed with their summer interns? >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Bryan Carbonnell wrote: >>> On Wed, Feb 4, 2009 at 1:57 PM, Max Wanadoo >>> wrote: >>>> Bit of a long shot Bryan, >>>> But did northwind not come with something similar. Also have you tried >>>> the >>>> MS site. >>> AFAIK, Northwind didn't have anything like this, but I could be wrong. >>> >>> As for looking at MS site, I was hoping to get something GOOD. LOL >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From jwcolby at colbyconsulting.com Thu Feb 5 09:07:11 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 05 Feb 2009 10:07:11 -0500 Subject: [AccessD] Thanks Guys! In-Reply-To: <498ad1ca.0b9e100a.6de5.513e@mx.google.com> References: <9D5E2D9F415C4941A1688AD4FD9D27A2@SusanOne> <498ad1ca.0b9e100a.6de5.513e@mx.google.com> Message-ID: <498B009F.7040705@colbyconsulting.com> I don't travel much. I used to use TrueCrypt (still have it) but when I got my Dell laptop I went with full disk encryption using the OS. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > I am astounded, nay more than that. I would say my flabber is ghasted! > > Not a single mention of Truecrypt. > > Sheeshh...you guys! No wonder there is so much data lost. > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins > Sent: 04 February 2009 19:06 > To: AccessD at databaseadvisors.com > Subject: [AccessD] Thanks Guys! > > http://blogs.techrepublic.com.com/10things/?p=497&alertspromo=100907&tag=nl. > rSINGLE > > Susan H. > From ssharkins at gmail.com Thu Feb 5 09:13:30 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Thu, 5 Feb 2009 10:13:30 -0500 Subject: [AccessD] Thanks Guys! References: <9D5E2D9F415C4941A1688AD4FD9D27A2@SusanOne> <498ad1ca.0b9e100a.6de5.513e@mx.google.com> Message-ID: There's one in every room... ;) Susan H. >I am astounded, nay more than that. I would say my flabber is ghasted! > > Not a single mention of Truecrypt. > > Sheeshh...you guys! No wonder there is so much data lost. From rockysmolin at bchacc.com Thu Feb 5 09:14:27 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Thu, 5 Feb 2009 07:14:27 -0800 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: <498ace4b.0856100a.19c4.ffff9033@mx.google.com> References: <2DB9B45749164C5794DD9414DB5C9B5F@HAL9005> <4E25B80140564895A3FD6218729C894A@HAL9005> <498ace4b.0856100a.19c4.ffff9033@mx.google.com> Message-ID: <0409C657EDE542AEBEC5E863663E2EEE@HAL9005> I find it is often better to let the user see what they think will work well then after they see it, do it again with what they know will work well. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Thursday, February 05, 2009 3:32 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right Might be worth asking WHY and then you may get the chance to suggest alternatives. That is the difference between Analysts and Programmers Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 04 February 2009 23:07 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right I don't know. Client requests it. I do it. :) Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Wednesday, February 04, 2009 3:03 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Decimal point with no places to the right But Rocky, why would you show a decimal point at all if you aren't going to show the decimal places? That doesn't make any kind of sense to me. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 04, 2009 2:07 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right The field is a double but the user doesn't want the decimal places to display. The format example has the value and the mask as the two arguments for the format. But in this case the value is in a bound text box on a continuous form. So I can't use the Format on the control source. So not sure how to get the text box to show the whole number plus the decimal point without the decimals fractions. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Wednesday, February 04, 2009 11:01 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right ? format(111&,"0.#") 111. Too true. Works for integer types, though not sure if Rocky specified integers. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 1:46 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Lambert > Your format string shows one decimal place (as I would expect it to) Yes, but none for an Integer - that I understood was the issue. /gustav >>> Lambert.Heenan at aig.com 04-02-2009 19:23 >>> Gustav? Your format string shows one decimal place (as I would expect it to) ? format(111.12,"0.#") 111.1 This shows no decimal places... ? format(111.12,"0.") 111. Lambert -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Thu Feb 5 09:17:02 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Thu, 5 Feb 2009 07:17:02 -0800 Subject: [AccessD] Decimal point with no places to the right In-Reply-To: References: <2DB9B45749164C5794DD9414DB5C9B5F@HAL9005> Message-ID: <7AE35AA208EC4379AC82721AEFEAB07C@HAL9005> Lambert: Yeah it worked after I changed the Decimal Places property from0 back to Auto. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Thursday, February 05, 2009 6:20 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right Rocky, Just tested this in Access 2002. On a bound form, I set up a textbox bound to a double type field in a table. In the textbox's Format property I typed in just the two characters "0." - no quotes. And that does the job. 111.12 displays as 111. I then added a new record using the form and entered 1112.21 in the text box. That value was stored in the table, but on returning to the record, it displays as "1112." Seems to fit the bill. Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 04, 2009 5:48 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right Lambert: In your example the 111.12 is the value to be displayed and should display 111. yes? But since this is a bound text box I'm not sure where to enter format(111.12,"0.") and I'd have to substitute the bound field name for 111.12. Right? Thanks for hanging in there with me. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Wednesday, February 04, 2009 2:09 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right Like this? format(111.12,"0.") Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 04, 2009 5:07 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right The field is a double but the user doesn't want the decimal places to display. The format example has the value and the mask as the two arguments for the format. But in this case the value is in a bound text box on a continuous form. So I can't use the Format on the control source. So not sure how to get the text box to show the whole number plus the decimal point without the decimals fractions. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Wednesday, February 04, 2009 11:01 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Decimal point with no places to the right ? format(111&,"0.#") 111. Too true. Works for integer types, though not sure if Rocky specified integers. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 04, 2009 1:46 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Decimal point with no places to the right Hi Lambert > Your format string shows one decimal place (as I would expect it to) Yes, but none for an Integer - that I understood was the issue. /gustav >>> Lambert.Heenan at aig.com 04-02-2009 19:23 >>> Gustav? Your format string shows one decimal place (as I would expect it to) ? format(111.12,"0.#") 111.1 This shows no decimal places... ? format(111.12,"0.") 111. Lambert -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Thu Feb 5 09:21:09 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Thu, 5 Feb 2009 07:21:09 -0800 Subject: [AccessD] A2007 - Programmatically Minimize Ribbon In-Reply-To: <498AFDBF.8060807@colbyconsulting.com> References: <498AE648.5745.9E8FF2@stuart.lexacorp.com.pg> <498AFDBF.8060807@colbyconsulting.com> Message-ID: <42309DCB27A9474AB2A824D3B8CC1DAD@HAL9005> Agree. In A2003 I never saw anything that could be done through the toolbars or otherwise, that could not be done in VBA using one or another object model. This seems to be a real basic difference in 2007. Why would the ribbon be exempted from programmatic manipulation. Why no Application.Ribbon. Or a DoCmd.Ribbon? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Thursday, February 05, 2009 6:55 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon All of this to get rid of something that should be directly programmatically manipulatable. John W. Colby www.ColbyConsulting.com William Hindman wrote: > "SendKeys"????????? > > ...shakes head ...returns to A2K3 :( > > ...sorry Stu, just couldn't help myself :) > > William > > -------------------------------------------------- > From: "Stuart McLachlan" > Sent: Wednesday, February 04, 2009 10:14 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon > >> Rocky! >> >> This was answered two months ago when you asked about "turning off >> the ribbons programmatically" >> >> Here's what I posted then: >> My Height was slightly different to those in the link, probably >> because of different screen resolutions, fonts etc but it looks like >> it will always be above/below 100 so this should work anywhere. It >> certainly works for me: >> >> Function RibbonMinimized() As Boolean RibbonMinimized = >> Application.CommandBars("Ribbon").Height < 100 End Function >> >> The following four functions give you full control over the Ribbon >> :-) >> >> Function HideRibbon() >> DoCmd.ShowToolbar "Ribbon", acToolbarNo End Function >> >> Function ShowRibbon() >> DoCmd.ShowToolbar "Ribbon", acToolbarYes End Function >> >> Function MinimizeRibbon() >> If Not RibbonMinimized Then SendKeys "^{F1}" >> End If >> End Function >> >> Function MaximizeRibbon() >> If RibbonMinimized Then SendKeys "^{F1}" >> End If >> End Function >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Thu Feb 5 09:38:25 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 5 Feb 2009 15:38:25 -0000 Subject: [AccessD] Thanks Guys! In-Reply-To: <498B009F.7040705@colbyconsulting.com> References: <9D5E2D9F415C4941A1688AD4FD9D27A2@SusanOne> <498ad1ca.0b9e100a.6de5.513e@mx.google.com> <498B009F.7040705@colbyconsulting.com> Message-ID: <498b07f7.0ec5100a.73ba.ffffd7b5@mx.google.com> Actually, it was you (JC) that introduced me to Truecrypt. I use it extensively now at work and home and on my memory-sticks. Great program and totally free. Mucho Gracias... Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 05 February 2009 15:07 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Thanks Guys! I don't travel much. I used to use TrueCrypt (still have it) but when I got my Dell laptop I went with full disk encryption using the OS. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > I am astounded, nay more than that. I would say my flabber is ghasted! > > Not a single mention of Truecrypt. > > Sheeshh...you guys! No wonder there is so much data lost. > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins > Sent: 04 February 2009 19:06 > To: AccessD at databaseadvisors.com > Subject: [AccessD] Thanks Guys! > > http://blogs.techrepublic.com.com/10things/?p=497&alertspromo=100907&tag=nl. > rSINGLE > > Susan H. > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From ssharkins at gmail.com Thu Feb 5 09:45:56 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Thu, 5 Feb 2009 10:45:56 -0500 Subject: [AccessD] Thanks Guys! References: <9D5E2D9F415C4941A1688AD4FD9D27A2@SusanOne> <498ad1ca.0b9e100a.6de5.513e@mx.google.com><498B009F.7040705@colbyconsulting.com> <498b07f7.0ec5100a.73ba.ffffd7b5@mx.google.com> Message-ID: You should post to the blog Max! :) Susan H. > Actually, it was you (JC) that introduced me to Truecrypt. I use it > extensively now at work and home and on my memory-sticks. > > Great program and totally free. > > Mucho Gracias... From max.wanadoo at gmail.com Thu Feb 5 09:54:36 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 5 Feb 2009 15:54:36 -0000 Subject: [AccessD] Thanks Guys! In-Reply-To: References: <9D5E2D9F415C4941A1688AD4FD9D27A2@SusanOne> <498ad1ca.0b9e100a.6de5.513e@mx.google.com><498B009F.7040705@colbyconsulting.com> <498b07f7.0ec5100a.73ba.ffffd7b5@mx.google.com> Message-ID: <498b0bc1.096c100a.1eaa.7dda@mx.google.com> Hi Susan, What blog are you referring to? Ta Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: 05 February 2009 15:46 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Thanks Guys! You should post to the blog Max! :) Susan H. > Actually, it was you (JC) that introduced me to Truecrypt. I use it > extensively now at work and home and on my memory-sticks. > > Great program and totally free. > > Mucho Gracias... -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Thu Feb 5 09:58:22 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 05 Feb 2009 10:58:22 -0500 Subject: [AccessD] Thanks Guys! In-Reply-To: <498b07f7.0ec5100a.73ba.ffffd7b5@mx.google.com> References: <9D5E2D9F415C4941A1688AD4FD9D27A2@SusanOne> <498ad1ca.0b9e100a.6de5.513e@mx.google.com> <498B009F.7040705@colbyconsulting.com> <498b07f7.0ec5100a.73ba.ffffd7b5@mx.google.com> Message-ID: <498B0C9E.7000803@colbyconsulting.com> It is a great program, and really great for carrying sensitive data on memory sticks and the like. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Actually, it was you (JC) that introduced me to Truecrypt. I use it > extensively now at work and home and on my memory-sticks. > > Great program and totally free. > > Mucho Gracias... > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 05 February 2009 15:07 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Thanks Guys! > > I don't travel much. I used to use TrueCrypt (still have it) but when I got > my Dell laptop I went > with full disk encryption using the OS. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> I am astounded, nay more than that. I would say my flabber is ghasted! >> >> Not a single mention of Truecrypt. >> >> Sheeshh...you guys! No wonder there is so much data lost. >> >> Max >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins >> Sent: 04 February 2009 19:06 >> To: AccessD at databaseadvisors.com >> Subject: [AccessD] Thanks Guys! >> >> > http://blogs.techrepublic.com.com/10things/?p=497&alertspromo=100907&tag=nl. >> rSINGLE >> >> Susan H. >> From ssharkins at gmail.com Thu Feb 5 10:11:57 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Thu, 5 Feb 2009 11:11:57 -0500 Subject: [AccessD] Thanks Guys! References: <9D5E2D9F415C4941A1688AD4FD9D27A2@SusanOne> <498ad1ca.0b9e100a.6de5.513e@mx.google.com><498B009F.7040705@colbyconsulting.com> <498b07f7.0ec5100a.73ba.ffffd7b5@mx.google.com> <498b0bc1.096c100a.1eaa.7dda@mx.google.com> Message-ID: <90DE5610F77B468A8DDC501A8814A382@SusanOne> The original article -- you can post responses to it. It's actually a blog format. http://blogs.techrepublic.com.com/10things/ Susan H. > Hi Susan, > What blog are you referring to? > Ta > Max From jimdettman at verizon.net Thu Feb 5 09:38:21 2009 From: jimdettman at verizon.net (Jim Dettman) Date: Thu, 05 Feb 2009 10:38:21 -0500 Subject: [AccessD] A2007 - Programmatically Minimize Ribbon In-Reply-To: <42309DCB27A9474AB2A824D3B8CC1DAD@HAL9005> References: <498AE648.5745.9E8FF2@stuart.lexacorp.com.pg> <498AFDBF.8060807@colbyconsulting.com> <42309DCB27A9474AB2A824D3B8CC1DAD@HAL9005> Message-ID: <18EBFDB9D9784D1D99839599E4C55993@XPS> << Why would the ribbon be exempted from programmatic manipulation. Why no Application.Ribbon. Or a DoCmd.Ribbon?>> That's because despite any overtures made, Microsoft does not consider Access to be a professional development tool; user features first and foremost always. Development features are always secondary. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Thursday, February 05, 2009 10:21 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon Agree. In A2003 I never saw anything that could be done through the toolbars or otherwise, that could not be done in VBA using one or another object model. This seems to be a real basic difference in 2007. Why would the ribbon be exempted from programmatic manipulation. Why no Application.Ribbon. Or a DoCmd.Ribbon? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Thursday, February 05, 2009 6:55 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon All of this to get rid of something that should be directly programmatically manipulatable. John W. Colby www.ColbyConsulting.com William Hindman wrote: > "SendKeys"????????? > > ...shakes head ...returns to A2K3 :( > > ...sorry Stu, just couldn't help myself :) > > William > > -------------------------------------------------- > From: "Stuart McLachlan" > Sent: Wednesday, February 04, 2009 10:14 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon > >> Rocky! >> >> This was answered two months ago when you asked about "turning off >> the ribbons programmatically" >> >> Here's what I posted then: >> My Height was slightly different to those in the link, probably >> because of different screen resolutions, fonts etc but it looks like >> it will always be above/below 100 so this should work anywhere. It >> certainly works for me: >> >> Function RibbonMinimized() As Boolean RibbonMinimized = >> Application.CommandBars("Ribbon").Height < 100 End Function >> >> The following four functions give you full control over the Ribbon >> :-) >> >> Function HideRibbon() >> DoCmd.ShowToolbar "Ribbon", acToolbarNo End Function >> >> Function ShowRibbon() >> DoCmd.ShowToolbar "Ribbon", acToolbarYes End Function >> >> Function MinimizeRibbon() >> If Not RibbonMinimized Then SendKeys "^{F1}" >> End If >> End Function >> >> Function MaximizeRibbon() >> If RibbonMinimized Then SendKeys "^{F1}" >> End If >> End Function >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From joe.rojas at symmetrynb.com Thu Feb 5 10:27:27 2009 From: joe.rojas at symmetrynb.com (Rojas, Joe) Date: Thu, 5 Feb 2009 11:27:27 -0500 Subject: [AccessD] Help with Query References: <4989c6de.0269300a.2f60.fffff09e@mx.google.com> <5BAE0A5B5D7E414D96584521B26E6C09AA6DB3@DPYUSNBEXS1.snb.local> Message-ID: <5BAE0A5B5D7E414D96584521B26E6C09AA6EEF@DPYUSNBEXS1.snb.local> Thanks Mark! Your suggestion leaded me to the answer. Not sure why I didn't just filter in the query as opposed to linking to a local table. Forest from the trees syndrome I guess. Joe -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Mark A Matte Sent: Wednesday, February 04, 2009 1:49 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Help with Query I have the same issue when pulling data via ODBC...I have found it is much quicker to NOT join a local table to a linked ODBC...just my opinion. Any reason you can't do the filtering in one SQL statement.(see sample below) Good Luck, Mark A. Matte SELECT PUB_JobOper.Company, PUB_JobOper.JobNum, PUB_JobOper.OprSeq, PUB_JobOper.OpCode, PUB_JobOper.SubContract, PUB_JobOper.ActBurCost, PUB_JobOper.ActLabCost FROM PUB_JobOper,PUB_LaborDtl WHERE PUB_JobOper.JobNum=PUB_LaborDtl.JobNum and PUB_JobOper.Company = 'SNB' and ((PUB_LaborDtl.ClockInDate) Between [dteStart] And [dteEnd]); ---------------------------------------- > Date: Wed, 4 Feb 2009 12:06:09 -0500 > From: joe.rojas at symmetrynb.com > To: accessd at databaseadvisors.com > Subject: [AccessD] Help with Query > > Hi All, > > I am trying to pull data into Access from our ERP system that runs off > of a Progress OpenEdge database. > The problem I'm having is that the query takes a long time to > run...around 20 mins. > I think the problem is related to how I've designed the query and I'm > hoping someone can point out my error. > > I'm connecting to OpenEdge via ODBC. I've linked to the tables I need in > Access. > I've pasted the SQL for the queries below. > The first query runs pretty quick. It pulles data from one of the tables > based on date range and inserts the records into a local table in > Access. > The second query is the one that has the problem. I created a query in > Access that pulls data from another table in OpenEdge that has a WHERE > clause that uses the IN statement. The IN statement uses a sub query to > get the distinct job numbers from the local table that was created in > the first query. > The sub query could return many job numbers depending on the span in the > date range for the first query. > By many, I mean it could be 10, 100, 1000, or more. > > My guess is that the sub query could be the problem. > When I run the query, the CPU spikes to 100% for MSACESS but the network > traffic indicates that it's not actually pulling data the whole time. > > Is there an alternate method to achieving my goal? > > Tables in my query that have a 'tbl' prefix are local tables. Tables > with a 'PUB' prefix are link ODBC tables. > > Query 1 (runs in seconds) > INSERT INTO tblLaborDtl ( Company, EmployeeNum, JobNum, OprSeq, > ResourceGrpID, ScrapQty, ResourceID, ClockInDate, LaborDtlSeq, > ScrapReasonCode ) > SELECT PUB_LaborDtl.Company, PUB_LaborDtl.EmployeeNum, > PUB_LaborDtl.JobNum, PUB_LaborDtl.OprSeq, PUB_LaborDtl.ResourceGrpID, > PUB_LaborDtl.ScrapQty, PUB_LaborDtl.ResourceID, > PUB_LaborDtl.ClockInDate, PUB_LaborDtl.LaborDtlSeq, > PUB_LaborDtl.ScrapReasonCode > FROM PUB_LaborDtl > WHERE (((PUB_LaborDtl.ClockInDate) Between [dteStart] And [dteEnd])); > > Query 2 (take 20 mins) > INSERT INTO tblJobOper ( Company, JobNum, OprSeq, OpCode, SubContract, > ActBurCost, ActLabCost ) > SELECT PUB_JobOper.Company, PUB_JobOper.JobNum, PUB_JobOper.OprSeq, > PUB_JobOper.OpCode, PUB_JobOper.SubContract, PUB_JobOper.ActBurCost, > PUB_JobOper.ActLabCost > FROM PUB_JobOper > WHERE PUB_JobOper.Company = 'SNB' AND PUB_JobOper.JobNum In (SELECT > DISTINCT tblLaborDtl.JobNum FROM tblLaborDtl); > > Joe > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com _________________________________________________________________ Windows Live(tm): Keep your life in sync. http://windowslive.com/explore?ocid=TXT_TAGLM_WL_t1_allup_explore_022009 -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Thu Feb 5 10:52:41 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 5 Feb 2009 16:52:41 -0000 Subject: [AccessD] Thanks Guys! In-Reply-To: <90DE5610F77B468A8DDC501A8814A382@SusanOne> References: <9D5E2D9F415C4941A1688AD4FD9D27A2@SusanOne> <498ad1ca.0b9e100a.6de5.513e@mx.google.com><498B009F.7040705@colbyconsulting.com> <498b07f7.0ec5100a.73ba.ffffd7b5@mx.google.com> <498b0bc1.096c100a.1eaa.7dda@mx.google.com> <90DE5610F77B468A8DDC501A8814A382@SusanOne> Message-ID: <498b19f1.0b9e100a.6eb9.fffff46e@mx.google.com> Ok, done that. Ta Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: 05 February 2009 16:12 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Thanks Guys! The original article -- you can post responses to it. It's actually a blog format. http://blogs.techrepublic.com.com/10things/ Susan H. > Hi Susan, > What blog are you referring to? > Ta > Max -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From DWUTKA at Marlow.com Thu Feb 5 10:58:18 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Thu, 5 Feb 2009 10:58:18 -0600 Subject: [AccessD] OT Friday In-Reply-To: <2F34272CEF384278A971757166FC0425@MINSTER> References: <498ac942.02ab100a.5014.72e9@mx.google.com> <2F34272CEF384278A971757166FC0425@MINSTER> Message-ID: I must admit, I'm offended by this thread, here I am waking up to seeing an AccessD post with FRIDAY OT as the subject, and I get the warm and fuzzy feeling that tomorrow is the weekend....... Only to have reality crashing in that it's still Thursday! ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: Thursday, February 05, 2009 6:51 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday Love it....but it's only Thursday by my calendar, although if you're in NZ then maybe. Whatever happened to Friday OT anyway? Oh I remember. So many people found so many jokes offensive for one reason or another everyone got fed up of posting them. Sigh. Andy Lacey -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Denis Sherman Sent: 05 February 2009 11:11 To: 'Access Developers discussion and problem solving' Subject: [AccessD] OT Friday Always remember this: You don't stop laughing because you grow old, You grow old because you stop laughing! Lady rings her local hospital and this conversation follows: Lady - Hello, I'd like some information on a patient, Mrs Tiptree. She was admitted last week with chest pains and I just want to know if here condition has deteriorated, stabilised or improved? Hospital - Do you know which ward she is in? Lady - Yes, Ward P room 2B Hospital - I'll just put you through to the nurse station Lady - I would like some information on a patient, Mrs Tiptree. I was wondering if her condition had deteriorated. stabilised or improved? Nurse - I'll just check her notes. I'm pleased to say that Mrs Tiptree's condition has improved. She has regained her appetite, her temperature has steadied and after some routine checks tonight, she should be well enough to go home tomorrow. Lady - Oh that's wonderful news. I'm so happy, thank you very much! Nurse - You seem very relieved. A\re you a close friend or relative? Lady - No, I'm Mrs Tiptree inn room 2B. Nobody tells you f***k all in here......... TGIF Max -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From andy at minstersystems.co.uk Thu Feb 5 11:11:04 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Thu, 5 Feb 2009 17:11:04 -0000 Subject: [AccessD] OT Friday In-Reply-To: Message-ID: I agree Drew. As moderator I'm going to ban such insensitive behaviour in future. Andy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 05 February 2009 16:58 To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT Friday I must admit, I'm offended by this thread, here I am waking up to seeing an AccessD post with FRIDAY OT as the subject, and I get the warm and fuzzy feeling that tomorrow is the weekend....... Only to have reality crashing in that it's still Thursday! ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: Thursday, February 05, 2009 6:51 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday Love it....but it's only Thursday by my calendar, although if you're in NZ then maybe. Whatever happened to Friday OT anyway? Oh I remember. So many people found so many jokes offensive for one reason or another everyone got fed up of posting them. Sigh. Andy Lacey -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Denis Sherman Sent: 05 February 2009 11:11 To: 'Access Developers discussion and problem solving' Subject: [AccessD] OT Friday Always remember this: You don't stop laughing because you grow old, You grow old because you stop laughing! Lady rings her local hospital and this conversation follows: Lady - Hello, I'd like some information on a patient, Mrs Tiptree. She was admitted last week with chest pains and I just want to know if here condition has deteriorated, stabilised or improved? Hospital - Do you know which ward she is in? Lady - Yes, Ward P room 2B Hospital - I'll just put you through to the nurse station Lady - I would like some information on a patient, Mrs Tiptree. I was wondering if her condition had deteriorated. stabilised or improved? Nurse - I'll just check her notes. I'm pleased to say that Mrs Tiptree's condition has improved. She has regained her appetite, her temperature has steadied and after some routine checks tonight, she should be well enough to go home tomorrow. Lady - Oh that's wonderful news. I'm so happy, thank you very much! Nurse - You seem very relieved. A\re you a close friend or relative? Lady - No, I'm Mrs Tiptree inn room 2B. Nobody tells you f***k all in here......... TGIF Max -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From carbonnb at gmail.com Thu Feb 5 11:19:25 2009 From: carbonnb at gmail.com (Bryan Carbonnell) Date: Thu, 5 Feb 2009 12:19:25 -0500 Subject: [AccessD] OT Friday In-Reply-To: References: Message-ID: On Thu, Feb 5, 2009 at 12:11 PM, Andy Lacey wrote: > I agree Drew. As moderator I'm going to ban such insensitive behaviour in > future. As listmaster I'll back you up on that one Andy. Cause it JUST dawned on me what the whole issue was, even though I read you post. -- Bryan Carbonnell - carbonnb at gmail.com Life's journey is not to arrive at the grave safely in a well preserved body, but rather to skid in sideways, totally worn out, shouting "What a great ride!" From DWUTKA at Marlow.com Thu Feb 5 11:20:52 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Thu, 5 Feb 2009 11:20:52 -0600 Subject: [AccessD] OT Friday In-Reply-To: References: Message-ID: As a board member, I think we need to petition the UN to allow an annual 'AccessD Declared Weekend'. Thus if a majority of AccessD feels that it should be Friday, it IS Friday! We could eliminate leap years this way, and think of all the SQL Server weenies we could piss off by changing the day of the week on a whim! The Access Dev team would have a patch out in a week (though it would probably come with the latest 'ribbon' interface!) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: Thursday, February 05, 2009 11:11 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday I agree Drew. As moderator I'm going to ban such insensitive behaviour in future. Andy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 05 February 2009 16:58 To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT Friday I must admit, I'm offended by this thread, here I am waking up to seeing an AccessD post with FRIDAY OT as the subject, and I get the warm and fuzzy feeling that tomorrow is the weekend....... Only to have reality crashing in that it's still Thursday! ;) Drew The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From max.wanadoo at gmail.com Thu Feb 5 11:43:17 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 5 Feb 2009 17:43:17 -0000 Subject: [AccessD] OT Friday In-Reply-To: References: Message-ID: <498b2545.096c100a.7f39.52ec@mx.google.com> Oh yeah! Go ahead and try it....I dare you. My dad is bigger than your dad.... Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: 05 February 2009 17:11 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday I agree Drew. As moderator I'm going to ban such insensitive behaviour in future. Andy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 05 February 2009 16:58 To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT Friday I must admit, I'm offended by this thread, here I am waking up to seeing an AccessD post with FRIDAY OT as the subject, and I get the warm and fuzzy feeling that tomorrow is the weekend....... Only to have reality crashing in that it's still Thursday! ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: Thursday, February 05, 2009 6:51 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday Love it....but it's only Thursday by my calendar, although if you're in NZ then maybe. Whatever happened to Friday OT anyway? Oh I remember. So many people found so many jokes offensive for one reason or another everyone got fed up of posting them. Sigh. Andy Lacey -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Denis Sherman Sent: 05 February 2009 11:11 To: 'Access Developers discussion and problem solving' Subject: [AccessD] OT Friday Always remember this: You don't stop laughing because you grow old, You grow old because you stop laughing! Lady rings her local hospital and this conversation follows: Lady - Hello, I'd like some information on a patient, Mrs Tiptree. She was admitted last week with chest pains and I just want to know if here condition has deteriorated, stabilised or improved? Hospital - Do you know which ward she is in? Lady - Yes, Ward P room 2B Hospital - I'll just put you through to the nurse station Lady - I would like some information on a patient, Mrs Tiptree. I was wondering if her condition had deteriorated. stabilised or improved? Nurse - I'll just check her notes. I'm pleased to say that Mrs Tiptree's condition has improved. She has regained her appetite, her temperature has steadied and after some routine checks tonight, she should be well enough to go home tomorrow. Lady - Oh that's wonderful news. I'm so happy, thank you very much! Nurse - You seem very relieved. A\re you a close friend or relative? Lady - No, I'm Mrs Tiptree inn room 2B. Nobody tells you f***k all in here......... TGIF Max -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Thu Feb 5 11:43:17 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 5 Feb 2009 17:43:17 -0000 Subject: [AccessD] OT Friday In-Reply-To: References: <498ac942.02ab100a.5014.72e9@mx.google.com> <2F34272CEF384278A971757166FC0425@MINSTER> Message-ID: <498b254d.096c100a.7f39.52f1@mx.google.com> Yes, but just think. You can wake up tomorrow and have ANOTHER warm and fuzzy feeling. Two in one week - now that's not bad! Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 05 February 2009 16:58 To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT Friday I must admit, I'm offended by this thread, here I am waking up to seeing an AccessD post with FRIDAY OT as the subject, and I get the warm and fuzzy feeling that tomorrow is the weekend....... Only to have reality crashing in that it's still Thursday! ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: Thursday, February 05, 2009 6:51 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday Love it....but it's only Thursday by my calendar, although if you're in NZ then maybe. Whatever happened to Friday OT anyway? Oh I remember. So many people found so many jokes offensive for one reason or another everyone got fed up of posting them. Sigh. Andy Lacey -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Denis Sherman Sent: 05 February 2009 11:11 To: 'Access Developers discussion and problem solving' Subject: [AccessD] OT Friday Always remember this: You don't stop laughing because you grow old, You grow old because you stop laughing! Lady rings her local hospital and this conversation follows: Lady - Hello, I'd like some information on a patient, Mrs Tiptree. She was admitted last week with chest pains and I just want to know if here condition has deteriorated, stabilised or improved? Hospital - Do you know which ward she is in? Lady - Yes, Ward P room 2B Hospital - I'll just put you through to the nurse station Lady - I would like some information on a patient, Mrs Tiptree. I was wondering if her condition had deteriorated. stabilised or improved? Nurse - I'll just check her notes. I'm pleased to say that Mrs Tiptree's condition has improved. She has regained her appetite, her temperature has steadied and after some routine checks tonight, she should be well enough to go home tomorrow. Lady - Oh that's wonderful news. I'm so happy, thank you very much! Nurse - You seem very relieved. A\re you a close friend or relative? Lady - No, I'm Mrs Tiptree inn room 2B. Nobody tells you f***k all in here......... TGIF Max -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From miscellany at mvps.org Thu Feb 5 12:45:20 2009 From: miscellany at mvps.org (Steve Schapel) Date: Fri, 06 Feb 2009 07:45:20 +1300 Subject: [AccessD] OT Friday In-Reply-To: References: <498ac942.02ab100a.5014.72e9@mx.google.com> <2F34272CEF384278A971757166FC0425@MINSTER> Message-ID: Whereas for me, where it *is* Friday, it is so good, for once, to not feel like I must have missed something. :-) Regards Steve -------------------------------------------------- From: "Drew Wutka" Sent: Friday, February 06, 2009 5:58 AM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] OT Friday > I must admit, I'm offended by this thread, here I am waking up to seeing > an AccessD post with FRIDAY OT as the subject, and I get the warm and > fuzzy feeling that tomorrow is the weekend....... > > Only to have reality crashing in that it's still Thursday! > From miscellany at mvps.org Thu Feb 5 12:49:12 2009 From: miscellany at mvps.org (Steve Schapel) Date: Fri, 06 Feb 2009 07:49:12 +1300 Subject: [AccessD] Sorting in a report In-Reply-To: <0B2BF8524B73A248A2F1B81BA751ED3C0642705EB7@houex1.kindermorgan.com> References: <0B2BF8524B73A248A2F1B81BA751ED3C0642705E00@houex1.kindermorgan.com> <625E8412773C4406B673E632DC88D358@stevePC> <0B2BF8524B73A248A2F1B81BA751ED3C0642705E32@houex1.kindermorgan.com> <0D72ED2BFB7B4A469287374BCB056327@stevePC> <0B2BF8524B73A248A2F1B81BA751ED3C0642705EB7@houex1.kindermorgan.com> Message-ID: <3F3F607E3DA343D7A0A23CFDAF09BD72@stevePC> Chester, For an expression to work in the Sorting & Grouping, you need to put the = in front, e.g. =[DayCount1000] & [WellName] Also, if one of the fields is a number, I think the result of the overall expression will be a string, so you might need to do something like: =Format([DayCount1000],"0000") & [WellName] Regards Steve -------------------------------------------------- From: "Kaup, Chester" Sent: Friday, February 06, 2009 3:28 AM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Sorting in a report > Here are the grouping and sorting criteria I used > [DayCount1000] & [WellName] Descending > [DayCount500] & [WellName] Descending > [DayCount200] & [WellName] Descending > The WellNames that had a value for DayCount1000 appeared at the top of the > report sorted by WellName. The remainder of the data appeared below sorted > by WellName. No sorting occurred on DayCount500 or DayCount200. > From dw-murphy at cox.net Thu Feb 5 12:51:17 2009 From: dw-murphy at cox.net (Doug Murphy) Date: Thu, 5 Feb 2009 10:51:17 -0800 Subject: [AccessD] SQL Server ODBC optimization In-Reply-To: <498b254d.096c100a.7f39.52f1@mx.google.com> References: <498ac942.02ab100a.5014.72e9@mx.google.com> <2F34272CEF384278A971757166FC0425@MINSTER> <498b254d.096c100a.7f39.52f1@mx.google.com> Message-ID: <7D8C52FD13D34319964E591EEFD1E905@murphy3234aaf1> Folks, I am know that there are some design guidelines that should be followed with designing a system with an Access front end connected to a SQL Server back end via ODBC to obtain good performance. I know this is a pretty broad question, but could any of you folks who do this on a regular basis provide a list of the techniques and design approaches you follow? I am not looking for a treatise on the subject just a list of items to be aware of and good design practices. Thanks in advance. Doug From rockysmolin at bchacc.com Thu Feb 5 12:54:17 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Thu, 5 Feb 2009 10:54:17 -0800 Subject: [AccessD] A2007 - Programmatically Minimize Ribbon In-Reply-To: <498AE648.5745.9E8FF2@stuart.lexacorp.com.pg> References: <498AE648.5745.9E8FF2@stuart.lexacorp.com.pg> Message-ID: Stuart: Well, dang. It doesn't work. I put Call MinimizeRibbon in the _Open event, but the ribbon ended up maximized anyway. SO I moved it right at the end of the _Open event on the theory that maybe some of the housekeeping (resizing the form, maximizing the form, etc.) was affecting the ribbon. But no soap. So I moved it to the _Activate event. Same result. So I put MsgBox RibbonMinimized in the RibbonMinimized Function to see what the value was on the call. With the Call to MinimizeRibbon in the Activate event, it gets called 3 times. Each time the value of RibbonMinimized is True and the ribbon is indeed minimized. Then right at the end of the opening process, the ribbon re-appears. Ctrl-F1 from the keyboard toggles the ribbon nicely. And the code looks like it should work. And I stepped through it just to see what it was doing. Any ideas what's going on? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Wednesday, February 04, 2009 7:15 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon Rocky! This was answered two months ago when you asked about "turning off the ribbons programmatically" Here's what I posted then: My Height was slightly different to those in the link, probably because of different screen resolutions, fonts etc but it looks like it will always be above/below 100 so this should work anywhere. It certainly works for me: Function RibbonMinimized() As Boolean RibbonMinimized = Application.CommandBars("Ribbon").Height < 100 End Function The following four functions give you full control over the Ribbon :-) Function HideRibbon() DoCmd.ShowToolbar "Ribbon", acToolbarNo End Function Function ShowRibbon() DoCmd.ShowToolbar "Ribbon", acToolbarYes End Function Function MinimizeRibbon() If Not RibbonMinimized Then SendKeys "^{F1}" End If End Function Function MaximizeRibbon() If RibbonMinimized Then SendKeys "^{F1}" End If End Function -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Thu Feb 5 12:54:41 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 5 Feb 2009 18:54:41 -0000 Subject: [AccessD] OT Friday In-Reply-To: References: <498ac942.02ab100a.5014.72e9@mx.google.com> <2F34272CEF384278A971757166FC0425@MINSTER> Message-ID: <498b3618.0c92100a.5588.6a7c@mx.google.com> Well Steve, as it is Friday in Oz but not yet here in BritLand could I ask you to post this tomorrow. I don't want to get into trouble by posting it now. Max In 1986, Peter Davies was on holiday in Kenya after graduating from Northwestern University . On a hike through the bush, he came across a certain age bull elephant standing with one leg raised in the air. The elephant seemed distressed, so Peter approached it very carefully. He got down on one knee, inspected the elephants foot, and found a large piece of wood deeply embedded in it. As carefully and as gently as he could, Peter worked the wood out with his knife, after which the elephant gingerly put down its foot. The elephant turned to face the man, and with a rather curious look on its face, stared at him for several tense moments. Peter stood frozen, thinking of nothing else but being trampled. Eventually the elephant trumpeted loudly, turned, and walked away. Peter never forgot that elephant or the events of that day. Twenty years later, Peter was walking through the Chicago Zoo with his teenage son. As they approached the elephant enclosure, one of the creatures turned and walked over to near where Peter and his son Cameron were standing. The large bull elephant stared at Peter, lifted its front foot off the ground, then put it down. The elephant did that several times then trumpeted loudly, all the while staring at the man. Remembering the encounter in 1986, Peter could not help wondering if this was the same elephant. Peter summoned up his courage, climbed over the railing, and made his way into the enclosure. He walked right up to the elephant and stared back in wonder. The elephant trumpeted again, wrapped its trunk around one of Peter legs and slammed him against the railing, killing him instantly. Probably wasn't the same effing elephant.. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Schapel Sent: 05 February 2009 18:45 To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT Friday Whereas for me, where it *is* Friday, it is so good, for once, to not feel like I must have missed something. :-) Regards Steve -------------------------------------------------- From: "Drew Wutka" Sent: Friday, February 06, 2009 5:58 AM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] OT Friday > I must admit, I'm offended by this thread, here I am waking up to seeing > an AccessD post with FRIDAY OT as the subject, and I get the warm and > fuzzy feeling that tomorrow is the weekend....... > > Only to have reality crashing in that it's still Thursday! > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From ssharkins at gmail.com Thu Feb 5 12:57:30 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Thu, 5 Feb 2009 13:57:30 -0500 Subject: [AccessD] OT Friday References: <498ac942.02ab100a.5014.72e9@mx.google.com><2F34272CEF384278A971757166FC0425@MINSTER> Message-ID: <64D5EC5F36CB427B863D9BB07457BA0E@SusanOne> > > Only to have reality crashing in that it's still Thursday! ======I thought yesterday was Tuesday -- didn't get corrected until we climbed into bed and the TV was discussion school closings for Thursday... "Huh????," I said to the dh, who happened to know what day it really was (he's in military SA, I guess he has to know). Susan H. From andy at minstersystems.co.uk Thu Feb 5 13:23:06 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Thu, 5 Feb 2009 19:23:06 -0000 Subject: [AccessD] OT Friday In-Reply-To: <498b3618.0c92100a.5588.6a7c@mx.google.com> Message-ID: You're not the messiah you're a very naughty boy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: 05 February 2009 18:55 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday Well Steve, as it is Friday in Oz but not yet here in BritLand could I ask you to post this tomorrow. I don't want to get into trouble by posting it now. Max In 1986, Peter Davies was on holiday in Kenya after graduating from Northwestern University . On a hike through the bush, he came across a certain age bull elephant standing with one leg raised in the air. The elephant seemed distressed, so Peter approached it very carefully. He got down on one knee, inspected the elephants foot, and found a large piece of wood deeply embedded in it. As carefully and as gently as he could, Peter worked the wood out with his knife, after which the elephant gingerly put down its foot. The elephant turned to face the man, and with a rather curious look on its face, stared at him for several tense moments. Peter stood frozen, thinking of nothing else but being trampled. Eventually the elephant trumpeted loudly, turned, and walked away. Peter never forgot that elephant or the events of that day. Twenty years later, Peter was walking through the Chicago Zoo with his teenage son. As they approached the elephant enclosure, one of the creatures turned and walked over to near where Peter and his son Cameron were standing. The large bull elephant stared at Peter, lifted its front foot off the ground, then put it down. The elephant did that several times then trumpeted loudly, all the while staring at the man. Remembering the encounter in 1986, Peter could not help wondering if this was the same elephant. Peter summoned up his courage, climbed over the railing, and made his way into the enclosure. He walked right up to the elephant and stared back in wonder. The elephant trumpeted again, wrapped its trunk around one of Peter legs and slammed him against the railing, killing him instantly. Probably wasn't the same effing elephant.. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Schapel Sent: 05 February 2009 18:45 To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT Friday Whereas for me, where it *is* Friday, it is so good, for once, to not feel like I must have missed something. :-) Regards Steve -------------------------------------------------- From: "Drew Wutka" Sent: Friday, February 06, 2009 5:58 AM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] OT Friday > I must admit, I'm offended by this thread, here I am waking up to > seeing an AccessD post with FRIDAY OT as the subject, and I get the > warm and fuzzy feeling that tomorrow is the weekend....... > > Only to have reality crashing in that it's still Thursday! > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Thu Feb 5 13:27:22 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 05 Feb 2009 14:27:22 -0500 Subject: [AccessD] A2007 - Programmatically Minimize Ribbon In-Reply-To: References: <498AE648.5745.9E8FF2@stuart.lexacorp.com.pg> Message-ID: <498B3D9A.4050101@colbyconsulting.com> > Any ideas what's going on? Simple really, MS is DAMNED PROUD of their ribbon and is making sure that you see it! They spent several million dollars on usability studies to make sure that the ribbon was useful to power users and spent about another 10 million or so to make sure that it was truly annoying to developers, and they aren't about to let their investment slip through their fingers! John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Stuart: > > Well, dang. It doesn't work. I put Call MinimizeRibbon in the _Open event, > but the ribbon ended up maximized anyway. SO I moved it right at the end > of the _Open event on the theory that maybe some of the housekeeping > (resizing the form, maximizing the form, etc.) was affecting the ribbon. > But no soap. > > So I moved it to the _Activate event. Same result. So I put MsgBox > RibbonMinimized in the RibbonMinimized Function to see what the value was on > the call. With the Call to MinimizeRibbon in the Activate event, it gets > called 3 times. Each time the value of RibbonMinimized is True and the > ribbon is indeed minimized. > > Then right at the end of the opening process, the ribbon re-appears. > > Ctrl-F1 from the keyboard toggles the ribbon nicely. And the code looks > like it should work. And I stepped through it just to see what it was > doing. > > Any ideas what's going on? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com From max.wanadoo at gmail.com Thu Feb 5 13:30:33 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 5 Feb 2009 19:30:33 -0000 Subject: [AccessD] OT Friday In-Reply-To: References: <498b3618.0c92100a.5588.6a7c@mx.google.com> Message-ID: <498b3e75.02ab100a.5014.ffffe800@mx.google.com> Oh! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: 05 February 2009 19:23 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday You're not the messiah you're a very naughty boy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: 05 February 2009 18:55 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday Well Steve, as it is Friday in Oz but not yet here in BritLand could I ask you to post this tomorrow. I don't want to get into trouble by posting it now. Max In 1986, Peter Davies was on holiday in Kenya after graduating from Northwestern University . On a hike through the bush, he came across a certain age bull elephant standing with one leg raised in the air. The elephant seemed distressed, so Peter approached it very carefully. He got down on one knee, inspected the elephants foot, and found a large piece of wood deeply embedded in it. As carefully and as gently as he could, Peter worked the wood out with his knife, after which the elephant gingerly put down its foot. The elephant turned to face the man, and with a rather curious look on its face, stared at him for several tense moments. Peter stood frozen, thinking of nothing else but being trampled. Eventually the elephant trumpeted loudly, turned, and walked away. Peter never forgot that elephant or the events of that day. Twenty years later, Peter was walking through the Chicago Zoo with his teenage son. As they approached the elephant enclosure, one of the creatures turned and walked over to near where Peter and his son Cameron were standing. The large bull elephant stared at Peter, lifted its front foot off the ground, then put it down. The elephant did that several times then trumpeted loudly, all the while staring at the man. Remembering the encounter in 1986, Peter could not help wondering if this was the same elephant. Peter summoned up his courage, climbed over the railing, and made his way into the enclosure. He walked right up to the elephant and stared back in wonder. The elephant trumpeted again, wrapped its trunk around one of Peter legs and slammed him against the railing, killing him instantly. Probably wasn't the same effing elephant.. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Schapel Sent: 05 February 2009 18:45 To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT Friday Whereas for me, where it *is* Friday, it is so good, for once, to not feel like I must have missed something. :-) Regards Steve -------------------------------------------------- From: "Drew Wutka" Sent: Friday, February 06, 2009 5:58 AM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] OT Friday > I must admit, I'm offended by this thread, here I am waking up to > seeing an AccessD post with FRIDAY OT as the subject, and I get the > warm and fuzzy feeling that tomorrow is the weekend....... > > Only to have reality crashing in that it's still Thursday! > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Thu Feb 5 13:31:29 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 05 Feb 2009 14:31:29 -0500 Subject: [AccessD] Help with Query In-Reply-To: <5BAE0A5B5D7E414D96584521B26E6C09AA6EEF@DPYUSNBEXS1.snb.local> References: <4989c6de.0269300a.2f60.fffff09e@mx.google.com> <5BAE0A5B5D7E414D96584521B26E6C09AA6DB3@DPYUSNBEXS1.snb.local> <5BAE0A5B5D7E414D96584521B26E6C09AA6EEF@DPYUSNBEXS1.snb.local> Message-ID: <498B3E91.8010609@colbyconsulting.com> Does anyone know what might be behind this slowness? I have an Access application that is required to link to data from SQL Server, and it is indeed very slow, a source of annoyance to my client. I do have to filter the data, currently using an inner join. I really do not want to just copy the data into a local MDB table though I will if that will help (hadn't thought much about doing that till now). John W. Colby www.ColbyConsulting.com Rojas, Joe wrote: > Thanks Mark! > Your suggestion leaded me to the answer. Not sure why I didn't just > filter in the query as opposed to linking to a local table. > Forest from the trees syndrome I guess. > > Joe > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Mark A Matte > Sent: Wednesday, February 04, 2009 1:49 PM > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Help with Query > > > > I have the same issue when pulling data via ODBC...I have found it is > much quicker to NOT join a local table to a linked ODBC...just my > opinion. Any reason you can't do the filtering in one SQL > statement.(see sample below) > > Good Luck, > > Mark A. Matte > > > SELECT PUB_JobOper.Company, PUB_JobOper.JobNum, PUB_JobOper.OprSeq, > PUB_JobOper.OpCode, PUB_JobOper.SubContract, PUB_JobOper.ActBurCost, > PUB_JobOper.ActLabCost > FROM PUB_JobOper,PUB_LaborDtl > WHERE PUB_JobOper.JobNum=PUB_LaborDtl.JobNum > and PUB_JobOper.Company = 'SNB' > and ((PUB_LaborDtl.ClockInDate) Between [dteStart] And [dteEnd]); > > > ---------------------------------------- >> Date: Wed, 4 Feb 2009 12:06:09 -0500 >> From: joe.rojas at symmetrynb.com >> To: accessd at databaseadvisors.com >> Subject: [AccessD] Help with Query >> >> Hi All, >> >> I am trying to pull data into Access from our ERP system that runs off >> of a Progress OpenEdge database. >> The problem I'm having is that the query takes a long time to >> run...around 20 mins. >> I think the problem is related to how I've designed the query and I'm >> hoping someone can point out my error. >> >> I'm connecting to OpenEdge via ODBC. I've linked to the tables I need > in >> Access. >> I've pasted the SQL for the queries below. >> The first query runs pretty quick. It pulles data from one of the > tables >> based on date range and inserts the records into a local table in >> Access. >> The second query is the one that has the problem. I created a query in >> Access that pulls data from another table in OpenEdge that has a WHERE >> clause that uses the IN statement. The IN statement uses a sub query > to >> get the distinct job numbers from the local table that was created in >> the first query. >> The sub query could return many job numbers depending on the span in > the >> date range for the first query. >> By many, I mean it could be 10, 100, 1000, or more. >> >> My guess is that the sub query could be the problem. >> When I run the query, the CPU spikes to 100% for MSACESS but the > network >> traffic indicates that it's not actually pulling data the whole time. >> >> Is there an alternate method to achieving my goal? >> >> Tables in my query that have a 'tbl' prefix are local tables. Tables >> with a 'PUB' prefix are link ODBC tables. >> >> Query 1 (runs in seconds) >> INSERT INTO tblLaborDtl ( Company, EmployeeNum, JobNum, OprSeq, >> ResourceGrpID, ScrapQty, ResourceID, ClockInDate, LaborDtlSeq, >> ScrapReasonCode ) >> SELECT PUB_LaborDtl.Company, PUB_LaborDtl.EmployeeNum, >> PUB_LaborDtl.JobNum, PUB_LaborDtl.OprSeq, PUB_LaborDtl.ResourceGrpID, >> PUB_LaborDtl.ScrapQty, PUB_LaborDtl.ResourceID, >> PUB_LaborDtl.ClockInDate, PUB_LaborDtl.LaborDtlSeq, >> PUB_LaborDtl.ScrapReasonCode >> FROM PUB_LaborDtl >> WHERE (((PUB_LaborDtl.ClockInDate) Between [dteStart] And [dteEnd])); >> >> Query 2 (take 20 mins) >> INSERT INTO tblJobOper ( Company, JobNum, OprSeq, OpCode, SubContract, >> ActBurCost, ActLabCost ) >> SELECT PUB_JobOper.Company, PUB_JobOper.JobNum, PUB_JobOper.OprSeq, >> PUB_JobOper.OpCode, PUB_JobOper.SubContract, PUB_JobOper.ActBurCost, >> PUB_JobOper.ActLabCost >> FROM PUB_JobOper >> WHERE PUB_JobOper.Company = 'SNB' AND PUB_JobOper.JobNum In (SELECT >> DISTINCT tblLaborDtl.JobNum FROM tblLaborDtl); >> >> Joe >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com > _________________________________________________________________ > Windows Live(tm): Keep your life in sync. > http://windowslive.com/explore?ocid=TXT_TAGLM_WL_t1_allup_explore_022009 From Chester_Kaup at kindermorgan.com Thu Feb 5 13:39:06 2009 From: Chester_Kaup at kindermorgan.com (Kaup, Chester) Date: Thu, 5 Feb 2009 13:39:06 -0600 Subject: [AccessD] Help with Query In-Reply-To: <498B3E91.8010609@colbyconsulting.com> References: <4989c6de.0269300a.2f60.fffff09e@mx.google.com> <5BAE0A5B5D7E414D96584521B26E6C09AA6DB3@DPYUSNBEXS1.snb.local> <5BAE0A5B5D7E414D96584521B26E6C09AA6EEF@DPYUSNBEXS1.snb.local> <498B3E91.8010609@colbyconsulting.com> Message-ID: <0B2BF8524B73A248A2F1B81BA751ED3C0642705FA7@houex1.kindermorgan.com> Just a thought but is the data in the SQL server table indexed? Also maybe the DBA of the SQL server data could build you view of just the data you need. That can be a lot quicker than joining to the entire table. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Thursday, February 05, 2009 1:31 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Help with Query Does anyone know what might be behind this slowness? I have an Access application that is required to link to data from SQL Server, and it is indeed very slow, a source of annoyance to my client. I do have to filter the data, currently using an inner join. I really do not want to just copy the data into a local MDB table though I will if that will help (hadn't thought much about doing that till now). John W. Colby www.ColbyConsulting.com Rojas, Joe wrote: > Thanks Mark! > Your suggestion leaded me to the answer. Not sure why I didn't just > filter in the query as opposed to linking to a local table. > Forest from the trees syndrome I guess. > > Joe > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Mark A Matte > Sent: Wednesday, February 04, 2009 1:49 PM > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Help with Query > > > > I have the same issue when pulling data via ODBC...I have found it is > much quicker to NOT join a local table to a linked ODBC...just my > opinion. Any reason you can't do the filtering in one SQL > statement.(see sample below) > > Good Luck, > > Mark A. Matte > > > SELECT PUB_JobOper.Company, PUB_JobOper.JobNum, PUB_JobOper.OprSeq, > PUB_JobOper.OpCode, PUB_JobOper.SubContract, PUB_JobOper.ActBurCost, > PUB_JobOper.ActLabCost > FROM PUB_JobOper,PUB_LaborDtl > WHERE PUB_JobOper.JobNum=PUB_LaborDtl.JobNum > and PUB_JobOper.Company = 'SNB' > and ((PUB_LaborDtl.ClockInDate) Between [dteStart] And [dteEnd]); > > > ---------------------------------------- >> Date: Wed, 4 Feb 2009 12:06:09 -0500 >> From: joe.rojas at symmetrynb.com >> To: accessd at databaseadvisors.com >> Subject: [AccessD] Help with Query >> >> Hi All, >> >> I am trying to pull data into Access from our ERP system that runs off >> of a Progress OpenEdge database. >> The problem I'm having is that the query takes a long time to >> run...around 20 mins. >> I think the problem is related to how I've designed the query and I'm >> hoping someone can point out my error. >> >> I'm connecting to OpenEdge via ODBC. I've linked to the tables I need > in >> Access. >> I've pasted the SQL for the queries below. >> The first query runs pretty quick. It pulles data from one of the > tables >> based on date range and inserts the records into a local table in >> Access. >> The second query is the one that has the problem. I created a query in >> Access that pulls data from another table in OpenEdge that has a WHERE >> clause that uses the IN statement. The IN statement uses a sub query > to >> get the distinct job numbers from the local table that was created in >> the first query. >> The sub query could return many job numbers depending on the span in > the >> date range for the first query. >> By many, I mean it could be 10, 100, 1000, or more. >> >> My guess is that the sub query could be the problem. >> When I run the query, the CPU spikes to 100% for MSACESS but the > network >> traffic indicates that it's not actually pulling data the whole time. >> >> Is there an alternate method to achieving my goal? >> >> Tables in my query that have a 'tbl' prefix are local tables. Tables >> with a 'PUB' prefix are link ODBC tables. >> >> Query 1 (runs in seconds) >> INSERT INTO tblLaborDtl ( Company, EmployeeNum, JobNum, OprSeq, >> ResourceGrpID, ScrapQty, ResourceID, ClockInDate, LaborDtlSeq, >> ScrapReasonCode ) >> SELECT PUB_LaborDtl.Company, PUB_LaborDtl.EmployeeNum, >> PUB_LaborDtl.JobNum, PUB_LaborDtl.OprSeq, PUB_LaborDtl.ResourceGrpID, >> PUB_LaborDtl.ScrapQty, PUB_LaborDtl.ResourceID, >> PUB_LaborDtl.ClockInDate, PUB_LaborDtl.LaborDtlSeq, >> PUB_LaborDtl.ScrapReasonCode >> FROM PUB_LaborDtl >> WHERE (((PUB_LaborDtl.ClockInDate) Between [dteStart] And [dteEnd])); >> >> Query 2 (take 20 mins) >> INSERT INTO tblJobOper ( Company, JobNum, OprSeq, OpCode, SubContract, >> ActBurCost, ActLabCost ) >> SELECT PUB_JobOper.Company, PUB_JobOper.JobNum, PUB_JobOper.OprSeq, >> PUB_JobOper.OpCode, PUB_JobOper.SubContract, PUB_JobOper.ActBurCost, >> PUB_JobOper.ActLabCost >> FROM PUB_JobOper >> WHERE PUB_JobOper.Company = 'SNB' AND PUB_JobOper.JobNum In (SELECT >> DISTINCT tblLaborDtl.JobNum FROM tblLaborDtl); >> >> Joe >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com > _________________________________________________________________ > Windows Live(tm): Keep your life in sync. > http://windowslive.com/explore?ocid=TXT_TAGLM_WL_t1_allup_explore_022009 -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Chester_Kaup at kindermorgan.com Thu Feb 5 13:40:05 2009 From: Chester_Kaup at kindermorgan.com (Kaup, Chester) Date: Thu, 5 Feb 2009 13:40:05 -0600 Subject: [AccessD] Sorting in a report In-Reply-To: <3F3F607E3DA343D7A0A23CFDAF09BD72@stevePC> References: <0B2BF8524B73A248A2F1B81BA751ED3C0642705E00@houex1.kindermorgan.com> <625E8412773C4406B673E632DC88D358@stevePC> <0B2BF8524B73A248A2F1B81BA751ED3C0642705E32@houex1.kindermorgan.com> <0D72ED2BFB7B4A469287374BCB056327@stevePC> <0B2BF8524B73A248A2F1B81BA751ED3C0642705EB7@houex1.kindermorgan.com> <3F3F607E3DA343D7A0A23CFDAF09BD72@stevePC> Message-ID: <0B2BF8524B73A248A2F1B81BA751ED3C0642705FA9@houex1.kindermorgan.com> Tried it your way and no difference. I may just have to break it up into 3 groups. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Schapel Sent: Thursday, February 05, 2009 12:49 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Sorting in a report Chester, For an expression to work in the Sorting & Grouping, you need to put the = in front, e.g. =[DayCount1000] & [WellName] Also, if one of the fields is a number, I think the result of the overall expression will be a string, so you might need to do something like: =Format([DayCount1000],"0000") & [WellName] Regards Steve -------------------------------------------------- From: "Kaup, Chester" Sent: Friday, February 06, 2009 3:28 AM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Sorting in a report > Here are the grouping and sorting criteria I used > [DayCount1000] & [WellName] Descending > [DayCount500] & [WellName] Descending > [DayCount200] & [WellName] Descending > The WellNames that had a value for DayCount1000 appeared at the top of the > report sorted by WellName. The remainder of the data appeared below sorted > by WellName. No sorting occurred on DayCount500 or DayCount200. > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Thu Feb 5 13:53:52 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Thu, 5 Feb 2009 11:53:52 -0800 Subject: [AccessD] A2007 - Programmatically Minimize Ribbon In-Reply-To: <498B3D9A.4050101@colbyconsulting.com> References: <498AE648.5745.9E8FF2@stuart.lexacorp.com.pg> <498B3D9A.4050101@colbyconsulting.com> Message-ID: You see, I knew there was a reasonable explanation. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Thursday, February 05, 2009 11:27 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon > Any ideas what's going on? Simple really, MS is DAMNED PROUD of their ribbon and is making sure that you see it! They spent several million dollars on usability studies to make sure that the ribbon was useful to power users and spent about another 10 million or so to make sure that it was truly annoying to developers, and they aren't about to let their investment slip through their fingers! John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Stuart: > > Well, dang. It doesn't work. I put Call MinimizeRibbon in the _Open event, > but the ribbon ended up maximized anyway. SO I moved it right at the end > of the _Open event on the theory that maybe some of the housekeeping > (resizing the form, maximizing the form, etc.) was affecting the ribbon. > But no soap. > > So I moved it to the _Activate event. Same result. So I put MsgBox > RibbonMinimized in the RibbonMinimized Function to see what the value > was on the call. With the Call to MinimizeRibbon in the Activate > event, it gets called 3 times. Each time the value of RibbonMinimized > is True and the ribbon is indeed minimized. > > Then right at the end of the opening process, the ribbon re-appears. > > Ctrl-F1 from the keyboard toggles the ribbon nicely. And the code > looks like it should work. And I stepped through it just to see what > it was doing. > > Any ideas what's going on? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From andy at minstersystems.co.uk Thu Feb 5 14:39:58 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Thu, 5 Feb 2009 20:39:58 -0000 Subject: [AccessD] OT Friday In-Reply-To: <498b3e75.02ab100a.5014.ffffe800@mx.google.com> Message-ID: <64E31F347F8C4C6B936E20BD3A05728F@MINSTER> Sorry, sounds like you didn't get the 'Life Of Brian' reference there, in which case that must have sounded very bizarre -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: 05 February 2009 19:31 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday Oh! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: 05 February 2009 19:23 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday You're not the messiah you're a very naughty boy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: 05 February 2009 18:55 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday Well Steve, as it is Friday in Oz but not yet here in BritLand could I ask you to post this tomorrow. I don't want to get into trouble by posting it now. Max In 1986, Peter Davies was on holiday in Kenya after graduating from Northwestern University . On a hike through the bush, he came across a certain age bull elephant standing with one leg raised in the air. The elephant seemed distressed, so Peter approached it very carefully. He got down on one knee, inspected the elephants foot, and found a large piece of wood deeply embedded in it. As carefully and as gently as he could, Peter worked the wood out with his knife, after which the elephant gingerly put down its foot. The elephant turned to face the man, and with a rather curious look on its face, stared at him for several tense moments. Peter stood frozen, thinking of nothing else but being trampled. Eventually the elephant trumpeted loudly, turned, and walked away. Peter never forgot that elephant or the events of that day. Twenty years later, Peter was walking through the Chicago Zoo with his teenage son. As they approached the elephant enclosure, one of the creatures turned and walked over to near where Peter and his son Cameron were standing. The large bull elephant stared at Peter, lifted its front foot off the ground, then put it down. The elephant did that several times then trumpeted loudly, all the while staring at the man. Remembering the encounter in 1986, Peter could not help wondering if this was the same elephant. Peter summoned up his courage, climbed over the railing, and made his way into the enclosure. He walked right up to the elephant and stared back in wonder. The elephant trumpeted again, wrapped its trunk around one of Peter legs and slammed him against the railing, killing him instantly. Probably wasn't the same effing elephant.. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Schapel Sent: 05 February 2009 18:45 To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT Friday Whereas for me, where it *is* Friday, it is so good, for once, to not feel like I must have missed something. :-) Regards Steve -------------------------------------------------- From: "Drew Wutka" Sent: Friday, February 06, 2009 5:58 AM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] OT Friday > I must admit, I'm offended by this thread, here I am waking up to > seeing an AccessD post with FRIDAY OT as the subject, and I get the > warm and fuzzy feeling that tomorrow is the weekend....... > > Only to have reality crashing in that it's still Thursday! > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Thu Feb 5 14:48:36 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 5 Feb 2009 20:48:36 -0000 Subject: [AccessD] OT Friday In-Reply-To: <64E31F347F8C4C6B936E20BD3A05728F@MINSTER> References: <498b3e75.02ab100a.5014.ffffe800@mx.google.com> <64E31F347F8C4C6B936E20BD3A05728F@MINSTER> Message-ID: <498b50a7.0b9e100a.6eb9.2ef8@mx.google.com> Aha! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: 05 February 2009 20:40 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday Sorry, sounds like you didn't get the 'Life Of Brian' reference there, in which case that must have sounded very bizarre -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: 05 February 2009 19:31 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday Oh! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: 05 February 2009 19:23 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday You're not the messiah you're a very naughty boy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: 05 February 2009 18:55 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday Well Steve, as it is Friday in Oz but not yet here in BritLand could I ask you to post this tomorrow. I don't want to get into trouble by posting it now. Max In 1986, Peter Davies was on holiday in Kenya after graduating from Northwestern University . On a hike through the bush, he came across a certain age bull elephant standing with one leg raised in the air. The elephant seemed distressed, so Peter approached it very carefully. He got down on one knee, inspected the elephants foot, and found a large piece of wood deeply embedded in it. As carefully and as gently as he could, Peter worked the wood out with his knife, after which the elephant gingerly put down its foot. The elephant turned to face the man, and with a rather curious look on its face, stared at him for several tense moments. Peter stood frozen, thinking of nothing else but being trampled. Eventually the elephant trumpeted loudly, turned, and walked away. Peter never forgot that elephant or the events of that day. Twenty years later, Peter was walking through the Chicago Zoo with his teenage son. As they approached the elephant enclosure, one of the creatures turned and walked over to near where Peter and his son Cameron were standing. The large bull elephant stared at Peter, lifted its front foot off the ground, then put it down. The elephant did that several times then trumpeted loudly, all the while staring at the man. Remembering the encounter in 1986, Peter could not help wondering if this was the same elephant. Peter summoned up his courage, climbed over the railing, and made his way into the enclosure. He walked right up to the elephant and stared back in wonder. The elephant trumpeted again, wrapped its trunk around one of Peter legs and slammed him against the railing, killing him instantly. Probably wasn't the same effing elephant.. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Schapel Sent: 05 February 2009 18:45 To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT Friday Whereas for me, where it *is* Friday, it is so good, for once, to not feel like I must have missed something. :-) Regards Steve -------------------------------------------------- From: "Drew Wutka" Sent: Friday, February 06, 2009 5:58 AM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] OT Friday > I must admit, I'm offended by this thread, here I am waking up to > seeing an AccessD post with FRIDAY OT as the subject, and I get the > warm and fuzzy feeling that tomorrow is the weekend....... > > Only to have reality crashing in that it's still Thursday! > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Thu Feb 5 14:49:53 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 5 Feb 2009 20:49:53 -0000 Subject: [AccessD] Access in Cyprus In-Reply-To: <64E31F347F8C4C6B936E20BD3A05728F@MINSTER> References: <498b3e75.02ab100a.5014.ffffe800@mx.google.com> <64E31F347F8C4C6B936E20BD3A05728F@MINSTER> Message-ID: <498b50f7.0b9e100a.6eb9.2f56@mx.google.com> Anybody got any connections with Cyprus. Contacts etc. Thanks Max From john at winhaven.net Thu Feb 5 16:22:56 2009 From: john at winhaven.net (John Bartow) Date: Thu, 5 Feb 2009 16:22:56 -0600 Subject: [AccessD] OT Friday In-Reply-To: <498ac942.02ab100a.5014.72e9@mx.google.com> References: <498B5135.24200.26ADBC@stuart.lexacorp.com.pg> <702FC80E3C7C480CA772D0D65A366215@MINSTER> <498ac942.02ab100a.5014.72e9@mx.google.com> Message-ID: <000b01c987e0$4ba246c0$e2e6d440$@net> Now this is one of the great advantages of having an international list - extended Fridays! John B. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Denis Sherman Sent: Thursday, February 05, 2009 5:11 AM To: 'Access Developers discussion and problem solving' Subject: [AccessD] OT Friday Always remember this: You don't stop laughing because you grow old, You grow old because you stop laughing! From markamatte at hotmail.com Thu Feb 5 17:12:08 2009 From: markamatte at hotmail.com (Mark A Matte) Date: Thu, 5 Feb 2009 23:12:08 +0000 Subject: [AccessD] Help with Query In-Reply-To: <498B3E91.8010609@colbyconsulting.com> References: <4989c6de.0269300a.2f60.fffff09e@mx.google.com> <5BAE0A5B5D7E414D96584521B26E6C09AA6DB3@DPYUSNBEXS1.snb.local> <5BAE0A5B5D7E414D96584521B26E6C09AA6EEF@DPYUSNBEXS1.snb.local> <498B3E91.8010609@colbyconsulting.com> Message-ID: Found this: "Heterogeneous joins between local tables and remote tables, or between remote tables in different ODBC data sources. Joins between small local tables and large remote tables, where the join column is indexed, may result in a remote index join. In a remote index join, one query for each row in the local table is sent to the server, and only the joining rows are returned." From: http://support.microsoft.com/kb/286222 Not sure that it solves anything. Any ideas? Mark> Date: Thu, 5 Feb 2009 14:31:29 -0500> From: jwcolby at colbyconsulting.com> To: accessd at databaseadvisors.com> Subject: Re: [AccessD] Help with Query> > Does anyone know what might be behind this slowness? I have an Access application that is required > to link to data from SQL Server, and it is indeed very slow, a source of annoyance to my client. I > do have to filter the data, currently using an inner join. I really do not want to just copy the > data into a local MDB table though I will if that will help (hadn't thought much about doing that > till now).> > John W. Colby> www.ColbyConsulting.com> > > Rojas, Joe wrote:> > Thanks Mark!> > Your suggestion leaded me to the answer. Not sure why I didn't just> > filter in the query as opposed to linking to a local table.> > Forest from the trees syndrome I guess.> > > > Joe> > > > -----Original Message-----> > From: accessd-bounces at databaseadvisors.com> > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Mark A Matte> > Sent: Wednesday, February 04, 2009 1:49 PM> > To: accessd at databaseadvisors.com> > Subject: Re: [AccessD] Help with Query> > > > > > > > I have the same issue when pulling data via ODBC...I have found it is> > much quicker to NOT join a local table to a linked ODBC...just my> > opinion. Any reason you can't do the filtering in one SQL> > statement.(see sample below)> > > > Good Luck,> > > > Mark A. Matte> > > > > > SELECT PUB_JobOper.Company, PUB_JobOper.JobNum, PUB_JobOper.OprSeq,> > PUB_JobOper.OpCode, PUB_JobOper.SubContract, PUB_JobOper.ActBurCost,> > PUB_JobOper.ActLabCost> > FROM PUB_JobOper,PUB_LaborDtl> > WHERE PUB_JobOper.JobNum=PUB_LaborDtl.JobNum> > and PUB_JobOper.Company = 'SNB'> > and ((PUB_LaborDtl.ClockInDate) Between [dteStart] And [dteEnd]);> > > > > > ----------------------------------------> >> Date: Wed, 4 Feb 2009 12:06:09 -0500> >> From: joe.rojas at symmetrynb.com> >> To: accessd at databaseadvisors.com> >> Subject: [AccessD] Help with Query> >>> >> Hi All,> >>> >> I am trying to pull data into Access from our ERP system that runs off> >> of a Progress OpenEdge database.> >> The problem I'm having is that the query takes a long time to> >> run...around 20 mins.> >> I think the problem is related to how I've designed the query and I'm> >> hoping someone can point out my error.> >>> >> I'm connecting to OpenEdge via ODBC. I've linked to the tables I need> > in> >> Access.> >> I've pasted the SQL for the queries below.> >> The first query runs pretty quick. It pulles data from one of the> > tables> >> based on date range and inserts the records into a local table in> >> Access.> >> The second query is the one that has the problem. I created a query in> >> Access that pulls data from another table in OpenEdge that has a WHERE> >> clause that uses the IN statement. The IN statement uses a sub query> > to> >> get the distinct job numbers from the local table that was created in> >> the first query.> >> The sub query could return many job numbers depending on the span in> > the> >> date range for the first query.> >> By many, I mean it could be 10, 100, 1000, or more.> >>> >> My guess is that the sub query could be the problem.> >> When I run the query, the CPU spikes to 100% for MSACESS but the> > network> >> traffic indicates that it's not actually pulling data the whole time.> >>> >> Is there an alternate method to achieving my goal?> >>> >> Tables in my query that have a 'tbl' prefix are local tables. Tables> >> with a 'PUB' prefix are link ODBC tables.> >>> >> Query 1 (runs in seconds)> >> INSERT INTO tblLaborDtl ( Company, EmployeeNum, JobNum, OprSeq,> >> ResourceGrpID, ScrapQty, ResourceID, ClockInDate, LaborDtlSeq,> >> ScrapReasonCode )> >> SELECT PUB_LaborDtl.Company, PUB_LaborDtl.EmployeeNum,> >> PUB_LaborDtl.JobNum, PUB_LaborDtl.OprSeq, PUB_LaborDtl.ResourceGrpID,> >> PUB_LaborDtl.ScrapQty, PUB_LaborDtl.ResourceID,> >> PUB_LaborDtl.ClockInDate, PUB_LaborDtl.LaborDtlSeq,> >> PUB_LaborDtl.ScrapReasonCode> >> FROM PUB_LaborDtl> >> WHERE (((PUB_LaborDtl.ClockInDate) Between [dteStart] And [dteEnd]));> >>> >> Query 2 (take 20 mins)> >> INSERT INTO tblJobOper ( Company, JobNum, OprSeq, OpCode, SubContract,> >> ActBurCost, ActLabCost )> >> SELECT PUB_JobOper.Company, PUB_JobOper.JobNum, PUB_JobOper.OprSeq,> >> PUB_JobOper.OpCode, PUB_JobOper.SubContract, PUB_JobOper.ActBurCost,> >> PUB_JobOper.ActLabCost> >> FROM PUB_JobOper> >> WHERE PUB_JobOper.Company = 'SNB' AND PUB_JobOper.JobNum In (SELECT> >> DISTINCT tblLaborDtl.JobNum FROM tblLaborDtl);> >>> >> Joe> >>> >> --> >> AccessD mailing list> >> AccessD at databaseadvisors.com> >> http://databaseadvisors.com/mailman/listinfo/accessd> >> Website: http://www.databaseadvisors.com> > _________________________________________________________________> > Windows Live(tm): Keep your life in sync. > > http://windowslive.com/explore?ocid=TXT_TAGLM_WL_t1_allup_explore_022009> -- > AccessD mailing list> AccessD at databaseadvisors.com> http://databaseadvisors.com/mailman/listinfo/accessd> Website: http://www.databaseadvisors.com _________________________________________________________________ Windows Live?: E-mail. Chat. Share. Get more ways to connect. http://windowslive.com/howitworks?ocid=TXT_TAGLM_WL_t2_allup_howitworks_022009 From stuart at lexacorp.com.pg Thu Feb 5 18:35:57 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Fri, 06 Feb 2009 10:35:57 +1000 Subject: [AccessD] OT Friday In-Reply-To: References: , , Message-ID: <498C128D.29650.319F160@stuart.lexacorp.com.pg> OK ,as long as your respect my sensitivities as well as the Aussies on the list and don't allow Friday OT postings when it is Saturday here for us. That means no postings from the UK after 2:00pm local time and none from the western USA/Canada after 6:00am :-) On 5 Feb 2009 at 12:19, Bryan Carbonnell wrote: > On Thu, Feb 5, 2009 at 12:11 PM, Andy Lacey wrote: > > I agree Drew. As moderator I'm going to ban such insensitive behaviour in > > future. > > As listmaster I'll back you up on that one Andy. > > Cause it JUST dawned on me what the whole issue was, even though I > read you post. > > -- > Bryan Carbonnell - carbonnb at gmail.com > Life's journey is not to arrive at the grave safely in a well > preserved body, but rather to skid in sideways, totally worn out, > shouting "What a great ride!" > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From adtp at airtelmail.in Thu Feb 5 23:00:05 2009 From: adtp at airtelmail.in (A.D.Tejpal) Date: Fri, 6 Feb 2009 10:30:05 +0530 Subject: [AccessD] Tip: Sum elapsed time and display as a time string References: Message-ID: <002f01c98818$454c7100$0485a37a@personald6374f> Gustav, That is a nice one! Thanks for kindly sharing with us. Equivalent UDF, using multiplication by 24 in lieu of DaeDiff(), could be: '=============================== Function Fn_TotElapsedTimeFormatted( _ TotElapsedTime As Single) As String ' Returns equivalent string in hh:nn:ss format ' TotElapsedTime is the sum of subtraction ' between DateTime type values. Fn_TotElapsedTimeFormatted = _ Int(TotElapsedTime * 24) & _ Format(TotElapsedTime, ":nn:ss") End Function '=============================== Best wishes, A.D. Tejpal ------------ ----- Original Message ----- From: Gustav Brock To: accessd at databaseadvisors.com Sent: Wednesday, February 04, 2009 12:57 Subject: [AccessD] Tip: Sum elapsed time and display as a time string Hi all Did you know how easy it is in a query to sum elapsed time (of date/time value) and format this as a string even when count of hours exceed 24? SELECT DateDiff("h",0,Sum([ElapsedTime])) & Format(Sum([ElapsedTime]),":nn:ss") AS ElapsedTimeTotal FROM tblElapsedTime; This will return a string like, say, 45:37:12. The trick is, of course, to count the hours from date/time value 0 (zero). Then let Format handle the minutes and seconds. /gustav From Gustav at cactus.dk Fri Feb 6 02:03:18 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Fri, 06 Feb 2009 09:03:18 +0100 Subject: [AccessD] Help with Query Message-ID: Hi John and Mark and Joe I wonder if it would help to "isolate" the ODBC table in a query and then use this query to join with the local table. And/or write the criteria to join on from the local table to a temp table at the SQL Server and then join this with the remote table in a view. /gustav >>> jwcolby at colbyconsulting.com 05-02-2009 20:31 >>> Does anyone know what might be behind this slowness? I have an Access application that is required to link to data from SQL Server, and it is indeed very slow, a source of annoyance to my client. I do have to filter the data, currently using an inner join. I really do not want to just copy the data into a local MDB table though I will if that will help (hadn't thought much about doing that till now). John W. Colby www.ColbyConsulting.com Rojas, Joe wrote: > Thanks Mark! > Your suggestion leaded me to the answer. Not sure why I didn't just > filter in the query as opposed to linking to a local table. > Forest from the trees syndrome I guess. > > Joe > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Mark A Matte > Sent: Wednesday, February 04, 2009 1:49 PM > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Help with Query > > > > I have the same issue when pulling data via ODBC...I have found it is > much quicker to NOT join a local table to a linked ODBC...just my > opinion. Any reason you can't do the filtering in one SQL > statement.(see sample below) > > Good Luck, > > Mark A. Matte > > > SELECT PUB_JobOper.Company, PUB_JobOper.JobNum, PUB_JobOper.OprSeq, > PUB_JobOper.OpCode, PUB_JobOper.SubContract, PUB_JobOper.ActBurCost, > PUB_JobOper.ActLabCost > FROM PUB_JobOper,PUB_LaborDtl > WHERE PUB_JobOper.JobNum=PUB_LaborDtl.JobNum > and PUB_JobOper.Company = 'SNB' > and ((PUB_LaborDtl.ClockInDate) Between [dteStart] And [dteEnd]); From Gustav at cactus.dk Fri Feb 6 06:25:16 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Fri, 06 Feb 2009 13:25:16 +0100 Subject: [AccessD] Dates as Rata Die Message-ID: Hi all Not a Friday joke, but did you know about the Rata Die numbering system for dates: http://en.wikipedia.org/wiki/Rata_Die However, these are quite easy to handle in Access: Public Function DateFromRataDie(ByVal lngRataDie As Long) As Date ' Converts a date as Rata Die value to its date/time value. ' Rata Die is the count of days since 0001-01-01 00:00:00 UTC ' ' Zero value of Rata Die is 0001-01-01 00:00:00 UTC ' Offset in relation to the date of zero value of VB(A) date/time value ' is the year of date/time numeric value zero. ' ' 2009-02-06. Cactus Data ApS. CPH. Const datZero As Date = #12:00:00 AM# Dim datDate As Date datDate = DateAdd("yyyy", -Year(datZero), DateAdd("d", lngRataDie, datZero)) DateFromRataDie = datDate End Function Public Function DateToRataDie(ByVal datDate As Date) As Long ' Converts a date/time value to its Rata Die value. ' Rata Die is the count of days since 0001-01-01 00:00:00 UTC ' ' Zero value of Rata Die is 0001-01-01 00:00:00 UTC ' Offset in relation to the date of zero value of VB(A) date/time value ' is the year of date/time numeric value zero. ' ' 2009-02-06. Cactus Data ApS. CPH. Const datZero As Date = #12:00:00 AM# Dim lngRataDie As Long lngRataDie = DateDiff("d", datZero, DateAdd("yyyy", Year(datZero), datDate)) DateToRataDie = lngRataDie End Function /gustav From jwcolby at colbyconsulting.com Fri Feb 6 07:23:37 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 06 Feb 2009 08:23:37 -0500 Subject: [AccessD] Help with Query In-Reply-To: References: Message-ID: <498C39D9.2030302@colbyconsulting.com> It did not help in my case. The data in the table is dirty, i.e. needs to have junk filtered out before I can use it so I use a query to perform that filter and present the resulting data to the system. I really need to spend some time on this, unfortunately the SQL Server is a dedicated server hosted locally at my client, synced to another server somewhere. I do not have access to the server directly (it is accounting / payroll stuff) and so my options are limited. My client created three views long ago and is resistant to playing around any more. Having thought a bit about this, I am thinking of just copying the filtered data into local tables, then doing periodic appends to my local tables as new data accumulates out in the SQL Server table. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John and Mark and Joe > > I wonder if it would help to "isolate" the ODBC table in a query and then use this query to join with the local table. > And/or write the criteria to join on from the local table to a temp table at the SQL Server and then join this with the remote table in a view. > > /gustav > >>>> jwcolby at colbyconsulting.com 05-02-2009 20:31 >>> > Does anyone know what might be behind this slowness? I have an Access application that is required > to link to data from SQL Server, and it is indeed very slow, a source of annoyance to my client. I > do have to filter the data, currently using an inner join. I really do not want to just copy the > data into a local MDB table though I will if that will help (hadn't thought much about doing that > till now). > > John W. Colby > www.ColbyConsulting.com > > > Rojas, Joe wrote: >> Thanks Mark! >> Your suggestion leaded me to the answer. Not sure why I didn't just >> filter in the query as opposed to linking to a local table. >> Forest from the trees syndrome I guess. >> >> Joe >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Mark A Matte >> Sent: Wednesday, February 04, 2009 1:49 PM >> To: accessd at databaseadvisors.com >> Subject: Re: [AccessD] Help with Query >> >> >> >> I have the same issue when pulling data via ODBC...I have found it is >> much quicker to NOT join a local table to a linked ODBC...just my >> opinion. Any reason you can't do the filtering in one SQL >> statement.(see sample below) >> >> Good Luck, >> >> Mark A. Matte >> >> >> SELECT PUB_JobOper.Company, PUB_JobOper.JobNum, PUB_JobOper.OprSeq, >> PUB_JobOper.OpCode, PUB_JobOper.SubContract, PUB_JobOper.ActBurCost, >> PUB_JobOper.ActLabCost >> FROM PUB_JobOper,PUB_LaborDtl >> WHERE PUB_JobOper.JobNum=PUB_LaborDtl.JobNum >> and PUB_JobOper.Company = 'SNB' >> and ((PUB_LaborDtl.ClockInDate) Between [dteStart] And [dteEnd]); > > > From max.wanadoo at gmail.com Fri Feb 6 07:45:41 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 13:45:41 -0000 Subject: [AccessD] OT Friday In-Reply-To: <498C128D.29650.319F160@stuart.lexacorp.com.pg> References: , , <498C128D.29650.319F160@stuart.lexacorp.com.pg> Message-ID: <498c3f08.01bb420a.3280.20fb@mx.google.com> Ha! Maxx -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: 06 February 2009 00:36 To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT Friday OK ,as long as your respect my sensitivities as well as the Aussies on the list and don't allow Friday OT postings when it is Saturday here for us. That means no postings from the UK after 2:00pm local time and none from the western USA/Canada after 6:00am :-) On 5 Feb 2009 at 12:19, Bryan Carbonnell wrote: > On Thu, Feb 5, 2009 at 12:11 PM, Andy Lacey wrote: > > I agree Drew. As moderator I'm going to ban such insensitive behaviour in > > future. > > As listmaster I'll back you up on that one Andy. > > Cause it JUST dawned on me what the whole issue was, even though I > read you post. > > -- > Bryan Carbonnell - carbonnb at gmail.com > Life's journey is not to arrive at the grave safely in a well > preserved body, but rather to skid in sideways, totally worn out, > shouting "What a great ride!" > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Fri Feb 6 07:47:36 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Fri, 06 Feb 2009 14:47:36 +0100 Subject: [AccessD] Help with Query Message-ID: Hi John In that case, that's what I would do: > Having thought a bit about this, I am thinking of just copying the filtered data into local tables, > then doing periodic appends to my local tables as new data accumulates out in the SQL Server table. /gustav >>> jwcolby at colbyconsulting.com 06-02-2009 14:23 >>> It did not help in my case. The data in the table is dirty, i.e. needs to have junk filtered out before I can use it so I use a query to perform that filter and present the resulting data to the system. I really need to spend some time on this, unfortunately the SQL Server is a dedicated server hosted locally at my client, synced to another server somewhere. I do not have access to the server directly (it is accounting / payroll stuff) and so my options are limited. My client created three views long ago and is resistant to playing around any more. Having thought a bit about this, I am thinking of just copying the filtered data into local tables, then doing periodic appends to my local tables as new data accumulates out in the SQL Server table. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John and Mark and Joe > > I wonder if it would help to "isolate" the ODBC table in a query and then use this query to join with the local table. > And/or write the criteria to join on from the local table to a temp table at the SQL Server and then join this with the remote table in a view. > > /gustav > >>>> jwcolby at colbyconsulting.com 05-02-2009 20:31 >>> > Does anyone know what might be behind this slowness? I have an Access application that is required > to link to data from SQL Server, and it is indeed very slow, a source of annoyance to my client. I > do have to filter the data, currently using an inner join. I really do not want to just copy the > data into a local MDB table though I will if that will help (hadn't thought much about doing that > till now). > > John W. Colby > www.ColbyConsulting.com > > > Rojas, Joe wrote: >> Thanks Mark! >> Your suggestion leaded me to the answer. Not sure why I didn't just >> filter in the query as opposed to linking to a local table. >> Forest from the trees syndrome I guess. >> >> Joe >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Mark A Matte >> Sent: Wednesday, February 04, 2009 1:49 PM >> To: accessd at databaseadvisors.com >> Subject: Re: [AccessD] Help with Query >> >> >> >> I have the same issue when pulling data via ODBC...I have found it is >> much quicker to NOT join a local table to a linked ODBC...just my >> opinion. Any reason you can't do the filtering in one SQL >> statement.(see sample below) >> >> Good Luck, >> >> Mark A. Matte >> >> >> SELECT PUB_JobOper.Company, PUB_JobOper.JobNum, PUB_JobOper.OprSeq, >> PUB_JobOper.OpCode, PUB_JobOper.SubContract, PUB_JobOper.ActBurCost, >> PUB_JobOper.ActLabCost >> FROM PUB_JobOper,PUB_LaborDtl >> WHERE PUB_JobOper.JobNum=PUB_LaborDtl.JobNum >> and PUB_JobOper.Company = 'SNB' >> and ((PUB_LaborDtl.ClockInDate) Between [dteStart] And [dteEnd]); From jwcolby at colbyconsulting.com Fri Feb 6 09:19:56 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 06 Feb 2009 10:19:56 -0500 Subject: [AccessD] To all you musicians... Message-ID: <498C551C.3000401@colbyconsulting.com> C, E-flat and G go into a bar. The bartender says, "sorry, but we don't serve minors." So E-flat leaves, and C and G have an open fifth between them. After a few drinks, the fifth is diminished and G is out flat. F comes in and tries to augment the situation, but is not sharp enough. D comes in and heads for the bathroom saying, "Excuse me. I'll just be a second." Then A comes in, but the bartender is not convinced that this relative of C is not a minor. Then the bartender notices B-flat hiding at the end of the bar and says, "Get out! You're the seventh minor I've found in this bar tonight." E-Flat comes back the next night in a three-piece suit with nicely shined shoes. The bartender says, "you're looking sharp tonight. Come on in, this could be a major development." Sure enough, E-flat soon takes off his suit and everything else, and is au natural. Eventually C sobers up and realizes in horror that he's under a rest. C is brought to trial, found guilty of contributing to the diminution of a minor, and is sentenced to 10 years of D.S. without Coda at an upscale correctional facility. -- John W. Colby www.ColbyConsulting.com From rockysmolin at bchacc.com Fri Feb 6 09:26:20 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Fri, 6 Feb 2009 07:26:20 -0800 Subject: [AccessD] Semi-OT - VM Ware Message-ID: FYI: articles on VM in the San Diego ComputorEdge http://webserver.computoredge.com/online.mvc?article=cover&issue=2706&zone=S D&src=1 http://webserver.computoredge.com/online.mvc?article=in1&issue=2706&zone=SD& src=1 Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com From Lambert.Heenan at AIG.com Fri Feb 6 09:25:52 2009 From: Lambert.Heenan at AIG.com (Heenan, Lambert) Date: Fri, 6 Feb 2009 10:25:52 -0500 Subject: [AccessD] Is it cold enough for ya? Haha... Message-ID: 65 above zero: Floridians turn on the heat. People in Indiana plant gardens. 60 above zero: Californians shiver uncontrollably. People in Indiana sunbathe. 50 above zero: Italian & English cars won't start. People in Indiana drive with the windows down. 40 above zero: Georgians don coats, thermal underwear, gloves, wool hats. People in Indiana throw on a flannel shirt. 35 above zero: New York landlords finally turn up the heat. People in Indiana have the last cookout before it gets cold. 20 above Zero: People in Miami all die. Hoosiers close the windows. Zero: Californians fly away to Mexico. People in Indiana get out their winter coats. 10 below zero: Hollywood disintegrates. The Girl Scouts in Indiana are selling cookies door to door. 20 below zero: Washington DC runs out of hot air. People in Indiana let the dogs sleep indoors. 30 below zero: Santa Claus abandons the North Pole. Hoosiers get upset because they can't start the Snow-mobile. 40 below zero: ALL atomic motion stops. People in Indiana start saying...'Cold enough fer ya?' 50 below zero: Hell freezes over. Public schools in Indiana will open 2 hours late From ssharkins at gmail.com Fri Feb 6 09:42:20 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Fri, 6 Feb 2009 10:42:20 -0500 Subject: [AccessD] Is it cold enough for ya? Haha... References: Message-ID: Are you a Hoosier? I'm in Kentucky!!! ;) Susan H. > Public schools in Indiana will open 2 hours late From Lambert.Heenan at AIG.com Fri Feb 6 09:53:21 2009 From: Lambert.Heenan at AIG.com (Heenan, Lambert) Date: Fri, 6 Feb 2009 10:53:21 -0500 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: References: Message-ID: 'fraid not. I'm in New York (only 20 degrees today), but as an ex-pat Scotsman I appreciate cold weather humor. :-) Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: Friday, February 06, 2009 10:42 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Is it cold enough for ya? Haha... Are you a Hoosier? I'm in Kentucky!!! ;) Susan H. > Public schools in Indiana will open 2 hours late -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Fri Feb 6 10:33:55 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 16:33:55 -0000 Subject: [AccessD] To all you musicians... In-Reply-To: <498C551C.3000401@colbyconsulting.com> References: <498C551C.3000401@colbyconsulting.com> Message-ID: <498c6676.17e7300a.6f37.ffffd24c@mx.google.com> Music to my ears. I NOTE he was also fined a TENOR which no doubt made him QUAVER and more than a little CROCHET. But don't FRET we have him under lock and KEY. Maxx -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 06 February 2009 15:20 To: Access Developers discussion and problem solving Subject: [AccessD] To all you musicians... C, E-flat and G go into a bar. The bartender says, "sorry, but we don't serve minors." So E-flat leaves, and C and G have an open fifth between them. After a few drinks, the fifth is diminished and G is out flat. F comes in and tries to augment the situation, but is not sharp enough. D comes in and heads for the bathroom saying, "Excuse me. I'll just be a second." Then A comes in, but the bartender is not convinced that this relative of C is not a minor. Then the bartender notices B-flat hiding at the end of the bar and says, "Get out! You're the seventh minor I've found in this bar tonight." E-Flat comes back the next night in a three-piece suit with nicely shined shoes. The bartender says, "you're looking sharp tonight. Come on in, this could be a major development." Sure enough, E-flat soon takes off his suit and everything else, and is au natural. Eventually C sobers up and realizes in horror that he's under a rest. C is brought to trial, found guilty of contributing to the diminution of a minor, and is sentenced to 10 years of D.S. without Coda at an upscale correctional facility. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From dwaters at usinternet.com Fri Feb 6 10:46:03 2009 From: dwaters at usinternet.com (Dan Waters) Date: Fri, 6 Feb 2009 10:46:03 -0600 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: References: Message-ID: <0F026D60AB994A78862A6DDDA8E5D462@danwaters> Indiana? C'mon . . . In Minnesota we only shut the windows if the wind picks up and things in the house start getting blown around. The temperature doesn't have anything to do with it. Have a warm day! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Friday, February 06, 2009 9:26 AM To: 'Access-D Email (accessd at databaseadvisors.com)' Subject: [AccessD] Is it cold enough for ya? Haha... 65 above zero: Floridians turn on the heat. People in Indiana plant gardens. 60 above zero: Californians shiver uncontrollably. People in Indiana sunbathe. 50 above zero: Italian & English cars won't start. People in Indiana drive with the windows down. 40 above zero: Georgians don coats, thermal underwear, gloves, wool hats. People in Indiana throw on a flannel shirt. 35 above zero: New York landlords finally turn up the heat. People in Indiana have the last cookout before it gets cold. 20 above Zero: People in Miami all die. Hoosiers close the windows. Zero: Californians fly away to Mexico. People in Indiana get out their winter coats. 10 below zero: Hollywood disintegrates. The Girl Scouts in Indiana are selling cookies door to door. 20 below zero: Washington DC runs out of hot air. People in Indiana let the dogs sleep indoors. 30 below zero: Santa Claus abandons the North Pole. Hoosiers get upset because they can't start the Snow-mobile. 40 below zero: ALL atomic motion stops. People in Indiana start saying...'Cold enough fer ya?' 50 below zero: Hell freezes over. Public schools in Indiana will open 2 hours late -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From EdTesiny at oasas.state.ny.us Fri Feb 6 10:46:51 2009 From: EdTesiny at oasas.state.ny.us (Tesiny, Ed) Date: Fri, 6 Feb 2009 11:46:51 -0500 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: References: Message-ID: Where in New York, Lambert? Ed Tesiny EdTesiny at oasas.state.ny.us -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Friday, February 06, 2009 10:53 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... 'fraid not. I'm in New York (only 20 degrees today), but as an ex-pat Scotsman I appreciate cold weather humor. :-) Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: Friday, February 06, 2009 10:42 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Is it cold enough for ya? Haha... Are you a Hoosier? I'm in Kentucky!!! ;) Susan H. > Public schools in Indiana will open 2 hours late -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Fri Feb 6 10:56:30 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 16:56:30 -0000 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: <0F026D60AB994A78862A6DDDA8E5D462@danwaters> References: <0F026D60AB994A78862A6DDDA8E5D462@danwaters> Message-ID: <498c6bc2.1401420a.604b.62e0@mx.google.com> > house start getting blown around House of straw eh! In Britland we make ours out of bricks and mortar. Have you not hear of The Three Little Pigs and the Big Bad Wolf? I am always amazed at what damage the wind causes folks in US of A and you often see only the chimney standing with everything else gone (via CNN or Fox TV reports etc). Why don't you folks use Bricks, concrete, metal, steel - anything more robust than wood? You even have wooden roof tiles and then wonder why it catches fire so easy - sheesh! Maxx -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: 06 February 2009 16:46 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... Indiana? C'mon . . . In Minnesota we only shut the windows if the wind picks up and things in the house start getting blown around. The temperature doesn't have anything to do with it. Have a warm day! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Friday, February 06, 2009 9:26 AM To: 'Access-D Email (accessd at databaseadvisors.com)' Subject: [AccessD] Is it cold enough for ya? Haha... 65 above zero: Floridians turn on the heat. People in Indiana plant gardens. 60 above zero: Californians shiver uncontrollably. People in Indiana sunbathe. 50 above zero: Italian & English cars won't start. People in Indiana drive with the windows down. 40 above zero: Georgians don coats, thermal underwear, gloves, wool hats. People in Indiana throw on a flannel shirt. 35 above zero: New York landlords finally turn up the heat. People in Indiana have the last cookout before it gets cold. 20 above Zero: People in Miami all die. Hoosiers close the windows. Zero: Californians fly away to Mexico. People in Indiana get out their winter coats. 10 below zero: Hollywood disintegrates. The Girl Scouts in Indiana are selling cookies door to door. 20 below zero: Washington DC runs out of hot air. People in Indiana let the dogs sleep indoors. 30 below zero: Santa Claus abandons the North Pole. Hoosiers get upset because they can't start the Snow-mobile. 40 below zero: ALL atomic motion stops. People in Indiana start saying...'Cold enough fer ya?' 50 below zero: Hell freezes over. Public schools in Indiana will open 2 hours late -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From drboz at pacbell.net Fri Feb 6 10:56:32 2009 From: drboz at pacbell.net (Don Bozarth) Date: Fri, 6 Feb 2009 08:56:32 -0800 Subject: [AccessD] To all you musicians... References: <498C551C.3000401@colbyconsulting.com> <498c6676.17e7300a.6f37.ffffd24c@mx.google.com> Message-ID: <009a01c9887b$ddfead60$6801a8c0@Don> and a demisemiquaver homiola right back at ya..... Don B. ----- Original Message ----- From: "Max Wanadoo" To: "'Access Developers discussion and problem solving'" Sent: Friday, February 06, 2009 8:33 AM Subject: Re: [AccessD] To all you musicians... > Music to my ears. I NOTE he was also fined a TENOR which no doubt made > him > QUAVER and more than a little CROCHET. > > But don't FRET we have him under lock and KEY. > > Maxx > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 06 February 2009 15:20 > To: Access Developers discussion and problem solving > Subject: [AccessD] To all you musicians... > > C, E-flat and G go into a bar. The bartender says, "sorry, > but we don't serve minors." So E-flat leaves, and C and G > have an open fifth between them. After a few drinks, the > fifth is diminished and G is out flat. F comes in and tries > to augment the situation, but is not sharp enough. > > D comes in and heads for the bathroom saying, "Excuse me. > I'll just be a second." Then A comes in, but the bartender > is not convinced that this relative of C is not a minor. > Then the bartender notices B-flat hiding at the end of the > bar and says, "Get out! You're the seventh minor I've found > in this bar tonight." > > E-Flat comes back the next night in a three-piece suit with > nicely shined shoes. The bartender says, "you're looking > sharp tonight. Come on in, this could be a major > development." Sure enough, E-flat soon takes off his suit > and everything else, and is au natural. > > Eventually C sobers up and realizes in horror that he's > under a rest. C is brought to trial, found guilty of > contributing to the diminution of a minor, and is sentenced > to 10 years of D.S. without Coda at an upscale correctional > facility. > > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From Lambert.Heenan at AIG.com Fri Feb 6 10:58:30 2009 From: Lambert.Heenan at AIG.com (Heenan, Lambert) Date: Fri, 6 Feb 2009 11:58:30 -0500 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: References: Message-ID: NY, NY (for work) and Brooklyn (for leisure). -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Tesiny, Ed Sent: Friday, February 06, 2009 11:47 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Is it cold enough for ya? Haha... Where in New York, Lambert? Ed Tesiny EdTesiny at oasas.state.ny.us -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Friday, February 06, 2009 10:53 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... 'fraid not. I'm in New York (only 20 degrees today), but as an ex-pat Scotsman I appreciate cold weather humor. :-) Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: Friday, February 06, 2009 10:42 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Is it cold enough for ya? Haha... Are you a Hoosier? I'm in Kentucky!!! ;) Susan H. > Public schools in Indiana will open 2 hours late -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Fri Feb 6 11:00:46 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 17:00:46 -0000 Subject: [AccessD] To all you musicians... In-Reply-To: <009a01c9887b$ddfead60$6801a8c0@Don> References: <498C551C.3000401@colbyconsulting.com> <498c6676.17e7300a.6f37.ffffd24c@mx.google.com> <009a01c9887b$ddfead60$6801a8c0@Don> Message-ID: <498c6cc2.120b420a.48e3.ffffb955@mx.google.com> Ouch! Maxx -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Don Bozarth Sent: 06 February 2009 16:57 To: Access Developers discussion and problem solving Subject: Re: [AccessD] To all you musicians... and a demisemiquaver homiola right back at ya..... Don B. ----- Original Message ----- From: "Max Wanadoo" To: "'Access Developers discussion and problem solving'" Sent: Friday, February 06, 2009 8:33 AM Subject: Re: [AccessD] To all you musicians... > Music to my ears. I NOTE he was also fined a TENOR which no doubt made > him > QUAVER and more than a little CROCHET. > > But don't FRET we have him under lock and KEY. > > Maxx > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 06 February 2009 15:20 > To: Access Developers discussion and problem solving > Subject: [AccessD] To all you musicians... > > C, E-flat and G go into a bar. The bartender says, "sorry, > but we don't serve minors." So E-flat leaves, and C and G > have an open fifth between them. After a few drinks, the > fifth is diminished and G is out flat. F comes in and tries > to augment the situation, but is not sharp enough. > > D comes in and heads for the bathroom saying, "Excuse me. > I'll just be a second." Then A comes in, but the bartender > is not convinced that this relative of C is not a minor. > Then the bartender notices B-flat hiding at the end of the > bar and says, "Get out! You're the seventh minor I've found > in this bar tonight." > > E-Flat comes back the next night in a three-piece suit with > nicely shined shoes. The bartender says, "you're looking > sharp tonight. Come on in, this could be a major > development." Sure enough, E-flat soon takes off his suit > and everything else, and is au natural. > > Eventually C sobers up and realizes in horror that he's > under a rest. C is brought to trial, found guilty of > contributing to the diminution of a minor, and is sentenced > to 10 years of D.S. without Coda at an upscale correctional > facility. > > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From JHewson at nciinc.com Fri Feb 6 11:07:38 2009 From: JHewson at nciinc.com (Hewson, Jim ) Date: Fri, 6 Feb 2009 11:07:38 -0600 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: <498c6bc2.1401420a.604b.62e0@mx.google.com> References: <0F026D60AB994A78862A6DDDA8E5D462@danwaters> <498c6bc2.1401420a.604b.62e0@mx.google.com> Message-ID: <7E02B06E41E5404589EDDDA2BAA1C5A83EC90B@sanex101.nciinc.com> Maxx, You don't understand, here any building that lasts longer than 50 years is a landmark. When I visited over there, I was told that if it's less than 300 years old it was new. Jim -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Friday, February 06, 2009 10:57 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... > house start getting blown around House of straw eh! In Britland we make ours out of bricks and mortar. Have you not hear of The Three Little Pigs and the Big Bad Wolf? I am always amazed at what damage the wind causes folks in US of A and you often see only the chimney standing with everything else gone (via CNN or Fox TV reports etc). Why don't you folks use Bricks, concrete, metal, steel - anything more robust than wood? You even have wooden roof tiles and then wonder why it catches fire so easy - sheesh! Maxx -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: 06 February 2009 16:46 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... Indiana? C'mon . . . In Minnesota we only shut the windows if the wind picks up and things in the house start getting blown around. The temperature doesn't have anything to do with it. Have a warm day! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Friday, February 06, 2009 9:26 AM To: 'Access-D Email (accessd at databaseadvisors.com)' Subject: [AccessD] Is it cold enough for ya? Haha... 65 above zero: Floridians turn on the heat. People in Indiana plant gardens. 60 above zero: Californians shiver uncontrollably. People in Indiana sunbathe. 50 above zero: Italian & English cars won't start. People in Indiana drive with the windows down. 40 above zero: Georgians don coats, thermal underwear, gloves, wool hats. People in Indiana throw on a flannel shirt. 35 above zero: New York landlords finally turn up the heat. People in Indiana have the last cookout before it gets cold. 20 above Zero: People in Miami all die. Hoosiers close the windows. Zero: Californians fly away to Mexico. People in Indiana get out their winter coats. 10 below zero: Hollywood disintegrates. The Girl Scouts in Indiana are selling cookies door to door. 20 below zero: Washington DC runs out of hot air. People in Indiana let the dogs sleep indoors. 30 below zero: Santa Claus abandons the North Pole. Hoosiers get upset because they can't start the Snow-mobile. 40 below zero: ALL atomic motion stops. People in Indiana start saying...'Cold enough fer ya?' 50 below zero: Hell freezes over. Public schools in Indiana will open 2 hours late -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ################################################################################ If you have received this message in error, please contact the sender immediately and be aware that the use, copying, or dissemination of this information is prohibited. This email transmission contains information from NCI Information Systems, Inc. that may be considered privileged or confidential and is intended solely for the named recipient. ################################################################################ From max.wanadoo at gmail.com Fri Feb 6 11:12:01 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 17:12:01 -0000 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: References: Message-ID: <498c6f66.01a8420a.1b54.ffff9c77@mx.google.com> I wish I had of know you were a Scot, Lambert. I love the Scots. Great people with great hearts great sense of humour and great passion. Recently saw Braveheart and cried for William Wallace. My best mate Rob is a Scotsman and he cries whenever he hears the pipes, Flower of Scotland or a lament or too many drams (in his case that is a lot of drams - ha!). Here is something for yeese! Maxx An American decided to write a book about famous churches around the world. He bought a plane ticket and took a trip to Orlando , thinking that he would start by working his way across the USA from South to North . On his first day he was inside a church taking photographs when he noticed a golden telephone mounted on the wall with a sign that read '$10,000 per call' . The American, being intrigued, asked a priest who was strolling by what the telephone was used for . The priest replied that it was a direct line to heaven and that for $10,000 you could talk to God . The American thanked the priest and went along his way . Next stop was in Atlanta . There, at a very large cathedral, he saw the same looking golden telephone with the same sign under it. He wondered if this was the same kind of telephone he saw in Orlando and he asked a nearby nun what its purpose was . She told him that it was a direct line to heaven and that for $10,000 he could talk to God . 'O.K., thank you,' said the American . He then travelled all across America , Africa, England , Japan , New Zealand . In every church he saw the same looking golden telephone with the same '$US10,000 per call' sign under it. . The American decided to travel to Scotland to see if Scots had the same phone . He arrived in Scotland and again, in the first church he entered, there was the same looking golden telephone, but this time the sign under it read '40 pence per call.' The American was surprised so he asked the priest about the sign . 'Father, I've travelled all over the world and I've seen this same golden telephone in many churches . I'm told that it is a direct line to Heaven, but in all of them price was $10,000 per call . Why is it so cheap here?' The priest smiled and answered, 'You're in Scotland now, son - it's a local call' . If you are proud to be a Scot pass this on! Or proud to know one! ----------------------------------------------- From max.wanadoo at gmail.com Fri Feb 6 11:14:21 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 17:14:21 -0000 Subject: [AccessD] OT: Aussie Day In-Reply-To: <18EBFDB9D9784D1D99839599E4C55993@XPS> References: <498AE648.5745.9E8FF2@stuart.lexacorp.com.pg> <498AFDBF.8060807@colbyconsulting.com> <42309DCB27A9474AB2A824D3B8CC1DAD@HAL9005> <18EBFDB9D9784D1D99839599E4C55993@XPS> Message-ID: <498c6ff0.07a6420a.5fbe.6007@mx.google.com> Aussie Day coming up. Good on yer boys - have a great one. Wish I could post a pps file on this site. I have a great one which the Oz would love. Maxx -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman Sent: 05 February 2009 15:38 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon << Why would the ribbon be exempted from programmatic manipulation. Why no Application.Ribbon. Or a DoCmd.Ribbon?>> That's because despite any overtures made, Microsoft does not consider Access to be a professional development tool; user features first and foremost always. Development features are always secondary. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Thursday, February 05, 2009 10:21 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon Agree. In A2003 I never saw anything that could be done through the toolbars or otherwise, that could not be done in VBA using one or another object model. This seems to be a real basic difference in 2007. Why would the ribbon be exempted from programmatic manipulation. Why no Application.Ribbon. Or a DoCmd.Ribbon? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Thursday, February 05, 2009 6:55 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon All of this to get rid of something that should be directly programmatically manipulatable. John W. Colby www.ColbyConsulting.com William Hindman wrote: > "SendKeys"????????? > > ...shakes head ...returns to A2K3 :( > > ...sorry Stu, just couldn't help myself :) > > William > > -------------------------------------------------- > From: "Stuart McLachlan" > Sent: Wednesday, February 04, 2009 10:14 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon > >> Rocky! >> >> This was answered two months ago when you asked about "turning off >> the ribbons programmatically" >> >> Here's what I posted then: >> My Height was slightly different to those in the link, probably >> because of different screen resolutions, fonts etc but it looks like >> it will always be above/below 100 so this should work anywhere. It >> certainly works for me: >> >> Function RibbonMinimized() As Boolean RibbonMinimized = >> Application.CommandBars("Ribbon").Height < 100 End Function >> >> The following four functions give you full control over the Ribbon >> :-) >> >> Function HideRibbon() >> DoCmd.ShowToolbar "Ribbon", acToolbarNo End Function >> >> Function ShowRibbon() >> DoCmd.ShowToolbar "Ribbon", acToolbarYes End Function >> >> Function MinimizeRibbon() >> If Not RibbonMinimized Then SendKeys "^{F1}" >> End If >> End Function >> >> Function MaximizeRibbon() >> If RibbonMinimized Then SendKeys "^{F1}" >> End If >> End Function >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Fri Feb 6 11:17:31 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 17:17:31 -0000 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: <7E02B06E41E5404589EDDDA2BAA1C5A83EC90B@sanex101.nciinc.com> References: <0F026D60AB994A78862A6DDDA8E5D462@danwaters> <498c6bc2.1401420a.604b.62e0@mx.google.com> <7E02B06E41E5404589EDDDA2BAA1C5A83EC90B@sanex101.nciinc.com> Message-ID: <498c70b1.04bc420a.2af6.5ef5@mx.google.com> Hmm. Probably accounts for the fact I didn't see many landmarks when I was last over. What I did see was tons of friendly faces - great people - great country - shit buildings! Maxx -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Hewson, Jim Sent: 06 February 2009 17:08 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Is it cold enough for ya? Haha... Maxx, You don't understand, here any building that lasts longer than 50 years is a landmark. When I visited over there, I was told that if it's less than 300 years old it was new. Jim -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Friday, February 06, 2009 10:57 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... > house start getting blown around House of straw eh! In Britland we make ours out of bricks and mortar. Have you not hear of The Three Little Pigs and the Big Bad Wolf? I am always amazed at what damage the wind causes folks in US of A and you often see only the chimney standing with everything else gone (via CNN or Fox TV reports etc). Why don't you folks use Bricks, concrete, metal, steel - anything more robust than wood? You even have wooden roof tiles and then wonder why it catches fire so easy - sheesh! Maxx -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: 06 February 2009 16:46 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... Indiana? C'mon . . . In Minnesota we only shut the windows if the wind picks up and things in the house start getting blown around. The temperature doesn't have anything to do with it. Have a warm day! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Friday, February 06, 2009 9:26 AM To: 'Access-D Email (accessd at databaseadvisors.com)' Subject: [AccessD] Is it cold enough for ya? Haha... 65 above zero: Floridians turn on the heat. People in Indiana plant gardens. 60 above zero: Californians shiver uncontrollably. People in Indiana sunbathe. 50 above zero: Italian & English cars won't start. People in Indiana drive with the windows down. 40 above zero: Georgians don coats, thermal underwear, gloves, wool hats. People in Indiana throw on a flannel shirt. 35 above zero: New York landlords finally turn up the heat. People in Indiana have the last cookout before it gets cold. 20 above Zero: People in Miami all die. Hoosiers close the windows. Zero: Californians fly away to Mexico. People in Indiana get out their winter coats. 10 below zero: Hollywood disintegrates. The Girl Scouts in Indiana are selling cookies door to door. 20 below zero: Washington DC runs out of hot air. People in Indiana let the dogs sleep indoors. 30 below zero: Santa Claus abandons the North Pole. Hoosiers get upset because they can't start the Snow-mobile. 40 below zero: ALL atomic motion stops. People in Indiana start saying...'Cold enough fer ya?' 50 below zero: Hell freezes over. Public schools in Indiana will open 2 hours late -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ############################################################################ #### If you have received this message in error, please contact the sender immediately and be aware that the use, copying, or dissemination of this information is prohibited. This email transmission contains information from NCI Information Systems, Inc. that may be considered privileged or confidential and is intended solely for the named recipient. ############################################################################ #### -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Fri Feb 6 11:41:09 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 06 Feb 2009 12:41:09 -0500 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: <498c70b1.04bc420a.2af6.5ef5@mx.google.com> References: <0F026D60AB994A78862A6DDDA8E5D462@danwaters> <498c6bc2.1401420a.604b.62e0@mx.google.com> <7E02B06E41E5404589EDDDA2BAA1C5A83EC90B@sanex101.nciinc.com> <498c70b1.04bc420a.2af6.5ef5@mx.google.com> Message-ID: <498C7635.2060300@colbyconsulting.com> What you find is that people use the building materials that are available to them. When the US was growing up wood was everywhere and so it was cheap and available. That is now changing as we have logged our forests to death (literally). Often times places like Gb and Ireland had lots of stone, but little wood. Thus they built stone buildings. Many places in the US do not have much stone. Those that did, like the northeast, did build a lot of stone buildings. The great planes have very deep topsoil and flood planes from the rivers but little stone. They did not have forests either, so they built sod houses, which is simply digging square bricks of soil and stacking them up around the resulting pit that you dug the sod out of. Brick requires a specific clay type of soil and so brick houses tended to be built where clay is available, but brick also requires baking so you usually find brick buildings where there is clay and ample fuel to fire the bricks. It is a little easier in modern times to build with what you want rather than what is available because transportation is so cheap. However Americans are (by and large) familiar with wood, and it is very easy to build with so they still use it. We tend to throw up entire square mile developments of housing and wood facilitates that. Try and throw up a square mile of stone houses, in a place like Florida (pure sand), not a trivial task. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Hmm. Probably accounts for the fact I didn't see many landmarks when I was > last over. > > What I did see was tons of friendly faces - great people - great country - > shit buildings! > > Maxx > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Hewson, Jim > Sent: 06 February 2009 17:08 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Is it cold enough for ya? Haha... > > Maxx, > You don't understand, here any building that lasts longer than 50 years > is a landmark. > When I visited over there, I was told that if it's less than 300 years > old it was new. > > Jim > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Friday, February 06, 2009 10:57 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Is it cold enough for ya? Haha... > >> house start getting blown around > > House of straw eh! > > In Britland we make ours out of bricks and mortar. > > Have you not hear of The Three Little Pigs and the Big Bad Wolf? > > I am always amazed at what damage the wind causes folks in US of A and > you > often see only the chimney standing with everything else gone (via CNN > or > Fox TV reports etc). Why don't you folks use Bricks, concrete, metal, > steel > - anything more robust than wood? You even have wooden roof tiles and > then > wonder why it catches fire so easy - sheesh! > > Maxx > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters > Sent: 06 February 2009 16:46 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Is it cold enough for ya? Haha... > > Indiana? C'mon . . . > > In Minnesota we only shut the windows if the wind picks up and things in > the > house start getting blown around. The temperature doesn't have anything > to > do with it. > > Have a warm day! > Dan > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, > Lambert > Sent: Friday, February 06, 2009 9:26 AM > To: 'Access-D Email (accessd at databaseadvisors.com)' > Subject: [AccessD] Is it cold enough for ya? Haha... > > 65 above zero: > > Floridians turn on the heat. > > People in Indiana plant gardens. > > > > > > 60 above zero: > > Californians shiver uncontrollably. > > People in Indiana sunbathe. > > > > > > 50 above zero: > > Italian & English cars won't start. > > People in Indiana drive with the windows down. > > > > > > 40 above zero: > > Georgians don coats, thermal underwear, gloves, wool hats. > > People in Indiana throw on a flannel shirt. > > > > > > 35 above zero: > > New York landlords finally turn up the heat. > > People in Indiana have the last cookout before it gets cold. > > > > > > 20 above Zero: > > People in Miami all die. > > Hoosiers close the windows. > > > > > > Zero: > > Californians fly away to Mexico. > > People in Indiana get out their winter coats. > > > > > > 10 below zero: > > Hollywood disintegrates. > > The Girl Scouts in Indiana are selling cookies door to door. > > > > > > 20 below zero: > > Washington DC runs out of hot air. > > People in Indiana let the dogs sleep indoors. > > > > > > 30 below zero: > > Santa Claus abandons the North Pole. > > Hoosiers get upset because they can't start the Snow-mobile. > > > > > > 40 below zero: > > ALL atomic motion stops. > > People in Indiana start saying...'Cold enough fer ya?' > > > > > > 50 below zero: > > Hell freezes over. > > Public schools in Indiana will open 2 hours late > > > > > > > From max.wanadoo at gmail.com Fri Feb 6 11:41:50 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 17:41:50 -0000 Subject: [AccessD] OT:Friday Chuckles In-Reply-To: References: Message-ID: <498c7663.1783420a.701f.ffffb2da@mx.google.com> CHUCKLES FOR MATURE COUPLES AND OTHERS ..... My husband and I divorced over religious differences. He thought he was God and I didn't. ---------------------------------------------------------------------- Marriage is a three-ring circus: Engagement ring, wedding ring and suffering. ---------------------------------------------------------------------- For Sale : Wedding dress, size 8. Worn once by mistake. --------------------------------------------------------------------- There are two times when a man doesn't understand a woman: Before marriage and after marriage. ---------------------------------------------------------------------- Why were hurricanes usually named after women? Because when they arrive, they're wet and wild, but when they go, they take your house and car. ---------------------------------------------------------------------- The woman applying for a job in a Florida lemon grove seemed way too qualified for the job. "Look Miss," said the foreman, "have you any actual experience in picking lemons?" "Well, as a matter if fact, yes!" she replied.? "I've been divorced three times." ------------------------------------------------------------------- An old man goes to the Wizard to ask him if he can remove a curse he has been living with for the last 40 years. The Wizard says, "Maybe, but you will have to tell me the exact words that were used to put the curse on you." The old man says without hesitation, "I now pronounce you man and wife." ------------------------------------------------------------------- I was in the express lane at the store quietly fuming. Completely ignoring the sign, the woman ahead of me had slipped into the check-out line pushing a trolley piled high with groceries. Imagine my delight when the cashier beckoned the woman to come forward looked at the trolley and asked sweetly, "So which six items would you like to buy?" Wouldn't it be great if that happened more often? ------------------------------------------------------------------- Because they had no reservations at a busy restaurant, my elderly neighbour and his wife were told there would be a 45-minute wait for a table. "Young man, we're both 90 years old," the husband said . "We may not have 45 minutes." They were seated immediately. ------------------------------------------------------------------- All eyes were on the radiant bride as her father escorted her down the aisle. They reached the altar and the waiting groom; the bride kissed her father and placed something in his hand. The guests in the front pews responded with ripples of laughter. Even the priest smiled broadly. As her father gave her away in marriage, the bride gave him back his credit card. ------------------------------------------------------------------- Women and cats will do as they please , men and dogs should relax and get used to the idea. --------------------------------------------------------------- --------- Three friends from the local congregation were asked, "When you're in your coffin and friends and congregation members are mourning over you, what would you like them to say?" Artie said: "I would like them to say I was a wonderful husband, a great Father and a man with many friends." Eugene commented: "I would like them to say I was a wonderful teacher and servant of God who made a huge difference in people's lives." Al said: "I'd like them to say, "Look, he's moving!" ------------------------------------------------------------------- Smith climbs to the top of Mt. Sinai to get close enough to talk to God. Looking up, he asks the Lord... "God, what does a million years mean to you?" The Lord replies, "A minute." Smith asks, "And what does a million pounds mean to you?" The Lord replies, "A penny." Smith asks, "Can I have a penny?" The Lord replies, "In a minute." ------------------------------------------------------------------- A man goes to a shrink and says, "Doctor, my wife is unfaithful to me. Every evening, she goes to Larry's bar and picks up men. In fact, she sleeps with anybody who asks her! I'm going crazy. What do you think I should do?" "Relax," says the Doctor, "take a deep breath and calm down. Now, tell me, exactly where is Larry's bar?" ------------------------------------------------------------------- Dave was on his deathbed and gasped pitifully. "Give me one last request, dear," he said. "Of course, Dave," his wife said softly. "Six months after I die," he said, "I want you to marry Bob." "But I thought you hated Bob," she said. With his last breath Dave said, "I do!" ---------------------------------------------------------------------- A man goes to see the Rabbi. "Rabbi, something terrible is happening and I have to talk to you about it." The Rabbi asked, "What's wrong?" The man replied, "My wife is poisoning me." The Rabbi, very surprised by this, asks, "How can that be?" The man then pleads, "I'm telling you, I'm certain she's poisoning me, what should I do?" The Rabbi then offers, "Tell you what. Let me talk to her, I'll see what I can find out and I'll let you know." A week later the Rabbi calls the man and says, "Well, I spoke to your wife. I spoke to her on the phone for three hours. You want my advice?" The man said yes and the Rabbi replied, "Take the poison." From erbachs at gmail.com Fri Feb 6 11:43:09 2009 From: erbachs at gmail.com (Steve Erbach) Date: Fri, 6 Feb 2009 11:43:09 -0600 Subject: [AccessD] OT: A Friday favor Message-ID: <39cb22f30902060943k645c7fc1o3990b97da891324e@mail.gmail.com> Dear Group, I've sent this appeal to the dba-OT group and they responded magnificently. I apologize if you've seen this already as an OT member, but I hope you won't mind since I waited until AccessD OT Friday to ask. I'm running for the 3rd District Aldermanic position in Neenah, WI. For better or worse, I've decided to devote some time to a blog (http://www.NeenahPolitics.com) dealing with politics in my city. There've been fireworks recently (http://www.neenahpolitics.com/Home/tabid/171/EntryID/114/Default.aspx), so you may not find reading about some puddle-jump town in Wisconsin so boring. There is a registered user stat on the home page. When I asked the OT-ites to register at the site there was a grand total of 3 registered users, two of them being myself and the Admin account, also myself. After just 48 hours, that number had jumped up to 46, of which about half came from OT! My thought is that when the voters in my district visit my page for Neenah info, they'll see a sizable number of registered users...people who took the time to create a user name and password. I THINK that'll leave a favorable impression; i.e., that the information has value and that I've actually got something cogent and coherent to say. Would you all mind registering at www.NeenahPolitics.com? You just need to enter: * a user name * your first and last names (stay anonymous if you wish) * a display name * a password There, of course, is a profile page you can edit, but don't bother if you don't feel like it. There are two Canadians, two Germans, and a Brit already signed up. I would very much appreciate it if you could sign up, too. Thank you, Steve Erbach Neenah, WI, USA http://www.NeenahPolitics.com http://www.TheTownCrank.com P.S., My opponent for the position is a former Neenah Public Works Director. The newest viaduct built in town was named after him! If you drive west on Cecil St. over the new bridge, you'll see his first "yard sign": "Timothy Hamblin Bridge". I have my work cut out for me! From dwaters at usinternet.com Fri Feb 6 11:43:49 2009 From: dwaters at usinternet.com (Dan Waters) Date: Fri, 6 Feb 2009 11:43:49 -0600 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: <498c6bc2.1401420a.604b.62e0@mx.google.com> References: <0F026D60AB994A78862A6DDDA8E5D462@danwaters> <498c6bc2.1401420a.604b.62e0@mx.google.com> Message-ID: In Minnesota, sooner or later it all gets hit by a tornado. And even if you had a solid steel box for a house, it will still get picked up and carried a Km or so, and badly dented when it drops back down to the ground. That Wizard of Oz stuff is a Good day! So, we build to survive for a while, and pay insurance for when it doesn't. Also in Minnesota, there are no wooden roof tiles - wouldn't last for a single winter! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Friday, February 06, 2009 10:57 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... > house start getting blown around House of straw eh! In Britland we make ours out of bricks and mortar. Have you not hear of The Three Little Pigs and the Big Bad Wolf? I am always amazed at what damage the wind causes folks in US of A and you often see only the chimney standing with everything else gone (via CNN or Fox TV reports etc). Why don't you folks use Bricks, concrete, metal, steel - anything more robust than wood? You even have wooden roof tiles and then wonder why it catches fire so easy - sheesh! Maxx -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: 06 February 2009 16:46 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... Indiana? C'mon . . . In Minnesota we only shut the windows if the wind picks up and things in the house start getting blown around. The temperature doesn't have anything to do with it. Have a warm day! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Friday, February 06, 2009 9:26 AM To: 'Access-D Email (accessd at databaseadvisors.com)' Subject: [AccessD] Is it cold enough for ya? Haha... 65 above zero: Floridians turn on the heat. People in Indiana plant gardens. 60 above zero: Californians shiver uncontrollably. People in Indiana sunbathe. 50 above zero: Italian & English cars won't start. People in Indiana drive with the windows down. 40 above zero: Georgians don coats, thermal underwear, gloves, wool hats. People in Indiana throw on a flannel shirt. 35 above zero: New York landlords finally turn up the heat. People in Indiana have the last cookout before it gets cold. 20 above Zero: People in Miami all die. Hoosiers close the windows. Zero: Californians fly away to Mexico. People in Indiana get out their winter coats. 10 below zero: Hollywood disintegrates. The Girl Scouts in Indiana are selling cookies door to door. 20 below zero: Washington DC runs out of hot air. People in Indiana let the dogs sleep indoors. 30 below zero: Santa Claus abandons the North Pole. Hoosiers get upset because they can't start the Snow-mobile. 40 below zero: ALL atomic motion stops. People in Indiana start saying...'Cold enough fer ya?' 50 below zero: Hell freezes over. Public schools in Indiana will open 2 hours late -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Fri Feb 6 11:46:09 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 17:46:09 -0000 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: <498C7635.2060300@colbyconsulting.com> References: <0F026D60AB994A78862A6DDDA8E5D462@danwaters> <498c6bc2.1401420a.604b.62e0@mx.google.com> <7E02B06E41E5404589EDDDA2BAA1C5A83EC90B@sanex101.nciinc.com> <498c70b1.04bc420a.2af6.5ef5@mx.google.com> <498C7635.2060300@colbyconsulting.com> Message-ID: <498c7765.287c420a.2749.62c1@mx.google.com> Gulp! Afternoon John. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 06 February 2009 17:41 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Is it cold enough for ya? Haha... What you find is that people use the building materials that are available to them. When the US was growing up wood was everywhere and so it was cheap and available. That is now changing as we have logged our forests to death (literally). Often times places like Gb and Ireland had lots of stone, but little wood. Thus they built stone buildings. Many places in the US do not have much stone. Those that did, like the northeast, did build a lot of stone buildings. The great planes have very deep topsoil and flood planes from the rivers but little stone. They did not have forests either, so they built sod houses, which is simply digging square bricks of soil and stacking them up around the resulting pit that you dug the sod out of. Brick requires a specific clay type of soil and so brick houses tended to be built where clay is available, but brick also requires baking so you usually find brick buildings where there is clay and ample fuel to fire the bricks. It is a little easier in modern times to build with what you want rather than what is available because transportation is so cheap. However Americans are (by and large) familiar with wood, and it is very easy to build with so they still use it. We tend to throw up entire square mile developments of housing and wood facilitates that. Try and throw up a square mile of stone houses, in a place like Florida (pure sand), not a trivial task. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Hmm. Probably accounts for the fact I didn't see many landmarks when I was > last over. > > What I did see was tons of friendly faces - great people - great country - > shit buildings! > > Maxx > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Hewson, Jim > Sent: 06 February 2009 17:08 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Is it cold enough for ya? Haha... > > Maxx, > You don't understand, here any building that lasts longer than 50 years > is a landmark. > When I visited over there, I was told that if it's less than 300 years > old it was new. > > Jim > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Friday, February 06, 2009 10:57 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Is it cold enough for ya? Haha... > >> house start getting blown around > > House of straw eh! > > In Britland we make ours out of bricks and mortar. > > Have you not hear of The Three Little Pigs and the Big Bad Wolf? > > I am always amazed at what damage the wind causes folks in US of A and > you > often see only the chimney standing with everything else gone (via CNN > or > Fox TV reports etc). Why don't you folks use Bricks, concrete, metal, > steel > - anything more robust than wood? You even have wooden roof tiles and > then > wonder why it catches fire so easy - sheesh! > > Maxx > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters > Sent: 06 February 2009 16:46 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Is it cold enough for ya? Haha... > > Indiana? C'mon . . . > > In Minnesota we only shut the windows if the wind picks up and things in > the > house start getting blown around. The temperature doesn't have anything > to > do with it. > > Have a warm day! > Dan > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, > Lambert > Sent: Friday, February 06, 2009 9:26 AM > To: 'Access-D Email (accessd at databaseadvisors.com)' > Subject: [AccessD] Is it cold enough for ya? Haha... > > 65 above zero: > > Floridians turn on the heat. > > People in Indiana plant gardens. > > > > > > 60 above zero: > > Californians shiver uncontrollably. > > People in Indiana sunbathe. > > > > > > 50 above zero: > > Italian & English cars won't start. > > People in Indiana drive with the windows down. > > > > > > 40 above zero: > > Georgians don coats, thermal underwear, gloves, wool hats. > > People in Indiana throw on a flannel shirt. > > > > > > 35 above zero: > > New York landlords finally turn up the heat. > > People in Indiana have the last cookout before it gets cold. > > > > > > 20 above Zero: > > People in Miami all die. > > Hoosiers close the windows. > > > > > > Zero: > > Californians fly away to Mexico. > > People in Indiana get out their winter coats. > > > > > > 10 below zero: > > Hollywood disintegrates. > > The Girl Scouts in Indiana are selling cookies door to door. > > > > > > 20 below zero: > > Washington DC runs out of hot air. > > People in Indiana let the dogs sleep indoors. > > > > > > 30 below zero: > > Santa Claus abandons the North Pole. > > Hoosiers get upset because they can't start the Snow-mobile. > > > > > > 40 below zero: > > ALL atomic motion stops. > > People in Indiana start saying...'Cold enough fer ya?' > > > > > > 50 below zero: > > Hell freezes over. > > Public schools in Indiana will open 2 hours late > > > > > > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From erbachs at gmail.com Fri Feb 6 11:49:42 2009 From: erbachs at gmail.com (Steve Erbach) Date: Fri, 6 Feb 2009 11:49:42 -0600 Subject: [AccessD] OT:Friday Chuckles In-Reply-To: <498c7663.1783420a.701f.ffffb2da@mx.google.com> References: <498c7663.1783420a.701f.ffffb2da@mx.google.com> Message-ID: <39cb22f30902060949j183f0da1pe1b7e17531f9d610@mail.gmail.com> Max, These are excellent! Old jokes are the best jokes! Steve Erbach Neenah, WI -- Regards, Steve Erbach Scientific Marketing Neenah, WI www.swerbach.com Security Page: www.swerbach.com/security From max.wanadoo at gmail.com Fri Feb 6 11:54:06 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 17:54:06 -0000 Subject: [AccessD] OT: A Friday favor In-Reply-To: <39cb22f30902060943k645c7fc1o3990b97da891324e@mail.gmail.com> References: <39cb22f30902060943k645c7fc1o3990b97da891324e@mail.gmail.com> Message-ID: <498c7946.1ae7300a.52c7.02dd@mx.google.com> OK, I have done that for you. Now, how do I register for Jake the Rooster? Seems a great guy! Maxx -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Erbach Sent: 06 February 2009 17:43 To: Access Developers discussion and problem solving Subject: [AccessD] OT: A Friday favor Dear Group, I've sent this appeal to the dba-OT group and they responded magnificently. I apologize if you've seen this already as an OT member, but I hope you won't mind since I waited until AccessD OT Friday to ask. I'm running for the 3rd District Aldermanic position in Neenah, WI. For better or worse, I've decided to devote some time to a blog (http://www.NeenahPolitics.com) dealing with politics in my city. There've been fireworks recently (http://www.neenahpolitics.com/Home/tabid/171/EntryID/114/Default.aspx), so you may not find reading about some puddle-jump town in Wisconsin so boring. There is a registered user stat on the home page. When I asked the OT-ites to register at the site there was a grand total of 3 registered users, two of them being myself and the Admin account, also myself. After just 48 hours, that number had jumped up to 46, of which about half came from OT! My thought is that when the voters in my district visit my page for Neenah info, they'll see a sizable number of registered users...people who took the time to create a user name and password. I THINK that'll leave a favorable impression; i.e., that the information has value and that I've actually got something cogent and coherent to say. Would you all mind registering at www.NeenahPolitics.com? You just need to enter: * a user name * your first and last names (stay anonymous if you wish) * a display name * a password There, of course, is a profile page you can edit, but don't bother if you don't feel like it. There are two Canadians, two Germans, and a Brit already signed up. I would very much appreciate it if you could sign up, too. Thank you, Steve Erbach Neenah, WI, USA http://www.NeenahPolitics.com http://www.TheTownCrank.com P.S., My opponent for the position is a former Neenah Public Works Director. The newest viaduct built in town was named after him! If you drive west on Cecil St. over the new bridge, you'll see his first "yard sign": "Timothy Hamblin Bridge". I have my work cut out for me! -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Fri Feb 6 11:58:37 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 17:58:37 -0000 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: References: <0F026D60AB994A78862A6DDDA8E5D462@danwaters> <498c6bc2.1401420a.604b.62e0@mx.google.com> Message-ID: <498c7a51.07aa420a.2649.ffffba75@mx.google.com> OK, here is what you do.. 1. Dig big deep hole. 2. Make big solid metal box with windows and doors 3. Put said box in deep hole 4. Cover with heap plenty dirt topped with concrete plinth 2 feet deep. 5. Dig channels from surface to window and door openings. 6. Line channels with steel. 7. laugh at the building flying overhead during a tornado strike. 8. Patent the design. 9. Makes heaps of money - donate it to AccessD Maxx Sheesh - do I have to solve everybody's problems!! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: 06 February 2009 17:44 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... In Minnesota, sooner or later it all gets hit by a tornado. And even if you had a solid steel box for a house, it will still get picked up and carried a Km or so, and badly dented when it drops back down to the ground. That Wizard of Oz stuff is a Good day! So, we build to survive for a while, and pay insurance for when it doesn't. Also in Minnesota, there are no wooden roof tiles - wouldn't last for a single winter! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Friday, February 06, 2009 10:57 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... > house start getting blown around House of straw eh! In Britland we make ours out of bricks and mortar. Have you not hear of The Three Little Pigs and the Big Bad Wolf? I am always amazed at what damage the wind causes folks in US of A and you often see only the chimney standing with everything else gone (via CNN or Fox TV reports etc). Why don't you folks use Bricks, concrete, metal, steel - anything more robust than wood? You even have wooden roof tiles and then wonder why it catches fire so easy - sheesh! Maxx -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: 06 February 2009 16:46 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... Indiana? C'mon . . . In Minnesota we only shut the windows if the wind picks up and things in the house start getting blown around. The temperature doesn't have anything to do with it. Have a warm day! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Friday, February 06, 2009 9:26 AM To: 'Access-D Email (accessd at databaseadvisors.com)' Subject: [AccessD] Is it cold enough for ya? Haha... 65 above zero: Floridians turn on the heat. People in Indiana plant gardens. 60 above zero: Californians shiver uncontrollably. People in Indiana sunbathe. 50 above zero: Italian & English cars won't start. People in Indiana drive with the windows down. 40 above zero: Georgians don coats, thermal underwear, gloves, wool hats. People in Indiana throw on a flannel shirt. 35 above zero: New York landlords finally turn up the heat. People in Indiana have the last cookout before it gets cold. 20 above Zero: People in Miami all die. Hoosiers close the windows. Zero: Californians fly away to Mexico. People in Indiana get out their winter coats. 10 below zero: Hollywood disintegrates. The Girl Scouts in Indiana are selling cookies door to door. 20 below zero: Washington DC runs out of hot air. People in Indiana let the dogs sleep indoors. 30 below zero: Santa Claus abandons the North Pole. Hoosiers get upset because they can't start the Snow-mobile. 40 below zero: ALL atomic motion stops. People in Indiana start saying...'Cold enough fer ya?' 50 below zero: Hell freezes over. Public schools in Indiana will open 2 hours late -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Fri Feb 6 12:03:57 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 06 Feb 2009 13:03:57 -0500 Subject: [AccessD] OT: A Friday favor In-Reply-To: <39cb22f30902060943k645c7fc1o3990b97da891324e@mail.gmail.com> References: <39cb22f30902060943k645c7fc1o3990b97da891324e@mail.gmail.com> Message-ID: <498C7B8D.3020104@colbyconsulting.com> Very nice DotNetNuke site! ;-) John W. Colby www.ColbyConsulting.com Steve Erbach wrote: > Dear Group, > > I've sent this appeal to the dba-OT group and they responded > magnificently. I apologize if you've seen this already as an OT > member, but I hope you won't mind since I waited until AccessD OT > Friday to ask. > > I'm running for the 3rd District Aldermanic position in Neenah, WI. > For better or worse, I've decided to devote some time to a blog > (http://www.NeenahPolitics.com) dealing with politics in my city. > There've been fireworks recently > (http://www.neenahpolitics.com/Home/tabid/171/EntryID/114/Default.aspx), > so you may not find reading about some puddle-jump town in Wisconsin > so boring. > > There is a registered user stat on the home page. When I asked the > OT-ites to register at the site there was a grand total of 3 > registered users, two of them being myself and the Admin account, also > myself. After just 48 hours, that number had jumped up to 46, of > which about half came from OT! > > My thought is that when the voters in my district visit my page for > Neenah info, they'll see a sizable number of registered users...people > who took the time to create a user name and password. I THINK that'll > leave a favorable impression; i.e., that the information has value and > that I've actually got something cogent and coherent to say. > > Would you all mind registering at www.NeenahPolitics.com? You just > need to enter: > > * a user name > * your first and last names (stay anonymous if you wish) > * a display name > * a password > > There, of course, is a profile page you can edit, but don't bother if > you don't feel like it. > > There are two Canadians, two Germans, and a Brit already signed up. I > would very much appreciate it if you could sign up, too. > > Thank you, > > Steve Erbach > Neenah, WI, USA > http://www.NeenahPolitics.com > http://www.TheTownCrank.com > > P.S., My opponent for the position is a former Neenah Public Works > Director. The newest viaduct built in town was named after him! If > you drive west on Cecil St. over the new bridge, you'll see his first > "yard sign": "Timothy Hamblin Bridge". I have my work cut out for me! From Lambert.Heenan at AIG.com Fri Feb 6 12:10:37 2009 From: Lambert.Heenan at AIG.com (Heenan, Lambert) Date: Fri, 6 Feb 2009 13:10:37 -0500 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: <498c6f66.01a8420a.1b54.ffff9c77@mx.google.com> References: <498c6f66.01a8420a.1b54.ffff9c77@mx.google.com> Message-ID: Thanks for that Max, I'm a practicing atheist, but appreciate the 'local call' sentiment. Very amusing. :-) Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Friday, February 06, 2009 12:12 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... I wish I had of know you were a Scot, Lambert. I love the Scots. Great people with great hearts great sense of humour and great passion. Recently saw Braveheart and cried for William Wallace. My best mate Rob is a Scotsman and he cries whenever he hears the pipes, Flower of Scotland or a lament or too many drams (in his case that is a lot of drams - ha!). Here is something for yeese! Maxx An American decided to write a book about famous churches around the world. He bought a plane ticket and took a trip to Orlando , thinking that he would start by working his way across the USA from South to North . On his first day he was inside a church taking photographs when he noticed a golden telephone mounted on the wall with a sign that read '$10,000 per call' . The American, being intrigued, asked a priest who was strolling by what the telephone was used for . The priest replied that it was a direct line to heaven and that for $10,000 you could talk to God . The American thanked the priest and went along his way . Next stop was in Atlanta . There, at a very large cathedral, he saw the same looking golden telephone with the same sign under it. He wondered if this was the same kind of telephone he saw in Orlando and he asked a nearby nun what its purpose was . She told him that it was a direct line to heaven and that for $10,000 he could talk to God . 'O.K., thank you,' said the American . He then travelled all across America , Africa, England , Japan , New Zealand . In every church he saw the same looking golden telephone with the same '$US10,000 per call' sign under it. . The American decided to travel to Scotland to see if Scots had the same phone . He arrived in Scotland and again, in the first church he entered, there was the same looking golden telephone, but this time the sign under it read '40 pence per call.' The American was surprised so he asked the priest about the sign . 'Father, I've travelled all over the world and I've seen this same golden telephone in many churches . I'm told that it is a direct line to Heaven, but in all of them price was $10,000 per call . Why is it so cheap here?' The priest smiled and answered, 'You're in Scotland now, son - it's a local call' . If you are proud to be a Scot pass this on! Or proud to know one! ----------------------------------------------- From Elizabeth.J.Doering at wellsfargo.com Fri Feb 6 12:13:31 2009 From: Elizabeth.J.Doering at wellsfargo.com (Elizabeth.J.Doering at wellsfargo.com) Date: Fri, 6 Feb 2009 12:13:31 -0600 Subject: [AccessD] Is it cold enough for ya? Haha... References: <0F026D60AB994A78862A6DDDA8E5D462@danwaters><498c6bc2.1401420a.604b.62e0@mx.google.com> Message-ID: When I was a student at Gustavus Adolphus college in Minnesota, I lived in three different student-housing buildings. One all brick, two traditional wood construction. All three buildings were nearing their 100th birthdays in 1998, when a tornado went through campus and the town of St. Peter, MN. All three of "my houses" were destroyed, regardless of the type of construction. Do a Google image search (or here: http://images.google.com/images?hl=en&q=gustavus+tornado&btnG=Search+Ima ges&gbv=2) for tons of pictures.... Thanks, Liz This message may contain confidential and/or privileged information. If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose, or take any action based on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: Friday, February 06, 2009 11:44 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... In Minnesota, sooner or later it all gets hit by a tornado. And even if you had a solid steel box for a house, it will still get picked up and carried a Km or so, and badly dented when it drops back down to the ground. That Wizard of Oz stuff is a Good day! So, we build to survive for a while, and pay insurance for when it doesn't. Also in Minnesota, there are no wooden roof tiles - wouldn't last for a single winter! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Friday, February 06, 2009 10:57 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... > house start getting blown around House of straw eh! In Britland we make ours out of bricks and mortar. Have you not hear of The Three Little Pigs and the Big Bad Wolf? I am always amazed at what damage the wind causes folks in US of A and you often see only the chimney standing with everything else gone (via CNN or Fox TV reports etc). Why don't you folks use Bricks, concrete, metal, steel - anything more robust than wood? You even have wooden roof tiles and then wonder why it catches fire so easy - sheesh! Maxx -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: 06 February 2009 16:46 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... Indiana? C'mon . . . In Minnesota we only shut the windows if the wind picks up and things in the house start getting blown around. The temperature doesn't have anything to do with it. Have a warm day! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Friday, February 06, 2009 9:26 AM To: 'Access-D Email (accessd at databaseadvisors.com)' Subject: [AccessD] Is it cold enough for ya? Haha... 65 above zero: Floridians turn on the heat. People in Indiana plant gardens. 60 above zero: Californians shiver uncontrollably. People in Indiana sunbathe. 50 above zero: Italian & English cars won't start. People in Indiana drive with the windows down. 40 above zero: Georgians don coats, thermal underwear, gloves, wool hats. People in Indiana throw on a flannel shirt. 35 above zero: New York landlords finally turn up the heat. People in Indiana have the last cookout before it gets cold. 20 above Zero: People in Miami all die. Hoosiers close the windows. Zero: Californians fly away to Mexico. People in Indiana get out their winter coats. 10 below zero: Hollywood disintegrates. The Girl Scouts in Indiana are selling cookies door to door. 20 below zero: Washington DC runs out of hot air. People in Indiana let the dogs sleep indoors. 30 below zero: Santa Claus abandons the North Pole. Hoosiers get upset because they can't start the Snow-mobile. 40 below zero: ALL atomic motion stops. People in Indiana start saying...'Cold enough fer ya?' 50 below zero: Hell freezes over. Public schools in Indiana will open 2 hours late -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From dwaters at usinternet.com Fri Feb 6 12:14:49 2009 From: dwaters at usinternet.com (Dan Waters) Date: Fri, 6 Feb 2009 12:14:49 -0600 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: <498c7a51.07aa420a.2649.ffffba75@mx.google.com> References: <0F026D60AB994A78862A6DDDA8E5D462@danwaters> <498c6bc2.1401420a.604b.62e0@mx.google.com> <498c7a51.07aa420a.2649.ffffba75@mx.google.com> Message-ID: <06BFF8FB411D442DA26524595A691BF3@danwaters> Well - it's been done pretty closely. There is a company here that sells 'Storm Closets' (or some name). This is a reinforced box that is intended to be installed in a new home. When a storm is threatening, head for the Storm Closet! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Friday, February 06, 2009 11:59 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... OK, here is what you do.. 1. Dig big deep hole. 2. Make big solid metal box with windows and doors 3. Put said box in deep hole 4. Cover with heap plenty dirt topped with concrete plinth 2 feet deep. 5. Dig channels from surface to window and door openings. 6. Line channels with steel. 7. laugh at the building flying overhead during a tornado strike. 8. Patent the design. 9. Makes heaps of money - donate it to AccessD Maxx Sheesh - do I have to solve everybody's problems!! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: 06 February 2009 17:44 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... In Minnesota, sooner or later it all gets hit by a tornado. And even if you had a solid steel box for a house, it will still get picked up and carried a Km or so, and badly dented when it drops back down to the ground. That Wizard of Oz stuff is a Good day! So, we build to survive for a while, and pay insurance for when it doesn't. Also in Minnesota, there are no wooden roof tiles - wouldn't last for a single winter! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Friday, February 06, 2009 10:57 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... > house start getting blown around House of straw eh! In Britland we make ours out of bricks and mortar. Have you not hear of The Three Little Pigs and the Big Bad Wolf? I am always amazed at what damage the wind causes folks in US of A and you often see only the chimney standing with everything else gone (via CNN or Fox TV reports etc). Why don't you folks use Bricks, concrete, metal, steel - anything more robust than wood? You even have wooden roof tiles and then wonder why it catches fire so easy - sheesh! Maxx -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: 06 February 2009 16:46 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... Indiana? C'mon . . . In Minnesota we only shut the windows if the wind picks up and things in the house start getting blown around. The temperature doesn't have anything to do with it. Have a warm day! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Friday, February 06, 2009 9:26 AM To: 'Access-D Email (accessd at databaseadvisors.com)' Subject: [AccessD] Is it cold enough for ya? Haha... 65 above zero: Floridians turn on the heat. People in Indiana plant gardens. 60 above zero: Californians shiver uncontrollably. People in Indiana sunbathe. 50 above zero: Italian & English cars won't start. People in Indiana drive with the windows down. 40 above zero: Georgians don coats, thermal underwear, gloves, wool hats. People in Indiana throw on a flannel shirt. 35 above zero: New York landlords finally turn up the heat. People in Indiana have the last cookout before it gets cold. 20 above Zero: People in Miami all die. Hoosiers close the windows. Zero: Californians fly away to Mexico. People in Indiana get out their winter coats. 10 below zero: Hollywood disintegrates. The Girl Scouts in Indiana are selling cookies door to door. 20 below zero: Washington DC runs out of hot air. People in Indiana let the dogs sleep indoors. 30 below zero: Santa Claus abandons the North Pole. Hoosiers get upset because they can't start the Snow-mobile. 40 below zero: ALL atomic motion stops. People in Indiana start saying...'Cold enough fer ya?' 50 below zero: Hell freezes over. Public schools in Indiana will open 2 hours late -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Fri Feb 6 12:15:34 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 06 Feb 2009 13:15:34 -0500 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: References: <498c6f66.01a8420a.1b54.ffff9c77@mx.google.com> Message-ID: <498C7E46.4070802@colbyconsulting.com> > I'm a practicing atheist, ROTFL. How do you practice being an athiest? ;-) I mean a "practicing doctor or lawyer" means they actually doctor or lawyer. Do you actually athiest? John W. Colby www.ColbyConsulting.com Heenan, Lambert wrote: > Thanks for that Max, > > I'm a practicing atheist, but appreciate the 'local call' sentiment. Very amusing. :-) > > Lambert > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Friday, February 06, 2009 12:12 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Is it cold enough for ya? Haha... > > I wish I had of know you were a Scot, Lambert. > > I love the Scots. Great people with great hearts great sense of humour and great passion. > > Recently saw Braveheart and cried for William Wallace. > My best mate Rob is a Scotsman and he cries whenever he hears the pipes, Flower of Scotland or a lament or too many drams (in his case that is a lot of drams - ha!). > > Here is something for yeese! > > Maxx > > An American decided to write a book about famous churches around the world. > He bought a plane ticket and took a trip to Orlando , thinking that he would start by working his way across the USA from South to North . > On his first day he was inside a church taking photographs when he noticed a golden telephone mounted on the wall with a sign that read '$10,000 per call' . > > The American, being intrigued, asked a priest who was strolling by what the telephone was used for . > The priest replied that it was a direct line to heaven and that for $10,000 you could talk to God . > > The American thanked the priest and went along his way . > > Next stop was in Atlanta . There, at a very large cathedral, he saw the same looking golden telephone with the same sign under it. > He wondered if this was the same kind of telephone he saw in Orlando and he asked a nearby nun what its purpose was . > > She told him that it was a direct line to heaven and that for $10,000 he could talk to God . > 'O.K., thank you,' said the American . > > He then travelled all across America , Africa, England , Japan , New Zealand . In every church he saw the same looking golden telephone with the same '$US10,000 per call' sign under it. . > > The American decided to travel to Scotland to see if Scots had the same phone . > He arrived in Scotland and again, in the first church he entered, there was the same looking golden telephone, but this time the sign under it read '40 pence per call.' > > The American was surprised so he asked the priest about the sign . > 'Father, I've travelled all over the world and I've seen this same golden telephone in many churches . I'm told that it is a direct line to Heaven, but in all of them price was $10,000 per call . Why is it so cheap here?' > > The priest smiled and answered, 'You're in Scotland now, son - it's a local call' . > > If you are proud to be a Scot pass this on! > Or proud to know one! > ----------------------------------------------- > > From dwaters at usinternet.com Fri Feb 6 12:19:32 2009 From: dwaters at usinternet.com (Dan Waters) Date: Fri, 6 Feb 2009 12:19:32 -0600 Subject: [AccessD] Citrix and Access Message-ID: <9CBB659C05524E078CB7C9BC75F88867@danwaters> One of my customers is considering placing their Access 2003 app on a Citrix server (we will have users in Asia). He says that he believes that more recent versions of Citrix are expected to work better with Access than in the past, but he's not saying for certain. Does anyone have recent experience placing an Access app on a Citrix server? Any issues unique to Access? Or any links to helpful information? Thanks! Dan From max.wanadoo at gmail.com Fri Feb 6 12:22:20 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 18:22:20 -0000 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: <498C7E46.4070802@colbyconsulting.com> References: <498c6f66.01a8420a.1b54.ffff9c77@mx.google.com> <498C7E46.4070802@colbyconsulting.com> Message-ID: <498c7fe2.0589300a.3fd2.2294@mx.google.com> Ha! You beat me too it. I was going to ask that. Mind you being Scottish is a religion all on its own - isn't that right Lambert? Don't attack the Scots - they have powerful friends - me for example... Upset me and I will send the tornados down! Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 06 February 2009 18:16 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Is it cold enough for ya? Haha... > I'm a practicing atheist, ROTFL. How do you practice being an athiest? ;-) I mean a "practicing doctor or lawyer" means they actually doctor or lawyer. Do you actually athiest? John W. Colby www.ColbyConsulting.com Heenan, Lambert wrote: > Thanks for that Max, > > I'm a practicing atheist, but appreciate the 'local call' sentiment. Very amusing. :-) > > Lambert > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Friday, February 06, 2009 12:12 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Is it cold enough for ya? Haha... > > I wish I had of know you were a Scot, Lambert. > > I love the Scots. Great people with great hearts great sense of humour and great passion. > > Recently saw Braveheart and cried for William Wallace. > My best mate Rob is a Scotsman and he cries whenever he hears the pipes, Flower of Scotland or a lament or too many drams (in his case that is a lot of drams - ha!). > > Here is something for yeese! > > Maxx > > An American decided to write a book about famous churches around the world. > He bought a plane ticket and took a trip to Orlando , thinking that he would start by working his way across the USA from South to North . > On his first day he was inside a church taking photographs when he noticed a golden telephone mounted on the wall with a sign that read '$10,000 per call' . > > The American, being intrigued, asked a priest who was strolling by what the telephone was used for . > The priest replied that it was a direct line to heaven and that for $10,000 you could talk to God . > > The American thanked the priest and went along his way . > > Next stop was in Atlanta . There, at a very large cathedral, he saw the same looking golden telephone with the same sign under it. > He wondered if this was the same kind of telephone he saw in Orlando and he asked a nearby nun what its purpose was . > > She told him that it was a direct line to heaven and that for $10,000 he could talk to God . > 'O.K., thank you,' said the American . > > He then travelled all across America , Africa, England , Japan , New Zealand . In every church he saw the same looking golden telephone with the same '$US10,000 per call' sign under it. . > > The American decided to travel to Scotland to see if Scots had the same phone . > He arrived in Scotland and again, in the first church he entered, there was the same looking golden telephone, but this time the sign under it read '40 pence per call.' > > The American was surprised so he asked the priest about the sign . > 'Father, I've travelled all over the world and I've seen this same golden telephone in many churches . I'm told that it is a direct line to Heaven, but in all of them price was $10,000 per call . Why is it so cheap here?' > > The priest smiled and answered, 'You're in Scotland now, son - it's a local call' . > > If you are proud to be a Scot pass this on! > Or proud to know one! > ----------------------------------------------- > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Lambert.Heenan at AIG.com Fri Feb 6 12:22:51 2009 From: Lambert.Heenan at AIG.com (Heenan, Lambert) Date: Fri, 6 Feb 2009 13:22:51 -0500 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: <498C7E46.4070802@colbyconsulting.com> References: <498c6f66.01a8420a.1b54.ffff9c77@mx.google.com> <498C7E46.4070802@colbyconsulting.com> Message-ID: Well of course I "atheist" John. If someone asks me what bronze age fairy story I believe in I will tell them none of them: I am an atheist. A practicing doctor is one who doctors, not one who has retired from the profession. Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 06, 2009 1:16 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Is it cold enough for ya? Haha... > I'm a practicing atheist, ROTFL. How do you practice being an athiest? ;-) I mean a "practicing doctor or lawyer" means they actually doctor or lawyer. Do you actually athiest? John W. Colby www.ColbyConsulting.com Heenan, Lambert wrote: > Thanks for that Max, > > I'm a practicing atheist, but appreciate the 'local call' sentiment. > Very amusing. :-) > > Lambert > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Friday, February 06, 2009 12:12 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Is it cold enough for ya? Haha... > > I wish I had of know you were a Scot, Lambert. > > I love the Scots. Great people with great hearts great sense of humour and great passion. > > Recently saw Braveheart and cried for William Wallace. > My best mate Rob is a Scotsman and he cries whenever he hears the pipes, Flower of Scotland or a lament or too many drams (in his case that is a lot of drams - ha!). > > Here is something for yeese! > > Maxx > > An American decided to write a book about famous churches around the world. > He bought a plane ticket and took a trip to Orlando , thinking that he would start by working his way across the USA from South to North . > On his first day he was inside a church taking photographs when he noticed a golden telephone mounted on the wall with a sign that read '$10,000 per call' . > > The American, being intrigued, asked a priest who was strolling by what the telephone was used for . > The priest replied that it was a direct line to heaven and that for $10,000 you could talk to God . > > The American thanked the priest and went along his way . > > Next stop was in Atlanta . There, at a very large cathedral, he saw the same looking golden telephone with the same sign under it. > He wondered if this was the same kind of telephone he saw in Orlando and he asked a nearby nun what its purpose was . > > She told him that it was a direct line to heaven and that for $10,000 he could talk to God . > 'O.K., thank you,' said the American . > > He then travelled all across America , Africa, England , Japan , New Zealand . In every church he saw the same looking golden telephone with the same '$US10,000 per call' sign under it. . > > The American decided to travel to Scotland to see if Scots had the same phone . > He arrived in Scotland and again, in the first church he entered, there was the same looking golden telephone, but this time the sign under it read '40 pence per call.' > > The American was surprised so he asked the priest about the sign . > 'Father, I've travelled all over the world and I've seen this same golden telephone in many churches . I'm told that it is a direct line to Heaven, but in all of them price was $10,000 per call . Why is it so cheap here?' > > The priest smiled and answered, 'You're in Scotland now, son - it's a local call' . > > If you are proud to be a Scot pass this on! > Or proud to know one! > ----------------------------------------------- > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Fri Feb 6 12:24:22 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 18:24:22 -0000 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: References: <0F026D60AB994A78862A6DDDA8E5D462@danwaters><498c6bc2.1401420a.604b.62e0@mx.google.com> Message-ID: <498c8060.08eb300a.3e68.ffff875c@mx.google.com> Aha. But that was before Dan had patented the Storm Closet....no? Max Ps. Bad images though. Can't begin to imagine the distress all that caused. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Elizabeth.J.Doering at wellsfargo.com Sent: 06 February 2009 18:14 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Is it cold enough for ya? Haha... When I was a student at Gustavus Adolphus college in Minnesota, I lived in three different student-housing buildings. One all brick, two traditional wood construction. All three buildings were nearing their 100th birthdays in 1998, when a tornado went through campus and the town of St. Peter, MN. All three of "my houses" were destroyed, regardless of the type of construction. Do a Google image search (or here: http://images.google.com/images?hl=en&q=gustavus+tornado&btnG=Search+Ima ges&gbv=2) for tons of pictures.... Thanks, Liz This message may contain confidential and/or privileged information. If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose, or take any action based on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: Friday, February 06, 2009 11:44 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... In Minnesota, sooner or later it all gets hit by a tornado. And even if you had a solid steel box for a house, it will still get picked up and carried a Km or so, and badly dented when it drops back down to the ground. That Wizard of Oz stuff is a Good day! So, we build to survive for a while, and pay insurance for when it doesn't. Also in Minnesota, there are no wooden roof tiles - wouldn't last for a single winter! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Friday, February 06, 2009 10:57 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... > house start getting blown around House of straw eh! In Britland we make ours out of bricks and mortar. Have you not hear of The Three Little Pigs and the Big Bad Wolf? I am always amazed at what damage the wind causes folks in US of A and you often see only the chimney standing with everything else gone (via CNN or Fox TV reports etc). Why don't you folks use Bricks, concrete, metal, steel - anything more robust than wood? You even have wooden roof tiles and then wonder why it catches fire so easy - sheesh! Maxx -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: 06 February 2009 16:46 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... Indiana? C'mon . . . In Minnesota we only shut the windows if the wind picks up and things in the house start getting blown around. The temperature doesn't have anything to do with it. Have a warm day! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Friday, February 06, 2009 9:26 AM To: 'Access-D Email (accessd at databaseadvisors.com)' Subject: [AccessD] Is it cold enough for ya? Haha... 65 above zero: Floridians turn on the heat. People in Indiana plant gardens. 60 above zero: Californians shiver uncontrollably. People in Indiana sunbathe. 50 above zero: Italian & English cars won't start. People in Indiana drive with the windows down. 40 above zero: Georgians don coats, thermal underwear, gloves, wool hats. People in Indiana throw on a flannel shirt. 35 above zero: New York landlords finally turn up the heat. People in Indiana have the last cookout before it gets cold. 20 above Zero: People in Miami all die. Hoosiers close the windows. Zero: Californians fly away to Mexico. People in Indiana get out their winter coats. 10 below zero: Hollywood disintegrates. The Girl Scouts in Indiana are selling cookies door to door. 20 below zero: Washington DC runs out of hot air. People in Indiana let the dogs sleep indoors. 30 below zero: Santa Claus abandons the North Pole. Hoosiers get upset because they can't start the Snow-mobile. 40 below zero: ALL atomic motion stops. People in Indiana start saying...'Cold enough fer ya?' 50 below zero: Hell freezes over. Public schools in Indiana will open 2 hours late -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From ssharkins at gmail.com Fri Feb 6 12:25:54 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Fri, 6 Feb 2009 13:25:54 -0500 Subject: [AccessD] Is it cold enough for ya? Haha... References: <498c6f66.01a8420a.1b54.ffff9c77@mx.google.com> <498C7E46.4070802@colbyconsulting.com> <498c7fe2.0589300a.3fd2.2294@mx.google.com> Message-ID: > Upset me and I will send the tornados down! =====Mom... is that you????? ;) Susan H. From Elizabeth.J.Doering at wellsfargo.com Fri Feb 6 12:30:39 2009 From: Elizabeth.J.Doering at wellsfargo.com (Elizabeth.J.Doering at wellsfargo.com) Date: Fri, 6 Feb 2009 12:30:39 -0600 Subject: [AccessD] Is it cold enough for ya? Haha... References: <0F026D60AB994A78862A6DDDA8E5D462@danwaters><498c6bc2.1401420a.604b.62e0@mx.google.com> <498c8060.08eb300a.3e68.ffff875c@mx.google.com> Message-ID: Many years before :) -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Friday, February 06, 2009 12:24 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... Aha. But that was before Dan had patented the Storm Closet....no? Max Ps. Bad images though. Can't begin to imagine the distress all that caused. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Elizabeth.J.Doering at wellsfargo.com Sent: 06 February 2009 18:14 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Is it cold enough for ya? Haha... When I was a student at Gustavus Adolphus college in Minnesota, I lived in three different student-housing buildings. One all brick, two traditional wood construction. All three buildings were nearing their 100th birthdays in 1998, when a tornado went through campus and the town of St. Peter, MN. All three of "my houses" were destroyed, regardless of the type of construction. Do a Google image search (or here: http://images.google.com/images?hl=en&q=gustavus+tornado&btnG=Search+Ima ges&gbv=2) for tons of pictures.... Thanks, Liz This message may contain confidential and/or privileged information. If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose, or take any action based on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: Friday, February 06, 2009 11:44 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... In Minnesota, sooner or later it all gets hit by a tornado. And even if you had a solid steel box for a house, it will still get picked up and carried a Km or so, and badly dented when it drops back down to the ground. That Wizard of Oz stuff is a Good day! So, we build to survive for a while, and pay insurance for when it doesn't. Also in Minnesota, there are no wooden roof tiles - wouldn't last for a single winter! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Friday, February 06, 2009 10:57 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... > house start getting blown around House of straw eh! In Britland we make ours out of bricks and mortar. Have you not hear of The Three Little Pigs and the Big Bad Wolf? I am always amazed at what damage the wind causes folks in US of A and you often see only the chimney standing with everything else gone (via CNN or Fox TV reports etc). Why don't you folks use Bricks, concrete, metal, steel - anything more robust than wood? You even have wooden roof tiles and then wonder why it catches fire so easy - sheesh! Maxx -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: 06 February 2009 16:46 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... Indiana? C'mon . . . In Minnesota we only shut the windows if the wind picks up and things in the house start getting blown around. The temperature doesn't have anything to do with it. Have a warm day! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Friday, February 06, 2009 9:26 AM To: 'Access-D Email (accessd at databaseadvisors.com)' Subject: [AccessD] Is it cold enough for ya? Haha... 65 above zero: Floridians turn on the heat. People in Indiana plant gardens. 60 above zero: Californians shiver uncontrollably. People in Indiana sunbathe. 50 above zero: Italian & English cars won't start. People in Indiana drive with the windows down. 40 above zero: Georgians don coats, thermal underwear, gloves, wool hats. People in Indiana throw on a flannel shirt. 35 above zero: New York landlords finally turn up the heat. People in Indiana have the last cookout before it gets cold. 20 above Zero: People in Miami all die. Hoosiers close the windows. Zero: Californians fly away to Mexico. People in Indiana get out their winter coats. 10 below zero: Hollywood disintegrates. The Girl Scouts in Indiana are selling cookies door to door. 20 below zero: Washington DC runs out of hot air. People in Indiana let the dogs sleep indoors. 30 below zero: Santa Claus abandons the North Pole. Hoosiers get upset because they can't start the Snow-mobile. 40 below zero: ALL atomic motion stops. People in Indiana start saying...'Cold enough fer ya?' 50 below zero: Hell freezes over. Public schools in Indiana will open 2 hours late -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Fri Feb 6 12:34:42 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 18:34:42 -0000 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: References: <498c6f66.01a8420a.1b54.ffff9c77@mx.google.com> <498C7E46.4070802@colbyconsulting.com> <498c7fe2.0589300a.3fd2.2294@mx.google.com> Message-ID: <498c82c7.1185300a.125c.2103@mx.google.com> Noooo. Mom is m.o.m. I am Max m.a.x. aka the Handsome One.. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: 06 February 2009 18:26 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Is it cold enough for ya? Haha... > Upset me and I will send the tornados down! =====Mom... is that you????? ;) Susan H. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Fri Feb 6 12:36:18 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Fri, 6 Feb 2009 10:36:18 -0800 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: <498C7E46.4070802@colbyconsulting.com> References: <498c6f66.01a8420a.1b54.ffff9c77@mx.google.com> <498C7E46.4070802@colbyconsulting.com> Message-ID: <4474DCA999D344BE8AA167171737FF2E@HAL9005> I knew a former nun once who kicked the habit. Seems she wanted to date people of the other sects. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 06, 2009 10:16 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Is it cold enough for ya? Haha... > I'm a practicing atheist, ROTFL. How do you practice being an athiest? ;-) I mean a "practicing doctor or lawyer" means they actually doctor or lawyer. Do you actually athiest? John W. Colby www.ColbyConsulting.com Heenan, Lambert wrote: > Thanks for that Max, > > I'm a practicing atheist, but appreciate the 'local call' sentiment. > Very amusing. :-) > > Lambert > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Friday, February 06, 2009 12:12 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Is it cold enough for ya? Haha... > > I wish I had of know you were a Scot, Lambert. > > I love the Scots. Great people with great hearts great sense of humour and great passion. > > Recently saw Braveheart and cried for William Wallace. > My best mate Rob is a Scotsman and he cries whenever he hears the pipes, Flower of Scotland or a lament or too many drams (in his case that is a lot of drams - ha!). > > Here is something for yeese! > > Maxx > > An American decided to write a book about famous churches around the world. > He bought a plane ticket and took a trip to Orlando , thinking that he would start by working his way across the USA from South to North . > On his first day he was inside a church taking photographs when he noticed a golden telephone mounted on the wall with a sign that read '$10,000 per call' . > > The American, being intrigued, asked a priest who was strolling by what the telephone was used for . > The priest replied that it was a direct line to heaven and that for $10,000 you could talk to God . > > The American thanked the priest and went along his way . > > Next stop was in Atlanta . There, at a very large cathedral, he saw the same looking golden telephone with the same sign under it. > He wondered if this was the same kind of telephone he saw in Orlando and he asked a nearby nun what its purpose was . > > She told him that it was a direct line to heaven and that for $10,000 he could talk to God . > 'O.K., thank you,' said the American . > > He then travelled all across America , Africa, England , Japan , New Zealand . In every church he saw the same looking golden telephone with the same '$US10,000 per call' sign under it. . > > The American decided to travel to Scotland to see if Scots had the same phone . > He arrived in Scotland and again, in the first church he entered, there was the same looking golden telephone, but this time the sign under it read '40 pence per call.' > > The American was surprised so he asked the priest about the sign . > 'Father, I've travelled all over the world and I've seen this same golden telephone in many churches . I'm told that it is a direct line to Heaven, but in all of them price was $10,000 per call . Why is it so cheap here?' > > The priest smiled and answered, 'You're in Scotland now, son - it's a local call' . > > If you are proud to be a Scot pass this on! > Or proud to know one! > ----------------------------------------------- > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Fri Feb 6 12:37:02 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 18:37:02 -0000 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: References: <498c6f66.01a8420a.1b54.ffff9c77@mx.google.com> <498C7E46.4070802@colbyconsulting.com> Message-ID: <498c8354.07ed300a.53dd.33c2@mx.google.com> So there! Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: 06 February 2009 18:23 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... Well of course I "atheist" John. If someone asks me what bronze age fairy story I believe in I will tell them none of them: I am an atheist. A practicing doctor is one who doctors, not one who has retired from the profession. Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 06, 2009 1:16 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Is it cold enough for ya? Haha... > I'm a practicing atheist, ROTFL. How do you practice being an athiest? ;-) I mean a "practicing doctor or lawyer" means they actually doctor or lawyer. Do you actually athiest? John W. Colby www.ColbyConsulting.com Heenan, Lambert wrote: > Thanks for that Max, > > I'm a practicing atheist, but appreciate the 'local call' sentiment. > Very amusing. :-) > > Lambert > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Friday, February 06, 2009 12:12 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Is it cold enough for ya? Haha... > > I wish I had of know you were a Scot, Lambert. > > I love the Scots. Great people with great hearts great sense of humour and great passion. > > Recently saw Braveheart and cried for William Wallace. > My best mate Rob is a Scotsman and he cries whenever he hears the pipes, Flower of Scotland or a lament or too many drams (in his case that is a lot of drams - ha!). > > Here is something for yeese! > > Maxx > > An American decided to write a book about famous churches around the world. > He bought a plane ticket and took a trip to Orlando , thinking that he would start by working his way across the USA from South to North . > On his first day he was inside a church taking photographs when he noticed a golden telephone mounted on the wall with a sign that read '$10,000 per call' . > > The American, being intrigued, asked a priest who was strolling by what the telephone was used for . > The priest replied that it was a direct line to heaven and that for $10,000 you could talk to God . > > The American thanked the priest and went along his way . > > Next stop was in Atlanta . There, at a very large cathedral, he saw the same looking golden telephone with the same sign under it. > He wondered if this was the same kind of telephone he saw in Orlando and he asked a nearby nun what its purpose was . > > She told him that it was a direct line to heaven and that for $10,000 he could talk to God . > 'O.K., thank you,' said the American . > > He then travelled all across America , Africa, England , Japan , New Zealand . In every church he saw the same looking golden telephone with the same '$US10,000 per call' sign under it. . > > The American decided to travel to Scotland to see if Scots had the same phone . > He arrived in Scotland and again, in the first church he entered, there was the same looking golden telephone, but this time the sign under it read '40 pence per call.' > > The American was surprised so he asked the priest about the sign . > 'Father, I've travelled all over the world and I've seen this same golden telephone in many churches . I'm told that it is a direct line to Heaven, but in all of them price was $10,000 per call . Why is it so cheap here?' > > The priest smiled and answered, 'You're in Scotland now, son - it's a local call' . > > If you are proud to be a Scot pass this on! > Or proud to know one! > ----------------------------------------------- > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Fri Feb 6 12:40:25 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Fri, 6 Feb 2009 10:40:25 -0800 Subject: [AccessD] OT: I'm old Message-ID: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> My 12 y.o. is home sick today. So I'm keeping him busy playing with some old computers I have. He just asked me why all computer's hard drives are drive C. And I knew the answer. From my own experience. I guess I'm officially a cyber-senior. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com From max.wanadoo at gmail.com Fri Feb 6 12:47:00 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 18:47:00 -0000 Subject: [AccessD] OT: I'm old In-Reply-To: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> Message-ID: <498c85aa.03eb300a.54e0.73d3@mx.google.com> Yeah, well I know too.... Max Ps. I don't think you do know. I think you are fishing, hoping somebody will blurt out the answer and then you can tell your son....hehe -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 06 February 2009 18:40 To: 'Access Developers discussion and problem solving' Subject: [AccessD] OT: I'm old My 12 y.o. is home sick today. So I'm keeping him busy playing with some old computers I have. He just asked me why all computer's hard drives are drive C. And I knew the answer. From my own experience. I guess I'm officially a cyber-senior. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Fri Feb 6 12:50:21 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 18:50:21 -0000 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: <4474DCA999D344BE8AA167171737FF2E@HAL9005> References: <498c6f66.01a8420a.1b54.ffff9c77@mx.google.com> <498C7E46.4070802@colbyconsulting.com> <4474DCA999D344BE8AA167171737FF2E@HAL9005> Message-ID: <498c8673.1185300a.147d.128e@mx.google.com> Groan....but good! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 06 February 2009 18:36 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... I knew a former nun once who kicked the habit. Seems she wanted to date people of the other sects. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 06, 2009 10:16 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Is it cold enough for ya? Haha... > I'm a practicing atheist, ROTFL. How do you practice being an athiest? ;-) I mean a "practicing doctor or lawyer" means they actually doctor or lawyer. Do you actually athiest? John W. Colby www.ColbyConsulting.com Heenan, Lambert wrote: > Thanks for that Max, > > I'm a practicing atheist, but appreciate the 'local call' sentiment. > Very amusing. :-) > > Lambert > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Friday, February 06, 2009 12:12 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Is it cold enough for ya? Haha... > > I wish I had of know you were a Scot, Lambert. > > I love the Scots. Great people with great hearts great sense of humour and great passion. > > Recently saw Braveheart and cried for William Wallace. > My best mate Rob is a Scotsman and he cries whenever he hears the pipes, Flower of Scotland or a lament or too many drams (in his case that is a lot of drams - ha!). > > Here is something for yeese! > > Maxx > > An American decided to write a book about famous churches around the world. > He bought a plane ticket and took a trip to Orlando , thinking that he would start by working his way across the USA from South to North . > On his first day he was inside a church taking photographs when he noticed a golden telephone mounted on the wall with a sign that read '$10,000 per call' . > > The American, being intrigued, asked a priest who was strolling by what the telephone was used for . > The priest replied that it was a direct line to heaven and that for $10,000 you could talk to God . > > The American thanked the priest and went along his way . > > Next stop was in Atlanta . There, at a very large cathedral, he saw the same looking golden telephone with the same sign under it. > He wondered if this was the same kind of telephone he saw in Orlando and he asked a nearby nun what its purpose was . > > She told him that it was a direct line to heaven and that for $10,000 he could talk to God . > 'O.K., thank you,' said the American . > > He then travelled all across America , Africa, England , Japan , New Zealand . In every church he saw the same looking golden telephone with the same '$US10,000 per call' sign under it. . > > The American decided to travel to Scotland to see if Scots had the same phone . > He arrived in Scotland and again, in the first church he entered, there was the same looking golden telephone, but this time the sign under it read '40 pence per call.' > > The American was surprised so he asked the priest about the sign . > 'Father, I've travelled all over the world and I've seen this same golden telephone in many churches . I'm told that it is a direct line to Heaven, but in all of them price was $10,000 per call . Why is it so cheap here?' > > The priest smiled and answered, 'You're in Scotland now, son - it's a local call' . > > If you are proud to be a Scot pass this on! > Or proud to know one! > ----------------------------------------------- > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From DWUTKA at Marlow.com Fri Feb 6 12:52:39 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Fri, 6 Feb 2009 12:52:39 -0600 Subject: [AccessD] OT: I'm old In-Reply-To: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> Message-ID: Hmmm, is it because A and B were Floppy drives? Just curious if this qualifies me as cyber-senior?!?! Of course, the only experience I had with punch cards were as lunch tickets in elementary school! ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Friday, February 06, 2009 12:40 PM To: 'Access Developers discussion and problem solving' Subject: [AccessD] OT: I'm old My 12 y.o. is home sick today. So I'm keeping him busy playing with some old computers I have. He just asked me why all computer's hard drives are drive C. And I knew the answer. From my own experience. I guess I'm officially a cyber-senior. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwcolby at colbyconsulting.com Fri Feb 6 12:53:23 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 06 Feb 2009 13:53:23 -0500 Subject: [AccessD] OT: I'm old In-Reply-To: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> Message-ID: <498C8723.3050606@colbyconsulting.com> LOL. And that does bring up an interesting question. If machines don't have floppies at a: and B: any more, could we move the CD drives to there? For ages I have routinely moved them to J, K and L just to get them up out of the way, but I now install a floppy drive just as long as required to load my raid drivers, then uninstall them again. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > My 12 y.o. is home sick today. So I'm keeping him busy playing with some > old computers I have. He just asked me why all computer's hard drives are > drive C. And I knew the answer. From my own experience. I guess I'm > officially a cyber-senior. > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > From rockysmolin at bchacc.com Fri Feb 6 12:57:21 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Fri, 6 Feb 2009 10:57:21 -0800 Subject: [AccessD] OT: I'm old In-Reply-To: References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> Message-ID: <83C8948C388348058C63D26F8FF126C3@HAL9005> You're in! Pass the geritol... Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Friday, February 06, 2009 10:53 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old Hmmm, is it because A and B were Floppy drives? Just curious if this qualifies me as cyber-senior?!?! Of course, the only experience I had with punch cards were as lunch tickets in elementary school! ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Friday, February 06, 2009 12:40 PM To: 'Access Developers discussion and problem solving' Subject: [AccessD] OT: I'm old My 12 y.o. is home sick today. So I'm keeping him busy playing with some old computers I have. He just asked me why all computer's hard drives are drive C. And I knew the answer. From my own experience. I guess I'm officially a cyber-senior. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Fri Feb 6 12:57:40 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 06 Feb 2009 13:57:40 -0500 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: References: <498c6f66.01a8420a.1b54.ffff9c77@mx.google.com> <498C7E46.4070802@colbyconsulting.com> Message-ID: <498C8824.1000304@colbyconsulting.com> Oh c'mon Lambert, you don't believe in the tooth fairy, or Santa Clause, or the Easter Bunny? What a jaded guy you are. John W. Colby www.ColbyConsulting.com Heenan, Lambert wrote: > Well of course I "atheist" John. > > If someone asks me what bronze age fairy story I believe in I will tell them none of them: I am an atheist. A practicing doctor is one who doctors, not one who has retired from the profession. > > Lambert > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 06, 2009 1:16 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Is it cold enough for ya? Haha... > > > I'm a practicing atheist, > > ROTFL. How do you practice being an athiest? > > ;-) > > I mean a "practicing doctor or lawyer" means they actually doctor or lawyer. Do you actually athiest? > > > > John W. Colby > www.ColbyConsulting.com > > > Heenan, Lambert wrote: >> Thanks for that Max, >> >> I'm a practicing atheist, but appreciate the 'local call' sentiment. >> Very amusing. :-) >> >> Lambert >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo >> Sent: Friday, February 06, 2009 12:12 PM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Is it cold enough for ya? Haha... >> >> I wish I had of know you were a Scot, Lambert. >> >> I love the Scots. Great people with great hearts great sense of humour and great passion. >> >> Recently saw Braveheart and cried for William Wallace. >> My best mate Rob is a Scotsman and he cries whenever he hears the pipes, Flower of Scotland or a lament or too many drams (in his case that is a lot of drams - ha!). >> >> Here is something for yeese! >> >> Maxx >> >> An American decided to write a book about famous churches around the world. >> He bought a plane ticket and took a trip to Orlando , thinking that he would start by working his way across the USA from South to North . >> On his first day he was inside a church taking photographs when he noticed a golden telephone mounted on the wall with a sign that read '$10,000 per call' . >> >> The American, being intrigued, asked a priest who was strolling by what the telephone was used for . >> The priest replied that it was a direct line to heaven and that for $10,000 you could talk to God . >> >> The American thanked the priest and went along his way . >> >> Next stop was in Atlanta . There, at a very large cathedral, he saw the same looking golden telephone with the same sign under it. >> He wondered if this was the same kind of telephone he saw in Orlando and he asked a nearby nun what its purpose was . >> >> She told him that it was a direct line to heaven and that for $10,000 he could talk to God . >> 'O.K., thank you,' said the American . >> >> He then travelled all across America , Africa, England , Japan , New Zealand . In every church he saw the same looking golden telephone with the same '$US10,000 per call' sign under it. . >> >> The American decided to travel to Scotland to see if Scots had the same phone . >> He arrived in Scotland and again, in the first church he entered, there was the same looking golden telephone, but this time the sign under it read '40 pence per call.' >> >> The American was surprised so he asked the priest about the sign . >> 'Father, I've travelled all over the world and I've seen this same golden telephone in many churches . I'm told that it is a direct line to Heaven, but in all of them price was $10,000 per call . Why is it so cheap here?' >> >> The priest smiled and answered, 'You're in Scotland now, son - it's a local call' . >> >> If you are proud to be a Scot pass this on! >> Or proud to know one! >> ----------------------------------------------- >> >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From ssharkins at gmail.com Fri Feb 6 13:02:44 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Fri, 6 Feb 2009 14:02:44 -0500 Subject: [AccessD] Is it cold enough for ya? Haha... References: <498c6f66.01a8420a.1b54.ffff9c77@mx.google.com> <498C7E46.4070802@colbyconsulting.com> <498C8824.1000304@colbyconsulting.com> Message-ID: If my fairy suddenly drops dead, I'm going to know who to hold responsible... Susan H. > Oh c'mon Lambert, you don't believe in the tooth fairy, or Santa Clause, > or the Easter Bunny? What > a jaded guy you are. From max.wanadoo at gmail.com Fri Feb 6 13:02:30 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 19:02:30 -0000 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: References: <498c6f66.01a8420a.1b54.ffff9c77@mx.google.com> <498C7E46.4070802@colbyconsulting.com> Message-ID: <498c894d.0af5660a.5e73.5974@mx.google.com> So, is that Rangers or Celtic?? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: 06 February 2009 18:23 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... Well of course I "atheist" John. If someone asks me what bronze age fairy story I believe in I will tell them none of them: I am an atheist. A practicing doctor is one who doctors, not one who has retired from the profession. Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 06, 2009 1:16 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Is it cold enough for ya? Haha... > I'm a practicing atheist, ROTFL. How do you practice being an athiest? ;-) I mean a "practicing doctor or lawyer" means they actually doctor or lawyer. Do you actually athiest? John W. Colby www.ColbyConsulting.com Heenan, Lambert wrote: > Thanks for that Max, > > I'm a practicing atheist, but appreciate the 'local call' sentiment. > Very amusing. :-) > > Lambert > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Friday, February 06, 2009 12:12 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Is it cold enough for ya? Haha... > > I wish I had of know you were a Scot, Lambert. > > I love the Scots. Great people with great hearts great sense of humour and great passion. > > Recently saw Braveheart and cried for William Wallace. > My best mate Rob is a Scotsman and he cries whenever he hears the pipes, Flower of Scotland or a lament or too many drams (in his case that is a lot of drams - ha!). > > Here is something for yeese! > > Maxx > > An American decided to write a book about famous churches around the world. > He bought a plane ticket and took a trip to Orlando , thinking that he would start by working his way across the USA from South to North . > On his first day he was inside a church taking photographs when he noticed a golden telephone mounted on the wall with a sign that read '$10,000 per call' . > > The American, being intrigued, asked a priest who was strolling by what the telephone was used for . > The priest replied that it was a direct line to heaven and that for $10,000 you could talk to God . > > The American thanked the priest and went along his way . > > Next stop was in Atlanta . There, at a very large cathedral, he saw the same looking golden telephone with the same sign under it. > He wondered if this was the same kind of telephone he saw in Orlando and he asked a nearby nun what its purpose was . > > She told him that it was a direct line to heaven and that for $10,000 he could talk to God . > 'O.K., thank you,' said the American . > > He then travelled all across America , Africa, England , Japan , New Zealand . In every church he saw the same looking golden telephone with the same '$US10,000 per call' sign under it. . > > The American decided to travel to Scotland to see if Scots had the same phone . > He arrived in Scotland and again, in the first church he entered, there was the same looking golden telephone, but this time the sign under it read '40 pence per call.' > > The American was surprised so he asked the priest about the sign . > 'Father, I've travelled all over the world and I've seen this same golden telephone in many churches . I'm told that it is a direct line to Heaven, but in all of them price was $10,000 per call . Why is it so cheap here?' > > The priest smiled and answered, 'You're in Scotland now, son - it's a local call' . > > If you are proud to be a Scot pass this on! > Or proud to know one! > ----------------------------------------------- > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Fri Feb 6 13:09:00 2009 From: max.wanadoo at gmail.com (Denis Sherman) Date: Fri, 6 Feb 2009 19:09:00 -0000 Subject: [AccessD] OT: Oh Oh In-Reply-To: References: <498c6f66.01a8420a.1b54.ffff9c77@mx.google.com> <498C7E46.4070802@colbyconsulting.com> <498C8824.1000304@colbyconsulting.com> Message-ID: <498c8ad0.07a0660a.22e2.0a1c@mx.google.com> Oh Oh. Another hour or so and our Antipodean friends will be coming on-line. It will be Saturday there. So OT Friday is nearly done! Max From garykjos at gmail.com Fri Feb 6 13:10:03 2009 From: garykjos at gmail.com (Gary Kjos) Date: Fri, 6 Feb 2009 13:10:03 -0600 Subject: [AccessD] OT: I'm old In-Reply-To: <498C8723.3050606@colbyconsulting.com> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> Message-ID: I tried that once and as I recall it didn't work right for me and I ended up moving it back. I think something wouldn't allow it to function properly as a CD drive when I did that. I get conflicts all the time with the USB drive devices flash drives and cameras and memory card readers. Some less than bright person here at work has decided that the F: drive is everyones personal network space. So that always gets in the way of other stuff. GK On 2/6/09, jwcolby wrote: > LOL. And that does bring up an interesting question. If machines don't have floppies at a: and B: > any more, could we move the CD drives to there? For ages I have routinely moved them to J, K and L > just to get them up out of the way, but I now install a floppy drive just as long as required to > load my raid drivers, then uninstall them again. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: > > My 12 y.o. is home sick today. So I'm keeping him busy playing with some > > old computers I have. He just asked me why all computer's hard drives are > > drive C. And I knew the answer. From my own experience. I guess I'm > > officially a cyber-senior. > > > > > > > > Rocky Smolin > > > > Beach Access Software > > > > 858-259-4334 > > > > www.e-z-mrp.com > > > > www.bchacc.com > > > > > > > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- Gary Kjos garykjos at gmail.com From max.wanadoo at gmail.com Fri Feb 6 13:10:00 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 19:10:00 -0000 Subject: [AccessD] OT: I'm old In-Reply-To: <83C8948C388348058C63D26F8FF126C3@HAL9005> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <83C8948C388348058C63D26F8FF126C3@HAL9005> Message-ID: <498c8b0d.0c11660a.0cfa.ffff970d@mx.google.com> Geritol? Is that a brand name for Viagra? Sounds suspicious to me. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 06 February 2009 18:57 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT: I'm old You're in! Pass the geritol... Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Friday, February 06, 2009 10:53 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old Hmmm, is it because A and B were Floppy drives? Just curious if this qualifies me as cyber-senior?!?! Of course, the only experience I had with punch cards were as lunch tickets in elementary school! ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Friday, February 06, 2009 12:40 PM To: 'Access Developers discussion and problem solving' Subject: [AccessD] OT: I'm old My 12 y.o. is home sick today. So I'm keeping him busy playing with some old computers I have. He just asked me why all computer's hard drives are drive C. And I knew the answer. From my own experience. I guess I'm officially a cyber-senior. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Lambert.Heenan at AIG.com Fri Feb 6 13:10:36 2009 From: Lambert.Heenan at AIG.com (Heenan, Lambert) Date: Fri, 6 Feb 2009 14:10:36 -0500 Subject: [AccessD] OT: I'm old In-Reply-To: <498C8723.3050606@colbyconsulting.com> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> Message-ID: The answer for Windoze XP is a resounding "No" I suspect. Could be wrong of course, but I'm sitting in front of a machine that does have a floppy drive (though I've never used it for anything), and the 'Change Drive Letter and Paths' dialog does not offer me drive A or B to choose from. That's probably because having a floppy, which is A, drive B is reserved for when you do something like Copy a:*.* b: Which will result in A having a schizophrenic interlude. I just checked this out by disabling the floppy drive in the BIOS. After rebooting, a peek ad the drive management screen reveals... Roll of drums... A and B are still not available. So MS has just decided that floppy drives are an essential legacy support item. :-) Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 06, 2009 1:53 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old LOL. And that does bring up an interesting question. If machines don't have floppies at a: and B: any more, could we move the CD drives to there? For ages I have routinely moved them to J, K and L just to get them up out of the way, but I now install a floppy drive just as long as required to load my raid drivers, then uninstall them again. John W. Colby www.ColbyConsulting.com From rockysmolin at bchacc.com Fri Feb 6 13:12:01 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Fri, 6 Feb 2009 11:12:01 -0800 Subject: [AccessD] OT: I'm old In-Reply-To: <498c8b0d.0c11660a.0cfa.ffff970d@mx.google.com> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <83C8948C388348058C63D26F8FF126C3@HAL9005> <498c8b0d.0c11660a.0cfa.ffff970d@mx.google.com> Message-ID: You're obviously no old. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Friday, February 06, 2009 11:10 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT: I'm old Geritol? Is that a brand name for Viagra? Sounds suspicious to me. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 06 February 2009 18:57 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT: I'm old You're in! Pass the geritol... Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Friday, February 06, 2009 10:53 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old Hmmm, is it because A and B were Floppy drives? Just curious if this qualifies me as cyber-senior?!?! Of course, the only experience I had with punch cards were as lunch tickets in elementary school! ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Friday, February 06, 2009 12:40 PM To: 'Access Developers discussion and problem solving' Subject: [AccessD] OT: I'm old My 12 y.o. is home sick today. So I'm keeping him busy playing with some old computers I have. He just asked me why all computer's hard drives are drive C. And I knew the answer. From my own experience. I guess I'm officially a cyber-senior. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Lambert.Heenan at AIG.com Fri Feb 6 13:13:10 2009 From: Lambert.Heenan at AIG.com (Heenan, Lambert) Date: Fri, 6 Feb 2009 14:13:10 -0500 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: <498c894d.0af5660a.5e73.5974@mx.google.com> References: <498c6f66.01a8420a.1b54.ffff9c77@mx.google.com> <498C7E46.4070802@colbyconsulting.com> <498c894d.0af5660a.5e73.5974@mx.google.com> Message-ID: I walked away from that particularly sectarian scene a long, long time ago. :-) -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Friday, February 06, 2009 2:03 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... So, is that Rangers or Celtic?? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: 06 February 2009 18:23 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... Well of course I "atheist" John. If someone asks me what bronze age fairy story I believe in I will tell them none of them: I am an atheist. A practicing doctor is one who doctors, not one who has retired from the profession. Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 06, 2009 1:16 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Is it cold enough for ya? Haha... > I'm a practicing atheist, ROTFL. How do you practice being an athiest? ;-) I mean a "practicing doctor or lawyer" means they actually doctor or lawyer. Do you actually athiest? John W. Colby www.ColbyConsulting.com Heenan, Lambert wrote: > Thanks for that Max, > > I'm a practicing atheist, but appreciate the 'local call' sentiment. > Very amusing. :-) > > Lambert > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Friday, February 06, 2009 12:12 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Is it cold enough for ya? Haha... > > I wish I had of know you were a Scot, Lambert. > > I love the Scots. Great people with great hearts great sense of > humour and great passion. > > Recently saw Braveheart and cried for William Wallace. > My best mate Rob is a Scotsman and he cries whenever he hears the > pipes, Flower of Scotland or a lament or too many drams (in his case that is a lot of drams - ha!). > > Here is something for yeese! > > Maxx > > An American decided to write a book about famous churches around the world. > He bought a plane ticket and took a trip to Orlando , thinking that he would start by working his way across the USA from South to North . > On his first day he was inside a church taking photographs when he > noticed a golden telephone mounted on the wall with a sign that read '$10,000 per call' . > > The American, being intrigued, asked a priest who was strolling by > what the telephone was used for . > The priest replied that it was a direct line to heaven and that for $10,000 you could talk to God . > > The American thanked the priest and went along his way . > > Next stop was in Atlanta . There, at a very large cathedral, he saw > the same looking golden telephone with the same sign under it. > He wondered if this was the same kind of telephone he saw in Orlando > and he asked a nearby nun what its purpose was . > > She told him that it was a direct line to heaven and that for $10,000 > he could talk to God . > 'O.K., thank you,' said the American . > > He then travelled all across America , Africa, England , Japan , New Zealand . In every church he saw the same looking golden telephone with the same '$US10,000 per call' sign under it. . > > The American decided to travel to Scotland to see if Scots had the > same phone . > He arrived in Scotland and again, in the first church he entered, > there was the same looking golden telephone, but this time the sign under it read '40 pence per call.' > > The American was surprised so he asked the priest about the sign . > 'Father, I've travelled all over the world and I've seen this same > golden telephone in many churches . I'm told that it is a direct line to Heaven, but in all of them price was $10,000 per call . Why is it so cheap here?' > > The priest smiled and answered, 'You're in Scotland now, son - it's a local call' . > > If you are proud to be a Scot pass this on! > Or proud to know one! > ----------------------------------------------- > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Fri Feb 6 13:15:31 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 19:15:31 -0000 Subject: [AccessD] OT: I'm old In-Reply-To: References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <83C8948C388348058C63D26F8FF126C3@HAL9005> <498c8b0d.0c11660a.0cfa.ffff970d@mx.google.com> Message-ID: <498c8c57.18e7300a.2119.fffffd35@mx.google.com> Smile... -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 06 February 2009 19:12 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT: I'm old You're obviously no old. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Friday, February 06, 2009 11:10 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT: I'm old Geritol? Is that a brand name for Viagra? Sounds suspicious to me. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 06 February 2009 18:57 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT: I'm old You're in! Pass the geritol... Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Friday, February 06, 2009 10:53 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old Hmmm, is it because A and B were Floppy drives? Just curious if this qualifies me as cyber-senior?!?! Of course, the only experience I had with punch cards were as lunch tickets in elementary school! ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Friday, February 06, 2009 12:40 PM To: 'Access Developers discussion and problem solving' Subject: [AccessD] OT: I'm old My 12 y.o. is home sick today. So I'm keeping him busy playing with some old computers I have. He just asked me why all computer's hard drives are drive C. And I knew the answer. From my own experience. I guess I'm officially a cyber-senior. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Fri Feb 6 13:17:51 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 19:17:51 -0000 Subject: [AccessD] OT: I'm old In-Reply-To: References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> Message-ID: <498c8ce3.0216300a.1fc0.5ddc@mx.google.com> I have a feeling (but could definitely be wrong - memory and all that!) that if you only have ONE physical drive and you do copy a:*.* b: it will prompt you to insert the next floppy disk in the physical drive when it has read the first floppy disk. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: 06 February 2009 19:11 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT: I'm old The answer for Windoze XP is a resounding "No" I suspect. Could be wrong of course, but I'm sitting in front of a machine that does have a floppy drive (though I've never used it for anything), and the 'Change Drive Letter and Paths' dialog does not offer me drive A or B to choose from. That's probably because having a floppy, which is A, drive B is reserved for when you do something like Copy a:*.* b: Which will result in A having a schizophrenic interlude. I just checked this out by disabling the floppy drive in the BIOS. After rebooting, a peek ad the drive management screen reveals... Roll of drums... A and B are still not available. So MS has just decided that floppy drives are an essential legacy support item. :-) Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 06, 2009 1:53 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old LOL. And that does bring up an interesting question. If machines don't have floppies at a: and B: any more, could we move the CD drives to there? For ages I have routinely moved them to J, K and L just to get them up out of the way, but I now install a floppy drive just as long as required to load my raid drivers, then uninstall them again. John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Fri Feb 6 13:22:06 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 19:22:06 -0000 Subject: [AccessD] Is it cold enough for ya? Haha... In-Reply-To: References: <498c6f66.01a8420a.1b54.ffff9c77@mx.google.com> <498C7E46.4070802@colbyconsulting.com> <498c894d.0af5660a.5e73.5974@mx.google.com> Message-ID: <498c8de3.0baa660a.5362.3e58@mx.google.com> Aaahhh. I cannot wind you up then. I have my mate Rob - Rangers blue and blue I also have my mate Ian - Celtic through and through. I am in the middle and have great fun bouncing ribald comments between them. Eg. Ian sent me this: "A Rangers Fan got knocked down and killed by a truck outside my house today. I thought to myself 'Wow. That could have been me' but sadly I can't drive a truck" I sent it on to Rob. Rob said "z?!*((*D$%%$!!" or something similar I just love it - keeps me going every day. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: 06 February 2009 19:13 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... I walked away from that particularly sectarian scene a long, long time ago. :-) -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Friday, February 06, 2009 2:03 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... So, is that Rangers or Celtic?? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: 06 February 2009 18:23 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Is it cold enough for ya? Haha... Well of course I "atheist" John. If someone asks me what bronze age fairy story I believe in I will tell them none of them: I am an atheist. A practicing doctor is one who doctors, not one who has retired from the profession. Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 06, 2009 1:16 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Is it cold enough for ya? Haha... > I'm a practicing atheist, ROTFL. How do you practice being an athiest? ;-) I mean a "practicing doctor or lawyer" means they actually doctor or lawyer. Do you actually athiest? John W. Colby www.ColbyConsulting.com Heenan, Lambert wrote: > Thanks for that Max, > > I'm a practicing atheist, but appreciate the 'local call' sentiment. > Very amusing. :-) > > Lambert > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Friday, February 06, 2009 12:12 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Is it cold enough for ya? Haha... > > I wish I had of know you were a Scot, Lambert. > > I love the Scots. Great people with great hearts great sense of > humour and great passion. > > Recently saw Braveheart and cried for William Wallace. > My best mate Rob is a Scotsman and he cries whenever he hears the > pipes, Flower of Scotland or a lament or too many drams (in his case that is a lot of drams - ha!). > > Here is something for yeese! > > Maxx > > An American decided to write a book about famous churches around the world. > He bought a plane ticket and took a trip to Orlando , thinking that he would start by working his way across the USA from South to North . > On his first day he was inside a church taking photographs when he > noticed a golden telephone mounted on the wall with a sign that read '$10,000 per call' . > > The American, being intrigued, asked a priest who was strolling by > what the telephone was used for . > The priest replied that it was a direct line to heaven and that for $10,000 you could talk to God . > > The American thanked the priest and went along his way . > > Next stop was in Atlanta . There, at a very large cathedral, he saw > the same looking golden telephone with the same sign under it. > He wondered if this was the same kind of telephone he saw in Orlando > and he asked a nearby nun what its purpose was . > > She told him that it was a direct line to heaven and that for $10,000 > he could talk to God . > 'O.K., thank you,' said the American . > > He then travelled all across America , Africa, England , Japan , New Zealand . In every church he saw the same looking golden telephone with the same '$US10,000 per call' sign under it. . > > The American decided to travel to Scotland to see if Scots had the > same phone . > He arrived in Scotland and again, in the first church he entered, > there was the same looking golden telephone, but this time the sign under it read '40 pence per call.' > > The American was surprised so he asked the priest about the sign . > 'Father, I've travelled all over the world and I've seen this same > golden telephone in many churches . I'm told that it is a direct line to Heaven, but in all of them price was $10,000 per call . Why is it so cheap here?' > > The priest smiled and answered, 'You're in Scotland now, son - it's a local call' . > > If you are proud to be a Scot pass this on! > Or proud to know one! > ----------------------------------------------- > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From ssharkins at gmail.com Fri Feb 6 13:22:37 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Fri, 6 Feb 2009 14:22:37 -0500 Subject: [AccessD] OT: I'm old References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005><498C8723.3050606@colbyconsulting.com> Message-ID: <3331DEA7DEF7463FA08AC40E802115E4@SusanOne> > A and B are still not available. So MS has just decided that floppy drives > are an essential legacy support item. :-) =========Unlike their products, which some of us still actually use. Susan H. From ssharkins at gmail.com Fri Feb 6 13:24:29 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Fri, 6 Feb 2009 14:24:29 -0500 Subject: [AccessD] OT: I'm old References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com> Message-ID: <1732ED73D0B8408884AE2F5840AAE9EB@SusanOne> Not only has Max earned his daily dose of Geritol, but give that man a handy dandy box of punch cards (punch not included). Susan H. >I have a feeling (but could definitely be wrong - memory and all that!) >that > if you only have ONE physical drive and you do copy a:*.* b: it will > prompt > you to insert the next floppy disk in the physical drive when it has read > the first floppy disk. From jwcolby at colbyconsulting.com Fri Feb 6 13:25:11 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 06 Feb 2009 14:25:11 -0500 Subject: [AccessD] OT: I'm old In-Reply-To: References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> Message-ID: <498C8E97.4090001@colbyconsulting.com> I was upgrading a computer for a member of my church earlier this week. He is starting to write for a newsletter that he wrote for back in the 90s, and he used to send them the articles on Floppy. Now they want it on CD. The CD player in his machine wouldn't write, and he did not have a clue how to use one, so I had to install one that would write and show him how to get XP to write files to it. It is getting pretty tough to even find floppy disks any more, and new systems don't come with the drives. John W. Colby www.ColbyConsulting.com Heenan, Lambert wrote: > The answer for Windoze XP is a resounding "No" I suspect. Could be wrong of course, but I'm sitting in front of a machine that does have a floppy drive (though I've never used it for anything), and the 'Change Drive Letter and Paths' dialog does not offer me drive A or B to choose from. That's probably because having a floppy, which is A, drive B is reserved for when you do something like > > Copy a:*.* b: > > Which will result in A having a schizophrenic interlude. > > I just checked this out by disabling the floppy drive in the BIOS. After rebooting, a peek ad the drive management screen reveals... > > Roll of drums... > > A and B are still not available. So MS has just decided that floppy drives are an essential legacy support item. :-) > > Lambert From max.wanadoo at gmail.com Fri Feb 6 13:29:02 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 19:29:02 -0000 Subject: [AccessD] OT: I'm old In-Reply-To: <1732ED73D0B8408884AE2F5840AAE9EB@SusanOne> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com> <1732ED73D0B8408884AE2F5840AAE9EB@SusanOne> Message-ID: <498c8f82.06e2660a.7ac3.1967@mx.google.com> Was I right then? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: 06 February 2009 19:24 To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old Not only has Max earned his daily dose of Geritol, but give that man a handy dandy box of punch cards (punch not included). Susan H. >I have a feeling (but could definitely be wrong - memory and all that!) >that > if you only have ONE physical drive and you do copy a:*.* b: it will > prompt > you to insert the next floppy disk in the physical drive when it has read > the first floppy disk. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Fri Feb 6 13:31:17 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 06 Feb 2009 14:31:17 -0500 Subject: [AccessD] OT: I'm old In-Reply-To: <498c8ce3.0216300a.1fc0.5ddc@mx.google.com> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com> Message-ID: <498C9005.4050905@colbyconsulting.com> When I built my second PC in 1982, I bought a double 1 mbyte 8" floppy drive for $600, all in one physical case. I had heard of them hard disk thingies (and fixed them in the US Navy) but my single board computer didn't have an interface for it. On a similar note, I have many boxes of VHS tapes in the basement, which I haven't even opened since we moved up from Mexico in 2000. I actually do have a TV with a VCR built into it but when that goes... John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > I have a feeling (but could definitely be wrong - memory and all that!) that > if you only have ONE physical drive and you do copy a:*.* b: it will prompt > you to insert the next floppy disk in the physical drive when it has read > the first floppy disk. > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert > Sent: 06 February 2009 19:11 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] OT: I'm old > > The answer for Windoze XP is a resounding "No" I suspect. Could be wrong of > course, but I'm sitting in front of a machine that does have a floppy drive > (though I've never used it for anything), and the 'Change Drive Letter and > Paths' dialog does not offer me drive A or B to choose from. That's probably > because having a floppy, which is A, drive B is reserved for when you do > something like > > Copy a:*.* b: > > Which will result in A having a schizophrenic interlude. > > I just checked this out by disabling the floppy drive in the BIOS. After > rebooting, a peek ad the drive management screen reveals... > > Roll of drums... > > A and B are still not available. So MS has just decided that floppy drives > are an essential legacy support item. :-) > > Lambert > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 06, 2009 1:53 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] OT: I'm old > > LOL. And that does bring up an interesting question. If machines don't > have floppies at a: and B: > any more, could we move the CD drives to there? For ages I have routinely > moved them to J, K and L just to get them up out of the way, but I now > install a floppy drive just as long as required to load my raid drivers, > then uninstall them again. > > John W. Colby > www.ColbyConsulting.com > > From max.wanadoo at gmail.com Fri Feb 6 13:31:49 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 19:31:49 -0000 Subject: [AccessD] OT:Floppy Disk Drives In-Reply-To: <498C8E97.4090001@colbyconsulting.com> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498C8E97.4090001@colbyconsulting.com> Message-ID: <498c902a.07a0660a.219f.1b19@mx.google.com> John, You can buy external ones. I have an external floppy disk drive with a USB connection which plugs into my laptop's usb but could equally be a USB port on a PC. Not expensive but I would say buy it now because sourcing it in the future my become more difficult. But in the scenario you quote, why doesn't he write it on his PC. Print it to a pseudo print driver as a PDF file, send that to them via email or a website and they carry on from there. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 06 February 2009 19:25 To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old I was upgrading a computer for a member of my church earlier this week. He is starting to write for a newsletter that he wrote for back in the 90s, and he used to send them the articles on Floppy. Now they want it on CD. The CD player in his machine wouldn't write, and he did not have a clue how to use one, so I had to install one that would write and show him how to get XP to write files to it. It is getting pretty tough to even find floppy disks any more, and new systems don't come with the drives. John W. Colby www.ColbyConsulting.com Heenan, Lambert wrote: > The answer for Windoze XP is a resounding "No" I suspect. Could be wrong of course, but I'm sitting in front of a machine that does have a floppy drive (though I've never used it for anything), and the 'Change Drive Letter and Paths' dialog does not offer me drive A or B to choose from. That's probably because having a floppy, which is A, drive B is reserved for when you do something like > > Copy a:*.* b: > > Which will result in A having a schizophrenic interlude. > > I just checked this out by disabling the floppy drive in the BIOS. After rebooting, a peek ad the drive management screen reveals... > > Roll of drums... > > A and B are still not available. So MS has just decided that floppy drives are an essential legacy support item. :-) > > Lambert -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Fri Feb 6 13:32:51 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 19:32:51 -0000 Subject: [AccessD] OT: I'm old In-Reply-To: <3331DEA7DEF7463FA08AC40E802115E4@SusanOne> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005><498C8723.3050606@colbyconsulting.com> <3331DEA7DEF7463FA08AC40E802115E4@SusanOne> Message-ID: <498c9067.06a1660a.5217.ffff98af@mx.google.com> Oooooh. Do I detect a tiny trace of sarcasm. Just a tickle around the corner of the eye.... Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: 06 February 2009 19:23 To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old > A and B are still not available. So MS has just decided that floppy drives > are an essential legacy support item. :-) =========Unlike their products, which some of us still actually use. Susan H. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From miscellany at mvps.org Fri Feb 6 13:36:52 2009 From: miscellany at mvps.org (Steve Schapel) Date: Sat, 07 Feb 2009 08:36:52 +1300 Subject: [AccessD] OT: Oh Oh In-Reply-To: <498c8ad0.07a0660a.22e2.0a1c@mx.google.com> References: <498c6f66.01a8420a.1b54.ffff9c77@mx.google.com> <498C7E46.4070802@colbyconsulting.com> <498C8824.1000304@colbyconsulting.com> <498c8ad0.07a0660a.22e2.0a1c@mx.google.com> Message-ID: <250007B58F314067B649B345144F9BEF@stevePC> I've been up this fine Saturday morning, and busily reading this very active group, for about an hour and a half already. Regards Steve -------------------------------------------------- From: "Denis Sherman" Sent: Saturday, February 07, 2009 8:09 AM To: "'Access Developers discussion and problem solving'" Subject: [AccessD] OT: Oh Oh > Oh Oh. Another hour or so and our Antipodean friends will be coming > on-line. > It will be Saturday there. So OT Friday is nearly done! > > Max From max.wanadoo at gmail.com Fri Feb 6 13:41:11 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 19:41:11 -0000 Subject: [AccessD] OT: Oh Oh In-Reply-To: <250007B58F314067B649B345144F9BEF@stevePC> References: <498c6f66.01a8420a.1b54.ffff9c77@mx.google.com> <498C7E46.4070802@colbyconsulting.com> <498C8824.1000304@colbyconsulting.com> <498c8ad0.07a0660a.22e2.0a1c@mx.google.com> <250007B58F314067B649B345144F9BEF@stevePC> Message-ID: <498c925a.0aa1660a.6237.ffff8a67@mx.google.com> Would you like my Oz pps file - not rude - very good. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Schapel Sent: 06 February 2009 19:37 To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: Oh Oh I've been up this fine Saturday morning, and busily reading this very active group, for about an hour and a half already. Regards Steve -------------------------------------------------- From: "Denis Sherman" Sent: Saturday, February 07, 2009 8:09 AM To: "'Access Developers discussion and problem solving'" Subject: [AccessD] OT: Oh Oh > Oh Oh. Another hour or so and our Antipodean friends will be coming > on-line. > It will be Saturday there. So OT Friday is nearly done! > > Max -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Fri Feb 6 13:42:11 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 19:42:11 -0000 Subject: [AccessD] OT:VHS to CD In-Reply-To: <498C9005.4050905@colbyconsulting.com> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com> <498C9005.4050905@colbyconsulting.com> Message-ID: <498c9297.0ab6660a.0bf3.21ac@mx.google.com> Well, you do know I suppose that you can transfer them to CD (or your pc, or both). Hardware about ?80 here in Britland. Reads the VHS and outputs a CD. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 06 February 2009 19:31 To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old When I built my second PC in 1982, I bought a double 1 mbyte 8" floppy drive for $600, all in one physical case. I had heard of them hard disk thingies (and fixed them in the US Navy) but my single board computer didn't have an interface for it. On a similar note, I have many boxes of VHS tapes in the basement, which I haven't even opened since we moved up from Mexico in 2000. I actually do have a TV with a VCR built into it but when that goes... John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > I have a feeling (but could definitely be wrong - memory and all that!) that > if you only have ONE physical drive and you do copy a:*.* b: it will prompt > you to insert the next floppy disk in the physical drive when it has read > the first floppy disk. > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert > Sent: 06 February 2009 19:11 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] OT: I'm old > > The answer for Windoze XP is a resounding "No" I suspect. Could be wrong of > course, but I'm sitting in front of a machine that does have a floppy drive > (though I've never used it for anything), and the 'Change Drive Letter and > Paths' dialog does not offer me drive A or B to choose from. That's probably > because having a floppy, which is A, drive B is reserved for when you do > something like > > Copy a:*.* b: > > Which will result in A having a schizophrenic interlude. > > I just checked this out by disabling the floppy drive in the BIOS. After > rebooting, a peek ad the drive management screen reveals... > > Roll of drums... > > A and B are still not available. So MS has just decided that floppy drives > are an essential legacy support item. :-) > > Lambert > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 06, 2009 1:53 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] OT: I'm old > > LOL. And that does bring up an interesting question. If machines don't > have floppies at a: and B: > any more, could we move the CD drives to there? For ages I have routinely > moved them to J, K and L just to get them up out of the way, but I now > install a floppy drive just as long as required to load my raid drivers, > then uninstall them again. > > John W. Colby > www.ColbyConsulting.com > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From erbachs at gmail.com Fri Feb 6 13:43:54 2009 From: erbachs at gmail.com (Steve Erbach) Date: Fri, 6 Feb 2009 13:43:54 -0600 Subject: [AccessD] OT: A Friday favor In-Reply-To: <498c7946.1ae7300a.52c7.02dd@mx.google.com> References: <39cb22f30902060943k645c7fc1o3990b97da891324e@mail.gmail.com> <498c7946.1ae7300a.52c7.02dd@mx.google.com> Message-ID: <39cb22f30902061143w2882b8ddw716c25a20444298c@mail.gmail.com> Max, I wouldn't be surprised if the owners set up a Jake web site to extend all the media attention they've gotten over this. Apparently, a radio station is coming to their house this weekend to record Jake's crows, and they're going to sell the CD's and give the proceeds to charity. Gawd! Grandstanding, in my opinion. Thanks for registering. Steve Erbach Neenah, WI On Fri, Feb 6, 2009 at 11:54 AM, Max Wanadoo wrote: > OK, I have done that for you. Now, how do I register for Jake the Rooster? > Seems a great guy! > > Maxx > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Erbach > Sent: 06 February 2009 17:43 > To: Access Developers discussion and problem solving > Subject: [AccessD] OT: A Friday favor > > Dear Group, > > I've sent this appeal to the dba-OT group and they responded > magnificently. I apologize if you've seen this already as an OT > member, but I hope you won't mind since I waited until AccessD OT > Friday to ask. > From erbachs at gmail.com Fri Feb 6 13:45:23 2009 From: erbachs at gmail.com (Steve Erbach) Date: Fri, 6 Feb 2009 13:45:23 -0600 Subject: [AccessD] OT: A Friday favor In-Reply-To: <498C7B8D.3020104@colbyconsulting.com> References: <39cb22f30902060943k645c7fc1o3990b97da891324e@mail.gmail.com> <498C7B8D.3020104@colbyconsulting.com> Message-ID: <39cb22f30902061145x6e95aayc06ee9adb1097728@mail.gmail.com> John, Why, thank you, John! That's very kind of you to say so. I'm hoping to make it less generically DotNetNuke-ish soon, but there's a lot to do for the campaign. Thanks for registering...and pay a visit every once in a while, eh? Regards, Steve Erbach Neenah, WI http://www.NeenahPolitics.com http://www.TheTownCrank.com On Fri, Feb 6, 2009 at 12:03 PM, jwcolby wrote: > Very nice DotNetNuke site! ;-) > > John W. Colby > www.ColbyConsulting.com > > > Steve Erbach wrote: >> Dear Group, >> >> I've sent this appeal to the dba-OT group and they responded >> magnificently. I apologize if you've seen this already as an OT >> member, but I hope you won't mind since I waited until AccessD OT >> Friday to ask. From max.wanadoo at gmail.com Fri Feb 6 13:46:48 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 19:46:48 -0000 Subject: [AccessD] OT: A Friday favor In-Reply-To: <39cb22f30902061143w2882b8ddw716c25a20444298c@mail.gmail.com> References: <39cb22f30902060943k645c7fc1o3990b97da891324e@mail.gmail.com> <498c7946.1ae7300a.52c7.02dd@mx.google.com> <39cb22f30902061143w2882b8ddw716c25a20444298c@mail.gmail.com> Message-ID: <498c93af.190c660a.1a14.4bfc@mx.google.com> Oh, they will be Cock-a-hoop over that. Bet they don't stop crowing for years... Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Erbach Sent: 06 February 2009 19:44 To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: A Friday favor Max, I wouldn't be surprised if the owners set up a Jake web site to extend all the media attention they've gotten over this. Apparently, a radio station is coming to their house this weekend to record Jake's crows, and they're going to sell the CD's and give the proceeds to charity. Gawd! Grandstanding, in my opinion. Thanks for registering. Steve Erbach Neenah, WI On Fri, Feb 6, 2009 at 11:54 AM, Max Wanadoo wrote: > OK, I have done that for you. Now, how do I register for Jake the Rooster? > Seems a great guy! > > Maxx > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Erbach > Sent: 06 February 2009 17:43 > To: Access Developers discussion and problem solving > Subject: [AccessD] OT: A Friday favor > > Dear Group, > > I've sent this appeal to the dba-OT group and they responded > magnificently. I apologize if you've seen this already as an OT > member, but I hope you won't mind since I waited until AccessD OT > Friday to ask. > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From miscellany at mvps.org Fri Feb 6 14:04:08 2009 From: miscellany at mvps.org (Steve Schapel) Date: Sat, 07 Feb 2009 09:04:08 +1300 Subject: [AccessD] OT: Oh Oh In-Reply-To: <498c925a.0aa1660a.6237.ffff8a67@mx.google.com> References: <498c6f66.01a8420a.1b54.ffff9c77@mx.google.com> <498C7E46.4070802@colbyconsulting.com> <498C8824.1000304@colbyconsulting.com> <498c8ad0.07a0660a.22e2.0a1c@mx.google.com> <250007B58F314067B649B345144F9BEF@stevePC> <498c925a.0aa1660a.6237.ffff8a67@mx.google.com> Message-ID: Hi Max, Yes, why not. Thanks. I am an Australian myself, by long-term resident now in New Zealand. I have jut been back to Australia for my grandmother's 100th birthday, and had a wonderful time there. Regards Steve -------------------------------------------------- From: "Max Wanadoo" Sent: Saturday, February 07, 2009 8:41 AM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] OT: Oh Oh > Would you like my Oz pps file - not rude - very good. > Max > From max.wanadoo at gmail.com Fri Feb 6 14:16:49 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 6 Feb 2009 20:16:49 -0000 Subject: [AccessD] OT: Oh Oh In-Reply-To: References: <498c6f66.01a8420a.1b54.ffff9c77@mx.google.com> <498C7E46.4070802@colbyconsulting.com> <498C8824.1000304@colbyconsulting.com> <498c8ad0.07a0660a.22e2.0a1c@mx.google.com> <250007B58F314067B649B345144F9BEF@stevePC> <498c925a.0aa1660a.6237.ffff8a67@mx.google.com> Message-ID: <498c9ab6.09b6660a.7b75.ffff9530@mx.google.com> It is on the way Steve. Congrats to your g'mother. That is a goodly number of years. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Schapel Sent: 06 February 2009 20:04 To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: Oh Oh Hi Max, Yes, why not. Thanks. I am an Australian myself, by long-term resident now in New Zealand. I have jut been back to Australia for my grandmother's 100th birthday, and had a wonderful time there. Regards Steve -------------------------------------------------- From: "Max Wanadoo" Sent: Saturday, February 07, 2009 8:41 AM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] OT: Oh Oh > Would you like my Oz pps file - not rude - very good. > Max > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From fuller.artful at gmail.com Fri Feb 6 14:44:48 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Fri, 6 Feb 2009 15:44:48 -0500 Subject: [AccessD] Citrix and Access In-Reply-To: <9CBB659C05524E078CB7C9BC75F88867@danwaters> References: <9CBB659C05524E078CB7C9BC75F88867@danwaters> Message-ID: <29f585dd0902061244g657ce9afsa77493509fceb269@mail.gmail.com> I have lots of experience running an Access app on Terminal Services, and even with 70 users it was faster for me to develop on the remote TS box than on my local machine at home. I was completely floored. Assuming a fast pipe on both ends, I think you will be very pleased with the response time. (To be fair, our Access back end was SQL 2000.) hth, Arthur From jwcolby at colbyconsulting.com Fri Feb 6 14:47:01 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 06 Feb 2009 15:47:01 -0500 Subject: [AccessD] OT:Floppy Disk Drives In-Reply-To: <498c902a.07a0660a.219f.1b19@mx.google.com> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498C8E97.4090001@colbyconsulting.com> <498c902a.07a0660a.219f.1b19@mx.google.com> Message-ID: <498CA1C5.7080803@colbyconsulting.com> They want it on CD. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > John, > > You can buy external ones. I have an external floppy disk drive with a USB > connection which plugs into my laptop's usb but could equally be a USB port > on a PC. > Not expensive but I would say buy it now because sourcing it in the future > my become more difficult. > > But in the scenario you quote, why doesn't he write it on his PC. Print it > to a pseudo print driver as a PDF file, send that to them via email or a > website and they carry on from there. > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 06 February 2009 19:25 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] OT: I'm old > > I was upgrading a computer for a member of my church earlier this week. He > is starting to write for > a newsletter that he wrote for back in the 90s, and he used to send them the > articles on Floppy. > Now they want it on CD. The CD player in his machine wouldn't write, and he > did not have a clue how > to use one, so I had to install one that would write and show him how to get > XP to write files to it. > > It is getting pretty tough to even find floppy disks any more, and new > systems don't come with the > drives. > > John W. Colby > www.ColbyConsulting.com > > > Heenan, Lambert wrote: >> The answer for Windoze XP is a resounding "No" I suspect. Could be wrong > of course, but I'm sitting in front of a machine that does have a floppy > drive (though I've never used it for anything), and the 'Change Drive Letter > and Paths' dialog does not offer me drive A or B to choose from. That's > probably because having a floppy, which is A, drive B is reserved for when > you do something like >> Copy a:*.* b: >> >> Which will result in A having a schizophrenic interlude. >> >> I just checked this out by disabling the floppy drive in the BIOS. After > rebooting, a peek ad the drive management screen reveals... >> Roll of drums... >> >> A and B are still not available. So MS has just decided that floppy drives > are an essential legacy support item. :-) >> Lambert > From jwcolby at colbyconsulting.com Fri Feb 6 14:48:12 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 06 Feb 2009 15:48:12 -0500 Subject: [AccessD] OT:VHS to CD In-Reply-To: <498c9297.0ab6660a.0bf3.21ac@mx.google.com> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com> <498C9005.4050905@colbyconsulting.com> <498c9297.0ab6660a.0bf3.21ac@mx.google.com> Message-ID: <498CA20C.6020106@colbyconsulting.com> The quality is quite bad compared to direct dvd. I am just slowly replacing the ones I care about. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Well, you do know I suppose that you can transfer them to CD (or your pc, or > both). > Hardware about ?80 here in Britland. Reads the VHS and outputs a CD. > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 06 February 2009 19:31 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] OT: I'm old > > When I built my second PC in 1982, I bought a double 1 mbyte 8" floppy drive > for $600, all in one > physical case. I had heard of them hard disk thingies (and fixed them in > the US Navy) but my single > board computer didn't have an interface for it. > > On a similar note, I have many boxes of VHS tapes in the basement, which I > haven't even opened since > we moved up from Mexico in 2000. I actually do have a TV with a VCR built > into it but when that goes... > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> I have a feeling (but could definitely be wrong - memory and all that!) > that >> if you only have ONE physical drive and you do copy a:*.* b: it will > prompt >> you to insert the next floppy disk in the physical drive when it has read >> the first floppy disk. >> >> Max >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert >> Sent: 06 February 2009 19:11 >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] OT: I'm old >> >> The answer for Windoze XP is a resounding "No" I suspect. Could be wrong > of >> course, but I'm sitting in front of a machine that does have a floppy > drive >> (though I've never used it for anything), and the 'Change Drive Letter and >> Paths' dialog does not offer me drive A or B to choose from. That's > probably >> because having a floppy, which is A, drive B is reserved for when you do >> something like >> >> Copy a:*.* b: >> >> Which will result in A having a schizophrenic interlude. >> >> I just checked this out by disabling the floppy drive in the BIOS. After >> rebooting, a peek ad the drive management screen reveals... >> >> Roll of drums... >> >> A and B are still not available. So MS has just decided that floppy drives >> are an essential legacy support item. :-) >> >> Lambert >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Friday, February 06, 2009 1:53 PM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] OT: I'm old >> >> LOL. And that does bring up an interesting question. If machines don't >> have floppies at a: and B: >> any more, could we move the CD drives to there? For ages I have routinely >> moved them to J, K and L just to get them up out of the way, but I now >> install a floppy drive just as long as required to load my raid drivers, >> then uninstall them again. >> >> John W. Colby >> www.ColbyConsulting.com >> >> From jwcolby at colbyconsulting.com Fri Feb 6 14:50:33 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 06 Feb 2009 15:50:33 -0500 Subject: [AccessD] Citrix and Access In-Reply-To: <29f585dd0902061244g657ce9afsa77493509fceb269@mail.gmail.com> References: <9CBB659C05524E078CB7C9BC75F88867@danwaters> <29f585dd0902061244g657ce9afsa77493509fceb269@mail.gmail.com> Message-ID: <498CA299.8080905@colbyconsulting.com> Arthur, are you still in Bermuda? If so how is the job going? John W. Colby www.ColbyConsulting.com Arthur Fuller wrote: > I have lots of experience running an Access app on Terminal Services, and > even with 70 users it was faster for me to develop on the remote TS box than > on my local machine at home. I was completely floored. Assuming a fast pipe > on both ends, I think you will be very pleased with the response time. (To > be fair, our Access back end was SQL 2000.) > > hth, > Arthur From dwaters at usinternet.com Fri Feb 6 15:04:37 2009 From: dwaters at usinternet.com (Dan Waters) Date: Fri, 6 Feb 2009 15:04:37 -0600 Subject: [AccessD] Citrix and Access In-Reply-To: <29f585dd0902061244g657ce9afsa77493509fceb269@mail.gmail.com> References: <9CBB659C05524E078CB7C9BC75F88867@danwaters> <29f585dd0902061244g657ce9afsa77493509fceb269@mail.gmail.com> Message-ID: Hi Arthur, Anything you can think of that might have been restrictive or need to know? I'll be switching out many users from running on their PC to using a Citrix window. Glad to hear about the response time! Was your FE linked to SQL 2000 or were you using an OLEDB Provider? Thanks, Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Arthur Fuller Sent: Friday, February 06, 2009 2:45 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Citrix and Access I have lots of experience running an Access app on Terminal Services, and even with 70 users it was faster for me to develop on the remote TS box than on my local machine at home. I was completely floored. Assuming a fast pipe on both ends, I think you will be very pleased with the response time. (To be fair, our Access back end was SQL 2000.) hth, Arthur -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From pedro at plex.nl Fri Feb 6 15:16:09 2009 From: pedro at plex.nl (Pedro Janssen) Date: Fri, 6 Feb 2009 22:16:09 +0100 Subject: [AccessD] Citrix and Access References: <9CBB659C05524E078CB7C9BC75F88867@danwaters> Message-ID: <005301c988a0$21c5dd10$400aa8c0@qmotionfaa3ad9> Hello Dan, in the hospital where i work, we have access on citrix. We have only few troubles with citrix and access.With the citrix client version 8, we had focusproblems. But these focusproblems were for al office products under citrix. When client version 10 was installed. the where still some focusproblems, but these where minor. With focusproblems i mean. I close a table in access. Normally the focus then goes to the database window, but with citrix the focus sometimes went to another program, that was open, or to the desktop. Another issue with citrix is that not al virusscanners are citrix proof. When you use one that isn't, you get sometimes (or many times) an annoying type delay. You type the letters, but they appear seconds later. Whit scrolling this isn't annoying, but a pain in the a......... When scrolling through a large table, and the delay gets to the scrolling, you better go do something else. The scrolling then is very slow, can't be speed up and you have to wait and wait. Succes Best Wishes Pedro ----- Original Message ----- From: "Dan Waters" To: "'Access Developers discussion and problem solving'" Sent: Friday, February 06, 2009 7:19 PM Subject: [AccessD] Citrix and Access > One of my customers is considering placing their Access 2003 app on a > Citrix > server (we will have users in Asia). He says that he believes that more > recent versions of Citrix are expected to work better with Access than in > the past, but he's not saying for certain. > > Does anyone have recent experience placing an Access app on a Citrix > server? > Any issues unique to Access? Or any links to helpful information? > > Thanks! > Dan > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From fuller.artful at gmail.com Fri Feb 6 15:50:46 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Fri, 6 Feb 2009 16:50:46 -0500 Subject: [AccessD] Citrix and Access In-Reply-To: <498CA299.8080905@colbyconsulting.com> References: <9CBB659C05524E078CB7C9BC75F88867@danwaters> <29f585dd0902061244g657ce9afsa77493509fceb269@mail.gmail.com> <498CA299.8080905@colbyconsulting.com> Message-ID: <29f585dd0902061350m3f2030dbg1a0e0303bf234fff@mail.gmail.com> No I'm back in Toronto, just in time for the snowstorms. But it's nice to be back in big vibrant city again. I'm between contracts at the moment but I'm up for two government gigs. Figures --- the only people hiring are government ministries. A. On Fri, Feb 6, 2009 at 3:50 PM, jwcolby wrote: > Arthur, are you still in Bermuda? If so how is the job going? > > John W. Colby > www.ColbyConsulting.com > > > From dwaters at usinternet.com Fri Feb 6 15:53:04 2009 From: dwaters at usinternet.com (Dan Waters) Date: Fri, 6 Feb 2009 15:53:04 -0600 Subject: [AccessD] Citrix and Access In-Reply-To: <005301c988a0$21c5dd10$400aa8c0@qmotionfaa3ad9> References: <9CBB659C05524E078CB7C9BC75F88867@danwaters> <005301c988a0$21c5dd10$400aa8c0@qmotionfaa3ad9> Message-ID: <5921EDC3A964434EBAA4F1FBBE762D13@danwaters> Thanks Pedro, Luckily I won't be looking at large tables! But I'll watch for the focus issues. Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Pedro Janssen Sent: Friday, February 06, 2009 3:16 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Citrix and Access Hello Dan, in the hospital where i work, we have access on citrix. We have only few troubles with citrix and access.With the citrix client version 8, we had focusproblems. But these focusproblems were for al office products under citrix. When client version 10 was installed. the where still some focusproblems, but these where minor. With focusproblems i mean. I close a table in access. Normally the focus then goes to the database window, but with citrix the focus sometimes went to another program, that was open, or to the desktop. Another issue with citrix is that not al virusscanners are citrix proof. When you use one that isn't, you get sometimes (or many times) an annoying type delay. You type the letters, but they appear seconds later. Whit scrolling this isn't annoying, but a pain in the a......... When scrolling through a large table, and the delay gets to the scrolling, you better go do something else. The scrolling then is very slow, can't be speed up and you have to wait and wait. Succes Best Wishes Pedro ----- Original Message ----- From: "Dan Waters" To: "'Access Developers discussion and problem solving'" Sent: Friday, February 06, 2009 7:19 PM Subject: [AccessD] Citrix and Access > One of my customers is considering placing their Access 2003 app on a > Citrix > server (we will have users in Asia). He says that he believes that more > recent versions of Citrix are expected to work better with Access than in > the past, but he's not saying for certain. > > Does anyone have recent experience placing an Access app on a Citrix > server? > Any issues unique to Access? Or any links to helpful information? > > Thanks! > Dan > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From fuller.artful at gmail.com Fri Feb 6 15:55:14 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Fri, 6 Feb 2009 16:55:14 -0500 Subject: [AccessD] Citrix and Access In-Reply-To: References: <9CBB659C05524E078CB7C9BC75F88867@danwaters> <29f585dd0902061244g657ce9afsa77493509fceb269@mail.gmail.com> Message-ID: <29f585dd0902061355t1b138494vf2baaba7b64bebe@mail.gmail.com> We were using an ADP front end tied directly to SQL 2000 on Windows Server 2000 and then Server 2003. Plenty of RAM and a really fast SCSI set of drives. It was amazingly quick. I've never used Citrix. I gather it's something built on top of TS and adding a few features to the party, but I couldn't say what they are. A. On Fri, Feb 6, 2009 at 4:04 PM, Dan Waters wrote: > Hi Arthur, > > Anything you can think of that might have been restrictive or need to know? > I'll be switching out many users from running on their PC to using a Citrix > window. > > Glad to hear about the response time! Was your FE linked to SQL 2000 or > were you using an OLEDB Provider? > > From fuller.artful at gmail.com Fri Feb 6 16:01:49 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Fri, 6 Feb 2009 17:01:49 -0500 Subject: [AccessD] Citrix and Access In-Reply-To: <5921EDC3A964434EBAA4F1FBBE762D13@danwaters> References: <9CBB659C05524E078CB7C9BC75F88867@danwaters> <005301c988a0$21c5dd10$400aa8c0@qmotionfaa3ad9> <5921EDC3A964434EBAA4F1FBBE762D13@danwaters> Message-ID: <29f585dd0902061401y548eda56l73c5b8fbf0e4bb5e@mail.gmail.com> I was looking at relatively large tables (50,000 orders and about 500,000 order details). But I bound the forms to stored procedures rather than tables and applied what I call the Sally Rand principle (she was a famous stripper) -- show them only enough to maintain their interest. In practice that meant the sales "browser" showed sales from the last 30 days by default, with buttons to expand the scope to 60, 90. 120 and All. I showed only a few of the many columns. The browser was read-only and you could sort by column. To edit an order you double-clicked on any column in the row of interest. Then a master-detail form opened, containing the one order and its details. That resulted in lightning-fast response. Arthur On Fri, Feb 6, 2009 at 4:53 PM, Dan Waters wrote: > Thanks Pedro, > > Luckily I won't be looking at large tables! But I'll watch for the focus > issues. > > Dan > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Pedro Janssen > Sent: Friday, February 06, 2009 3:16 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Citrix and Access > > Hello Dan, > > in the hospital where i work, we have access on citrix. > We have only few troubles with citrix and access.With the citrix client > version 8, we had focusproblems. But these focusproblems were for al office > products under citrix. When client version 10 was installed. the where > still > > some focusproblems, but these where minor. With focusproblems i mean. I > close a table in access. Normally the focus then goes to the database > window, but with citrix the focus sometimes went to another program, that > was open, or to the desktop. > Another issue with citrix is that not al virusscanners are citrix proof. > When you use one that isn't, you get sometimes (or many times) an annoying > type delay. You type the letters, but they appear seconds later. Whit > scrolling this isn't annoying, but a pain in the a......... When scrolling > through a large table, and the delay gets to the scrolling, you better go > do > > something else. The scrolling then is very slow, can't be speed up and you > have to wait and wait. > > Succes > > Best Wishes > > Pedro > > > > > ----- Original Message ----- > From: "Dan Waters" > To: "'Access Developers discussion and problem solving'" > > Sent: Friday, February 06, 2009 7:19 PM > Subject: [AccessD] Citrix and Access > > > > One of my customers is considering placing their Access 2003 app on a > > Citrix > > server (we will have users in Asia). He says that he believes that more > > recent versions of Citrix are expected to work better with Access than in > > the past, but he's not saying for certain. > > > > Does anyone have recent experience placing an Access app on a Citrix > > server? > > Any issues unique to Access? Or any links to helpful information? > > > > Thanks! > > Dan > > > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From ssharkins at gmail.com Fri Feb 6 16:26:35 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Fri, 6 Feb 2009 17:26:35 -0500 Subject: [AccessD] OT: I'm old References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com><1732ED73D0B8408884AE2F5840AAE9EB@SusanOne> <498c8f82.06e2660a.7ac3.1967@mx.google.com> Message-ID: Yelp. :) I remember DOS when it was just DOS! ;) Susan H. > Was I right then? > From ssharkins at gmail.com Fri Feb 6 16:27:22 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Fri, 6 Feb 2009 17:27:22 -0500 Subject: [AccessD] OT: I'm old References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com> <498C9005.4050905@colbyconsulting.com> Message-ID: <79C29B2E09AE4ACAA0927A0025802367@SusanOne> > On a similar note, I have many boxes of VHS tapes in the basement, which I > haven't even opened since > we moved up from Mexico in 2000. I actually do have a TV with a VCR built > into it but when that goes... ======Your local library will probably still take them -- at least for a while. :) Susan H. From ssharkins at gmail.com Fri Feb 6 16:27:57 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Fri, 6 Feb 2009 17:27:57 -0500 Subject: [AccessD] OT: I'm old References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005><498C8723.3050606@colbyconsulting.com> <3331DEA7DEF7463FA08AC40E802115E4@SusanOne> <498c9067.06a1660a.5217.ffff98af@mx.google.com> Message-ID: <0EC5ADB204824D60A0B2A57F5B839B14@SusanOne> Max, you're on a roll today! ;) Susan H. > Oooooh. Do I detect a tiny trace of sarcasm. Just a tickle around the > corner of the eye.... > >> A and B are still not available. So MS has just decided that floppy >> drives > >> are an essential legacy support item. :-) > > =========Unlike their products, which some of us still actually use. > > Susan H. > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From DWUTKA at Marlow.com Fri Feb 6 16:33:46 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Fri, 6 Feb 2009 16:33:46 -0600 Subject: [AccessD] The Money Drive (WAS: OT: I'm old) In-Reply-To: <498c8f82.06e2660a.7ac3.1967@mx.google.com> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com><1732ED73D0B8408884AE2F5840AAE9EB@SusanOne> <498c8f82.06e2660a.7ac3.1967@mx.google.com> Message-ID: For S & G's, I did a googling about drive letters, to see if there was anything out there about A and B drives that didn't have to do with older computers usually having one or two floppy drives... Nope, that's the real deal. No other mystical explanation. (Most people don't realize why IP addresses are four quads of 0 to 255... ;) ) Anyhow, in reading the pages I found, I discovered something VERY interesting about SUBST. For those of you who do not know, SUBST is a DOS command (but works in XP and Vista too), that allows you to 'create' a virtual drive off of a physical folder. For example, let's say you have a network drive 'T:' at work. And you have an application that depends on files being at T:\SomeFolder\*.* . Well if you create a folder on your C: drive, and call it TDrive (Thus C:\TDrive) then copy that 'SomeFolder' into that TDrive folder. Then, from a DOS prompt, you can put in: SUBST T: C:\TDrive And Whalla, you now have a T: drive, that is really the 'C:\TDrive' folder. Anywho...the neat thing I found out about SUBST that I never knew, is that SUBST actually let's you use non-alpha (some of them...) characters to create these 'virtual' drive letters. They don't appear to show up in Explorer though (at least not in Vista). I have a folder on my C drive called 'Downloads'. So in a dos prompt, the following command: SUBST $: C:\Downloads Allowed me to then go: $: Which gave me a: $:\ Prompt, which I could then do a DIR in, and it listed the contents of my 'money' drive! LOL Ok, I'm a geek! ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Friday, February 06, 2009 1:29 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT: I'm old Was I right then? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: 06 February 2009 19:24 To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old Not only has Max earned his daily dose of Geritol, but give that man a handy dandy box of punch cards (punch not included). Susan H. >I have a feeling (but could definitely be wrong - memory and all that!) >that > if you only have ONE physical drive and you do copy a:*.* b: it will > prompt > you to insert the next floppy disk in the physical drive when it has read > the first floppy disk. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Fri Feb 6 16:37:00 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Fri, 6 Feb 2009 16:37:00 -0600 Subject: [AccessD] OT: I'm old In-Reply-To: <498C9005.4050905@colbyconsulting.com> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com> <498C9005.4050905@colbyconsulting.com> Message-ID: If they aren't store bought movie videos (which usually have Macro protection from copying), you can pretty easily convert them to a DVD with a computer that has a TV input jack (a lot of newer ones (last few years) have them). Just a thought.... Ya gotta admit though, the period where some PC's used cassette tape drives just plain sucked. Ever try to load a big program from one of those? Error... Error... Error... ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 06, 2009 1:31 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old When I built my second PC in 1982, I bought a double 1 mbyte 8" floppy drive for $600, all in one physical case. I had heard of them hard disk thingies (and fixed them in the US Navy) but my single board computer didn't have an interface for it. On a similar note, I have many boxes of VHS tapes in the basement, which I haven't even opened since we moved up from Mexico in 2000. I actually do have a TV with a VCR built into it but when that goes... John W. Colby www.ColbyConsulting.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From davidmcafee at gmail.com Fri Feb 6 17:07:23 2009 From: davidmcafee at gmail.com (David McAfee) Date: Fri, 6 Feb 2009 15:07:23 -0800 Subject: [AccessD] The Money Drive (WAS: OT: I'm old) In-Reply-To: References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com> <1732ED73D0B8408884AE2F5840AAE9EB@SusanOne> <498c8f82.06e2660a.7ac3.1967@mx.google.com> Message-ID: <8786a4c00902061507xbede9e6s225bb057769694f1@mail.gmail.com> Did you try A or B drive? On Fri, Feb 6, 2009 at 2:33 PM, Drew Wutka wrote: > For S & G's, I did a googling about drive letters, to see if there was > anything out there about A and B drives that didn't have to do with > older computers usually having one or two floppy drives... > > Nope, that's the real deal. No other mystical explanation. (Most > people don't realize why IP addresses are four quads of 0 to 255... ;) ) > > Anyhow, in reading the pages I found, I discovered something VERY > interesting about SUBST. For those of you who do not know, SUBST is a > DOS command (but works in XP and Vista too), that allows you to 'create' > a virtual drive off of a physical folder. > > For example, let's say you have a network drive 'T:' at work. And you > have an application that depends on files being at T:\SomeFolder\*.* . > Well if you create a folder on your C: drive, and call it TDrive (Thus > C:\TDrive) then copy that 'SomeFolder' into that TDrive folder. Then, > from a DOS prompt, you can put in: > > SUBST T: C:\TDrive > > And Whalla, you now have a T: drive, that is really the 'C:\TDrive' > folder. > > Anywho...the neat thing I found out about SUBST that I never knew, is > that SUBST actually let's you use non-alpha (some of them...) characters > to create these 'virtual' drive letters. They don't appear to show up > in Explorer though (at least not in Vista). > > I have a folder on my C drive called 'Downloads'. So in a dos prompt, > the following command: > > SUBST $: C:\Downloads > > Allowed me to then go: > > $: > > Which gave me a: > > $:\ > > Prompt, which I could then do a DIR in, and it listed the contents of my > 'money' drive! LOL > > Ok, I'm a geek! ;) > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Friday, February 06, 2009 1:29 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] OT: I'm old > > Was I right then? > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins > Sent: 06 February 2009 19:24 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] OT: I'm old > > Not only has Max earned his daily dose of Geritol, but give that man a > handy > > dandy box of punch cards (punch not included). > > Susan H. > > >>I have a feeling (but could definitely be wrong - memory and all that!) > >>that >> if you only have ONE physical drive and you do copy a:*.* b: it will >> prompt >> you to insert the next floppy disk in the physical drive when it has > read >> the first floppy disk. > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From rockysmolin at bchacc.com Fri Feb 6 17:08:30 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Fri, 6 Feb 2009 15:08:30 -0800 Subject: [AccessD] OT: I'm old In-Reply-To: References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com><498C9005.4050905@colbyconsulting.com> Message-ID: <3002995E75E44E33BD65C5421A117388@HAL9005> I used paper tape. It wasn't very...robust. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Friday, February 06, 2009 2:37 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old If they aren't store bought movie videos (which usually have Macro protection from copying), you can pretty easily convert them to a DVD with a computer that has a TV input jack (a lot of newer ones (last few years) have them). Just a thought.... Ya gotta admit though, the period where some PC's used cassette tape drives just plain sucked. Ever try to load a big program from one of those? Error... Error... Error... ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 06, 2009 1:31 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old When I built my second PC in 1982, I bought a double 1 mbyte 8" floppy drive for $600, all in one physical case. I had heard of them hard disk thingies (and fixed them in the US Navy) but my single board computer didn't have an interface for it. On a similar note, I have many boxes of VHS tapes in the basement, which I haven't even opened since we moved up from Mexico in 2000. I actually do have a TV with a VCR built into it but when that goes... John W. Colby www.ColbyConsulting.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From DWUTKA at Marlow.com Fri Feb 6 17:15:22 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Fri, 6 Feb 2009 17:15:22 -0600 Subject: [AccessD] The Money Drive (WAS: OT: I'm old) In-Reply-To: <8786a4c00902061507xbede9e6s225bb057769694f1@mail.gmail.com> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005><498C8723.3050606@colbyconsulting.com><498c8ce3.0216300a.1fc0.5ddc@mx.google.com><1732ED73D0B8408884AE2F5840AAE9EB@SusanOne><498c8f82.06e2660a.7ac3.1967@mx.google.com> <8786a4c00902061507xbede9e6s225bb057769694f1@mail.gmail.com> Message-ID: Yep, A and B both work, and they do show up in Windows Explorer too. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of David McAfee Sent: Friday, February 06, 2009 5:07 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] The Money Drive (WAS: OT: I'm old) Did you try A or B drive? On Fri, Feb 6, 2009 at 2:33 PM, Drew Wutka wrote: > For S & G's, I did a googling about drive letters, to see if there was > anything out there about A and B drives that didn't have to do with > older computers usually having one or two floppy drives... > > Nope, that's the real deal. No other mystical explanation. (Most > people don't realize why IP addresses are four quads of 0 to 255... ;) ) > > Anyhow, in reading the pages I found, I discovered something VERY > interesting about SUBST. For those of you who do not know, SUBST is a > DOS command (but works in XP and Vista too), that allows you to 'create' > a virtual drive off of a physical folder. > > For example, let's say you have a network drive 'T:' at work. And you > have an application that depends on files being at T:\SomeFolder\*.* . > Well if you create a folder on your C: drive, and call it TDrive (Thus > C:\TDrive) then copy that 'SomeFolder' into that TDrive folder. Then, > from a DOS prompt, you can put in: > > SUBST T: C:\TDrive > > And Whalla, you now have a T: drive, that is really the 'C:\TDrive' > folder. > > Anywho...the neat thing I found out about SUBST that I never knew, is > that SUBST actually let's you use non-alpha (some of them...) characters > to create these 'virtual' drive letters. They don't appear to show up > in Explorer though (at least not in Vista). > > I have a folder on my C drive called 'Downloads'. So in a dos prompt, > the following command: > > SUBST $: C:\Downloads > > Allowed me to then go: > > $: > > Which gave me a: > > $:\ > > Prompt, which I could then do a DIR in, and it listed the contents of my > 'money' drive! LOL > > Ok, I'm a geek! ;) > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Friday, February 06, 2009 1:29 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] OT: I'm old > > Was I right then? > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins > Sent: 06 February 2009 19:24 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] OT: I'm old > > Not only has Max earned his daily dose of Geritol, but give that man a > handy > > dandy box of punch cards (punch not included). > > Susan H. > > >>I have a feeling (but could definitely be wrong - memory and all that!) > >>that >> if you only have ONE physical drive and you do copy a:*.* b: it will >> prompt >> you to insert the next floppy disk in the physical drive when it has > read >> the first floppy disk. > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwcolby at colbyconsulting.com Fri Feb 6 17:27:50 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 06 Feb 2009 18:27:50 -0500 Subject: [AccessD] OT: I'm old In-Reply-To: References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com> <498C9005.4050905@colbyconsulting.com> Message-ID: <498CC776.4010102@colbyconsulting.com> I built my first two PCs from advertisements for parts from the back of Popular Electronics. My first home built was purchased and built in 1977, the year before I got out of the Navy. It was an "S100" (the backplane standard) z-80 1 mhz processor (could access 64K ram) board with (2) 4K static RAM boards (dynamic ram didn't exist yet), and (3) 8K static RAM boards, 1 of which never functioned properly. So I had a system with 24 K of RAM. It had a terminal board with 4K of RAM (80 * 24 lines IIRC) and a general IO board with a serial adapter which loaded data from a cassette tape at 1.2 KBaud. Somewhere or another I found a 16KB "Zapple basic" http://en.wikipedia.org/wiki/Zapple_Monitor So I would spend 3 minutes loading the 16K zapple basic into my 24K or RAM, leaving me 8K for my programs. That was what I originally learned to program with, although it tended to crash a lot. My next computer, built in ~1982 was a HUGE step up, a SBC (single board computer), again a kit I purchased and soldered together. It used an 16 mhz 80186 uC and had onboard space for 256K dynamic RAM, although you could use these funky sockets that allowed "stacking" two ram chips on top of each other to double your RAM to 512k. The sockets were extremely unreliable so I eventually just soldered the bottom row of chips, then soldered another set on top. Bend out the CAS line and soldered a wire down into the board and voila, 512 Kbytes dynamic RAM hardwired. WOAH!!! That was the system with a dual 1mbyte floppy. It ran CPM86 and I purchased Turbo Pascal from some French guy nobody (including me) had ever heard of called Philippe Kahn. http://en.wikipedia.org/wiki/Philippe_Kahn#Borland_.281982-1995.29 At that time (1980-84) I worked for a startup Graphics company called Megatek Corp down in Sorrento Valley, CA. http://findarticles.com/p/articles/mi_hb5247/is_n16_v12/ai_n28601533/pg_1 At that time they made high end graphics workstations and I repaired those workstations. In 1983 I found 4 of their low end workstations in the dumpster and hauled them back in to the plant and requested to be allowed to keep them. They were in the dumpster because they were engineering prototypes and had to be destroyed for "tax reasons". Like hell I said, and eventually I got permission to take them home. My SBC had a pair of "high speed serial" ports and could talk to these terminals at 128K bit / sec. The terminals actually used the same processor (80186) as my SBC, with 512 kbytes of display list memory to build pictures in, and a dedicated video display "instruction set" firmware in 512K of PROM, which allowed drawing lines (in color!) and doing "hardware translation / rotation / scaling", IOW the terminal itself could store the picture, and then make it bigger or smaller (scaling), move it back and forth across the screen (translation) and rotate the image in 3D. It could also do polygon fill color manipulation, z-axis hidden surface elimination etc. All VERY whiz bang in those days. These "low end" terminals sold for about $30,000 in 1982 and I had 4 of them, though I gave 3 away to friends who also had built the identical SBC with me. I had a friend that wrote Fortran display drivers for Megatek who gave me programming lessons in Turbo Pascal, and about a year later I had written a complete driver set (interface to every single graphics instruction that the display understood) for Turbo Pascal to interface to these Megatek Terminals and had a demo program written that drew a sphere in 3D using triangle polygons, which could be scaled / rotated / translated. And thus a programmer was born. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > If they aren't store bought movie videos (which usually have Macro > protection from copying), you can pretty easily convert them to a DVD > with a computer that has a TV input jack (a lot of newer ones (last few > years) have them). > > Just a thought.... > > Ya gotta admit though, the period where some PC's used cassette tape > drives just plain sucked. Ever try to load a big program from one of > those? > > Error... > > Error... > > Error... > > ;) > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 06, 2009 1:31 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] OT: I'm old > > When I built my second PC in 1982, I bought a double 1 mbyte 8" floppy > drive for $600, all in one > physical case. I had heard of them hard disk thingies (and fixed them > in the US Navy) but my single > board computer didn't have an interface for it. > > On a similar note, I have many boxes of VHS tapes in the basement, which > I haven't even opened since > we moved up from Mexico in 2000. I actually do have a TV with a VCR > built into it but when that goes... > > John W. Colby > www.ColbyConsulting.com > > > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > > From cfoust at infostatsystems.com Fri Feb 6 17:27:08 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Fri, 6 Feb 2009 15:27:08 -0800 Subject: [AccessD] OT: I'm old In-Reply-To: References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com><498C9005.4050905@colbyconsulting.com> Message-ID: First PC I ever worked on loaded its programs from a tape recorder. You had to be REAL careful to push the right button or you wiped out the whole program! Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Friday, February 06, 2009 2:37 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old If they aren't store bought movie videos (which usually have Macro protection from copying), you can pretty easily convert them to a DVD with a computer that has a TV input jack (a lot of newer ones (last few years) have them). Just a thought.... Ya gotta admit though, the period where some PC's used cassette tape drives just plain sucked. Ever try to load a big program from one of those? Error... Error... Error... ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 06, 2009 1:31 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old When I built my second PC in 1982, I bought a double 1 mbyte 8" floppy drive for $600, all in one physical case. I had heard of them hard disk thingies (and fixed them in the US Navy) but my single board computer didn't have an interface for it. On a similar note, I have many boxes of VHS tapes in the basement, which I haven't even opened since we moved up from Mexico in 2000. I actually do have a TV with a VCR built into it but when that goes... John W. Colby www.ColbyConsulting.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Fri Feb 6 17:28:39 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 06 Feb 2009 18:28:39 -0500 Subject: [AccessD] OT: I'm old In-Reply-To: <3002995E75E44E33BD65C5421A117388@HAL9005> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com><498C9005.4050905@colbyconsulting.com> <3002995E75E44E33BD65C5421A117388@HAL9005> Message-ID: <498CC7A7.8020602@colbyconsulting.com> ROTFL, now THAT brings back memories. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > I used paper tape. It wasn't very...robust. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Friday, February 06, 2009 2:37 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] OT: I'm old > > If they aren't store bought movie videos (which usually have Macro > protection from copying), you can pretty easily convert them to a DVD with a > computer that has a TV input jack (a lot of newer ones (last few > years) have them). > > Just a thought.... > > Ya gotta admit though, the period where some PC's used cassette tape drives > just plain sucked. Ever try to load a big program from one of those? > > Error... > > Error... > > Error... > > ;) > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 06, 2009 1:31 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] OT: I'm old > > When I built my second PC in 1982, I bought a double 1 mbyte 8" floppy drive > for $600, all in one physical case. I had heard of them hard disk thingies > (and fixed them in the US Navy) but my single board computer didn't have an > interface for it. > > On a similar note, I have many boxes of VHS tapes in the basement, which I > haven't even opened since we moved up from Mexico in 2000. I actually do > have a TV with a VCR built into it but when that goes... > > John W. Colby > www.ColbyConsulting.com > > > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI Proprietary > and/or II-VI Business Sensitive material. If you are not the intended > recipient, please contact the sender immediately and destroy the material in > its entirety, whether electronic or hard copy. You are notified that any > review, retransmission, copying, disclosure, dissemination, or other use of, > or taking of any action in reliance upon this information by persons or > entities other than the intended recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From cfoust at infostatsystems.com Fri Feb 6 17:27:44 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Fri, 6 Feb 2009 15:27:44 -0800 Subject: [AccessD] OT: I'm old In-Reply-To: <3002995E75E44E33BD65C5421A117388@HAL9005> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com><498C9005.4050905@colbyconsulting.com> <3002995E75E44E33BD65C5421A117388@HAL9005> Message-ID: Handy though, if you ran out of tissue.... Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Friday, February 06, 2009 3:09 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT: I'm old I used paper tape. It wasn't very...robust. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Friday, February 06, 2009 2:37 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old If they aren't store bought movie videos (which usually have Macro protection from copying), you can pretty easily convert them to a DVD with a computer that has a TV input jack (a lot of newer ones (last few years) have them). Just a thought.... Ya gotta admit though, the period where some PC's used cassette tape drives just plain sucked. Ever try to load a big program from one of those? Error... Error... Error... ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 06, 2009 1:31 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old When I built my second PC in 1982, I bought a double 1 mbyte 8" floppy drive for $600, all in one physical case. I had heard of them hard disk thingies (and fixed them in the US Navy) but my single board computer didn't have an interface for it. On a similar note, I have many boxes of VHS tapes in the basement, which I haven't even opened since we moved up from Mexico in 2000. I actually do have a TV with a VCR built into it but when that goes... John W. Colby www.ColbyConsulting.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From ssharkins at gmail.com Fri Feb 6 17:53:12 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Fri, 6 Feb 2009 18:53:12 -0500 Subject: [AccessD] OT: I'm old References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com><498C9005.4050905@colbyconsulting.com> Message-ID: <20D550D57EEB479D9C4655293FAFD225@SusanOne> Okay, you get to be older than me. :) Susan H. > First PC I ever worked on loaded its programs from a tape recorder. You > had to be REAL careful to push the right button or you wiped out the > whole program! > From drboz at pacbell.net Fri Feb 6 18:05:59 2009 From: drboz at pacbell.net (Don Bozarth) Date: Fri, 6 Feb 2009 16:05:59 -0800 Subject: [AccessD] OT: I'm old References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com><1732ED73D0B8408884AE2F5840AAE9EB@SusanOne><498c8f82.06e2660a.7ac3.1967@mx.google.com> Message-ID: <01bf01c988b7$dc0900a0$6801a8c0@Don> Nah! You're not old unless you remember CP/M and ran a virgin (unmodified) BIOS.... Don B. ----- Original Message ----- From: "Susan Harkins" To: "Access Developers discussion and problem solving" Sent: Friday, February 06, 2009 2:26 PM Subject: Re: [AccessD] OT: I'm old > Yelp. :) I remember DOS when it was just DOS! ;) > > Susan H. > > >> Was I right then? >> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From drboz at pacbell.net Fri Feb 6 18:08:07 2009 From: drboz at pacbell.net (Don Bozarth) Date: Fri, 6 Feb 2009 16:08:07 -0800 Subject: [AccessD] OT: I'm old References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com><498C9005.4050905@colbyconsulting.com><3002995E75E44E33BD65C5421A117388@HAL9005> Message-ID: <01da01c988b8$27eb45a0$6801a8c0@Don> Nah... too oily and it smelled bad.... Don B. ----- Original Message ----- From: "Charlotte Foust" To: "Access Developers discussion and problem solving" Sent: Friday, February 06, 2009 3:27 PM Subject: Re: [AccessD] OT: I'm old > Handy though, if you ran out of tissue.... > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin > at Beach Access Software > Sent: Friday, February 06, 2009 3:09 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] OT: I'm old > > I used paper tape. It wasn't very...robust. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Friday, February 06, 2009 2:37 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] OT: I'm old > > If they aren't store bought movie videos (which usually have Macro > protection from copying), you can pretty easily convert them to a DVD > with a computer that has a TV input jack (a lot of newer ones (last few > years) have them). > > Just a thought.... > > Ya gotta admit though, the period where some PC's used cassette tape > drives just plain sucked. Ever try to load a big program from one of > those? > > Error... > > Error... > > Error... > > ;) > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 06, 2009 1:31 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] OT: I'm old > > When I built my second PC in 1982, I bought a double 1 mbyte 8" floppy > drive for $600, all in one physical case. I had heard of them hard disk > thingies (and fixed them in the US Navy) but my single board computer > didn't have an interface for it. > > On a similar note, I have many boxes of VHS tapes in the basement, which > I haven't even opened since we moved up from Mexico in 2000. I actually > do have a TV with a VCR built into it but when that goes... > > John W. Colby > www.ColbyConsulting.com > > > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy > the material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended > recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Fri Feb 6 18:45:10 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Fri, 6 Feb 2009 16:45:10 -0800 Subject: [AccessD] OT: I'm old In-Reply-To: <01bf01c988b7$dc0900a0$6801a8c0@Don> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com><1732ED73D0B8408884AE2F5840AAE9EB@SusanOne><498c8f82.06e2660a.7ac3.1967@mx.google.com> <01bf01c988b7$dc0900a0$6801a8c0@Don> Message-ID: BIOS? You had a BIOS? We had to carry our code from one register to another BY HAND!! Uphill. Both ways. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Don Bozarth Sent: Friday, February 06, 2009 4:06 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old Nah! You're not old unless you remember CP/M and ran a virgin (unmodified) BIOS.... Don B. ----- Original Message ----- From: "Susan Harkins" To: "Access Developers discussion and problem solving" Sent: Friday, February 06, 2009 2:26 PM Subject: Re: [AccessD] OT: I'm old > Yelp. :) I remember DOS when it was just DOS! ;) > > Susan H. > > >> Was I right then? >> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Fri Feb 6 18:44:53 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Fri, 6 Feb 2009 16:44:53 -0800 Subject: [AccessD] OT: I'm old In-Reply-To: <01bf01c988b7$dc0900a0$6801a8c0@Don> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com><1732ED73D0B8408884AE2F5840AAE9EB@SusanOne><498c8f82.06e2660a.7ac3.1967@mx.google.com> <01bf01c988b7$dc0900a0$6801a8c0@Don> Message-ID: Here, now! I resemble that remark!! Charlotte -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Don Bozarth Sent: Friday, February 06, 2009 4:06 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old Nah! You're not old unless you remember CP/M and ran a virgin (unmodified) BIOS.... Don B. ----- Original Message ----- From: "Susan Harkins" To: "Access Developers discussion and problem solving" Sent: Friday, February 06, 2009 2:26 PM Subject: Re: [AccessD] OT: I'm old > Yelp. :) I remember DOS when it was just DOS! ;) > > Susan H. > > >> Was I right then? >> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From davidmcafee at gmail.com Fri Feb 6 18:58:55 2009 From: davidmcafee at gmail.com (David McAfee) Date: Fri, 6 Feb 2009 16:58:55 -0800 Subject: [AccessD] The Money Drive (WAS: OT: I'm old) In-Reply-To: References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com> <1732ED73D0B8408884AE2F5840AAE9EB@SusanOne> <498c8f82.06e2660a.7ac3.1967@mx.google.com> <8786a4c00902061507xbede9e6s225bb057769694f1@mail.gmail.com> Message-ID: <8786a4c00902061658w7819de77j7e57d91cc0a96f4f@mail.gmail.com> Thats pretty cool for legacy apps. point them to a thumbdrive or folder on the C drive. On Fri, Feb 6, 2009 at 3:15 PM, Drew Wutka wrote: > Yep, A and B both work, and they do show up in Windows Explorer too. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of David McAfee > Sent: Friday, February 06, 2009 5:07 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] The Money Drive (WAS: OT: I'm old) > > Did you try A or B drive? > > On Fri, Feb 6, 2009 at 2:33 PM, Drew Wutka wrote: >> For S & G's, I did a googling about drive letters, to see if there was >> anything out there about A and B drives that didn't have to do with >> older computers usually having one or two floppy drives... >> >> Nope, that's the real deal. No other mystical explanation. (Most >> people don't realize why IP addresses are four quads of 0 to 255... ;) > ) >> >> Anyhow, in reading the pages I found, I discovered something VERY >> interesting about SUBST. For those of you who do not know, SUBST is a >> DOS command (but works in XP and Vista too), that allows you to > 'create' >> a virtual drive off of a physical folder. >> >> For example, let's say you have a network drive 'T:' at work. And you >> have an application that depends on files being at T:\SomeFolder\*.* . >> Well if you create a folder on your C: drive, and call it TDrive (Thus >> C:\TDrive) then copy that 'SomeFolder' into that TDrive folder. Then, >> from a DOS prompt, you can put in: >> >> SUBST T: C:\TDrive >> >> And Whalla, you now have a T: drive, that is really the 'C:\TDrive' >> folder. >> >> Anywho...the neat thing I found out about SUBST that I never knew, is >> that SUBST actually let's you use non-alpha (some of them...) > characters >> to create these 'virtual' drive letters. They don't appear to show up >> in Explorer though (at least not in Vista). >> >> I have a folder on my C drive called 'Downloads'. So in a dos prompt, >> the following command: >> >> SUBST $: C:\Downloads >> >> Allowed me to then go: >> >> $: >> >> Which gave me a: >> >> $:\ >> >> Prompt, which I could then do a DIR in, and it listed the contents of > my >> 'money' drive! LOL >> >> Ok, I'm a geek! ;) >> >> Drew >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo >> Sent: Friday, February 06, 2009 1:29 PM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] OT: I'm old >> >> Was I right then? >> >> Max >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan > Harkins >> Sent: 06 February 2009 19:24 >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] OT: I'm old >> >> Not only has Max earned his daily dose of Geritol, but give that man a >> handy >> >> dandy box of punch cards (punch not included). >> >> Susan H. >> >> >>>I have a feeling (but could definitely be wrong - memory and all > that!) >> >>>that >>> if you only have ONE physical drive and you do copy a:*.* b: it will >>> prompt >>> you to insert the next floppy disk in the physical drive when it has >> read >>> the first floppy disk. >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> The information contained in this transmission is intended only for > the person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy > the material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended > recipient is prohibited. >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From drboz at pacbell.net Fri Feb 6 20:17:47 2009 From: drboz at pacbell.net (Don Bozarth) Date: Fri, 6 Feb 2009 18:17:47 -0800 Subject: [AccessD] OT: I'm old References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com><1732ED73D0B8408884AE2F5840AAE9EB@SusanOne><498c8f82.06e2660a.7ac3.1967@mx.google.com><01bf01c988b7$dc0900a0$6801a8c0@Don> Message-ID: <021701c988ca$458141c0$6801a8c0@Don> Ok.... IMSAI 8080 no input device at all.... enter the instructions in binary with switches Don B. ----- Original Message ----- From: "Rocky Smolin at Beach Access Software" To: "'Access Developers discussion and problem solving'" Sent: Friday, February 06, 2009 4:45 PM Subject: Re: [AccessD] OT: I'm old > BIOS? You had a BIOS? We had to carry our code from one register to > another BY HAND!! Uphill. Both ways. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Don Bozarth > Sent: Friday, February 06, 2009 4:06 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] OT: I'm old > > Nah! You're not old unless you remember CP/M and ran a virgin > (unmodified) > BIOS.... > > Don B. > > ----- Original Message ----- > From: "Susan Harkins" > To: "Access Developers discussion and problem solving" > > Sent: Friday, February 06, 2009 2:26 PM > Subject: Re: [AccessD] OT: I'm old > > >> Yelp. :) I remember DOS when it was just DOS! ;) >> >> Susan H. >> >> >>> Was I right then? >>> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From DWUTKA at Marlow.com Fri Feb 6 21:41:02 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Fri, 6 Feb 2009 21:41:02 -0600 Subject: [AccessD] OT: I'm old In-Reply-To: <498CC776.4010102@colbyconsulting.com> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com> <498C9005.4050905@colbyconsulting.com> <498CC776.4010102@colbyconsulting.com> Message-ID: LOL. And to think that my Palm TX, which I bought a few years ago, has 100 meg of onboard RAM, a 400 mHz processor, and SD slots that can handle several gigs..... All in a tiny machine that fits in your palm, with a touch screen, wireless WAN and Blue Tooth too boot. Isn't it amazing what is out there today?!? Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 06, 2009 5:28 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old I built my first two PCs from advertisements for parts from the back of Popular Electronics. My first home built was purchased and built in 1977, the year before I got out of the Navy. It was an "S100" (the backplane standard) z-80 1 mhz processor (could access 64K ram) board with (2) 4K static RAM boards (dynamic ram didn't exist yet), and (3) 8K static RAM boards, 1 of which never functioned properly. So I had a system with 24 K of RAM. It had a terminal board with 4K of RAM (80 * 24 lines IIRC) and a general IO board with a serial adapter which loaded data from a cassette tape at 1.2 KBaud. Somewhere or another I found a 16KB "Zapple basic" http://en.wikipedia.org/wiki/Zapple_Monitor So I would spend 3 minutes loading the 16K zapple basic into my 24K or RAM, leaving me 8K for my programs. That was what I originally learned to program with, although it tended to crash a lot. My next computer, built in ~1982 was a HUGE step up, a SBC (single board computer), again a kit I purchased and soldered together. It used an 16 mhz 80186 uC and had onboard space for 256K dynamic RAM, although you could use these funky sockets that allowed "stacking" two ram chips on top of each other to double your RAM to 512k. The sockets were extremely unreliable so I eventually just soldered the bottom row of chips, then soldered another set on top. Bend out the CAS line and soldered a wire down into the board and voila, 512 Kbytes dynamic RAM hardwired. WOAH!!! That was the system with a dual 1mbyte floppy. It ran CPM86 and I purchased Turbo Pascal from some French guy nobody (including me) had ever heard of called Philippe Kahn. http://en.wikipedia.org/wiki/Philippe_Kahn#Borland_.281982-1995.29 At that time (1980-84) I worked for a startup Graphics company called Megatek Corp down in Sorrento Valley, CA. http://findarticles.com/p/articles/mi_hb5247/is_n16_v12/ai_n28601533/pg_ 1 At that time they made high end graphics workstations and I repaired those workstations. In 1983 I found 4 of their low end workstations in the dumpster and hauled them back in to the plant and requested to be allowed to keep them. They were in the dumpster because they were engineering prototypes and had to be destroyed for "tax reasons". Like hell I said, and eventually I got permission to take them home. My SBC had a pair of "high speed serial" ports and could talk to these terminals at 128K bit / sec. The terminals actually used the same processor (80186) as my SBC, with 512 kbytes of display list memory to build pictures in, and a dedicated video display "instruction set" firmware in 512K of PROM, which allowed drawing lines (in color!) and doing "hardware translation / rotation / scaling", IOW the terminal itself could store the picture, and then make it bigger or smaller (scaling), move it back and forth across the screen (translation) and rotate the image in 3D. It could also do polygon fill color manipulation, z-axis hidden surface elimination etc. All VERY whiz bang in those days. These "low end" terminals sold for about $30,000 in 1982 and I had 4 of them, though I gave 3 away to friends who also had built the identical SBC with me. I had a friend that wrote Fortran display drivers for Megatek who gave me programming lessons in Turbo Pascal, and about a year later I had written a complete driver set (interface to every single graphics instruction that the display understood) for Turbo Pascal to interface to these Megatek Terminals and had a demo program written that drew a sphere in 3D using triangle polygons, which could be scaled / rotated / translated. And thus a programmer was born. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > If they aren't store bought movie videos (which usually have Macro > protection from copying), you can pretty easily convert them to a DVD > with a computer that has a TV input jack (a lot of newer ones (last few > years) have them). > > Just a thought.... > > Ya gotta admit though, the period where some PC's used cassette tape > drives just plain sucked. Ever try to load a big program from one of > those? > > Error... > > Error... > > Error... > > ;) > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 06, 2009 1:31 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] OT: I'm old > > When I built my second PC in 1982, I bought a double 1 mbyte 8" floppy > drive for $600, all in one > physical case. I had heard of them hard disk thingies (and fixed them > in the US Navy) but my single > board computer didn't have an interface for it. > > On a similar note, I have many boxes of VHS tapes in the basement, which > I haven't even opened since > we moved up from Mexico in 2000. I actually do have a TV with a VCR > built into it but when that goes... > > John W. Colby > www.ColbyConsulting.com > > > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Fri Feb 6 21:42:33 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Fri, 6 Feb 2009 21:42:33 -0600 Subject: [AccessD] The Money Drive (WAS: OT: I'm old) In-Reply-To: <8786a4c00902061658w7819de77j7e57d91cc0a96f4f@mail.gmail.com> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005><498C8723.3050606@colbyconsulting.com><498c8ce3.0216300a.1fc0.5ddc@mx.google.com><1732ED73D0B8408884AE2F5840AAE9EB@SusanOne><498c8f82.06e2660a.7ac3.1967@mx.google.com><8786a4c00902061507xbede9e6s225bb057769694f1@mail.gmail.com> <8786a4c00902061658w7819de77j7e57d91cc0a96f4f@mail.gmail.com> Message-ID: If you want to run some legacy apps, I highly recommend Virtual PC. Load a true DOS, or a Windows 95 OS, and you can use imaged floppies! Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of David McAfee Sent: Friday, February 06, 2009 6:59 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] The Money Drive (WAS: OT: I'm old) Thats pretty cool for legacy apps. point them to a thumbdrive or folder on the C drive. On Fri, Feb 6, 2009 at 3:15 PM, Drew Wutka wrote: > Yep, A and B both work, and they do show up in Windows Explorer too. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of David McAfee > Sent: Friday, February 06, 2009 5:07 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] The Money Drive (WAS: OT: I'm old) > > Did you try A or B drive? > > On Fri, Feb 6, 2009 at 2:33 PM, Drew Wutka wrote: >> For S & G's, I did a googling about drive letters, to see if there was >> anything out there about A and B drives that didn't have to do with >> older computers usually having one or two floppy drives... >> >> Nope, that's the real deal. No other mystical explanation. (Most >> people don't realize why IP addresses are four quads of 0 to 255... ;) > ) >> >> Anyhow, in reading the pages I found, I discovered something VERY >> interesting about SUBST. For those of you who do not know, SUBST is a >> DOS command (but works in XP and Vista too), that allows you to > 'create' >> a virtual drive off of a physical folder. >> >> For example, let's say you have a network drive 'T:' at work. And you >> have an application that depends on files being at T:\SomeFolder\*.* . >> Well if you create a folder on your C: drive, and call it TDrive (Thus >> C:\TDrive) then copy that 'SomeFolder' into that TDrive folder. Then, >> from a DOS prompt, you can put in: >> >> SUBST T: C:\TDrive >> >> And Whalla, you now have a T: drive, that is really the 'C:\TDrive' >> folder. >> >> Anywho...the neat thing I found out about SUBST that I never knew, is >> that SUBST actually let's you use non-alpha (some of them...) > characters >> to create these 'virtual' drive letters. They don't appear to show up >> in Explorer though (at least not in Vista). >> >> I have a folder on my C drive called 'Downloads'. So in a dos prompt, >> the following command: >> >> SUBST $: C:\Downloads >> >> Allowed me to then go: >> >> $: >> >> Which gave me a: >> >> $:\ >> >> Prompt, which I could then do a DIR in, and it listed the contents of > my >> 'money' drive! LOL >> >> Ok, I'm a geek! ;) >> >> Drew >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo >> Sent: Friday, February 06, 2009 1:29 PM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] OT: I'm old >> >> Was I right then? >> >> Max >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan > Harkins >> Sent: 06 February 2009 19:24 >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] OT: I'm old >> >> Not only has Max earned his daily dose of Geritol, but give that man a >> handy >> >> dandy box of punch cards (punch not included). >> >> Susan H. >> >> >>>I have a feeling (but could definitely be wrong - memory and all > that!) >> >>>that >>> if you only have ONE physical drive and you do copy a:*.* b: it will >>> prompt >>> you to insert the next floppy disk in the physical drive when it has >> read >>> the first floppy disk. >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> The information contained in this transmission is intended only for > the person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy > the material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended > recipient is prohibited. >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwcolby at colbyconsulting.com Fri Feb 6 21:44:49 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 06 Feb 2009 22:44:49 -0500 Subject: [AccessD] OT: I'm old In-Reply-To: <021701c988ca$458141c0$6801a8c0@Don> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com><1732ED73D0B8408884AE2F5840AAE9EB@SusanOne><498c8f82.06e2660a.7ac3.1967@mx.google.com><01bf01c988b7$dc0900a0$6801a8c0@Don> <021701c988ca$458141c0$6801a8c0@Don> Message-ID: <498D03B1.6000102@colbyconsulting.com> This is what I trained on in 1972 at the Data Systems Training Command, Mare Island California. http://ed-thelen.org/comp-hist/BRL64-u.html Using that system we learned to read schematics and enter instructions into the computer using the switch panel on the left hand side. It had a TTY paper tape punch reader which we could store the program once entered. I was then sent to school to learn the Univac 1218 which was the general purpose "data processing center" minicomputer at the time, used for many general purpose processing tasks such as payroll and inventory. http://usmc81.blogspot.com/2008/01/univac-1218.html From there I learned the Univac 642 A/B which was used for fire control (weapons) and intelligence. http://dougscode.com/forum4/post.asp?method=TopicQuote&TOPIC_ID=23&FORUM_ID=13 http://ed-thelen.org/comp-hist/univac-ntds.html All of these things were designed in the late 50s and used individual resister / capacitor / transister circuits to build out and/or/flipflop gates, one such circuit per circuit card, with entire trays of such cards to build the machine. The IBM disk drive I was taught to repair had a 10 platter removable disk pack which stored (IIRC) 20 (or perhaps 80) megabytes. It used hydraulics to move the heads in and out and gears / detents to stop the thing. These systems actually drove the US Navy through the 60s, 70s and 80s. Of course all programming was done in assembler because memory space was so tight. John W. Colby www.ColbyConsulting.com Don Bozarth wrote: > Ok.... IMSAI 8080 no input device at all.... enter the instructions in > binary with switches > > Don B. > > ----- Original Message ----- > From: "Rocky Smolin at Beach Access Software" > To: "'Access Developers discussion and problem solving'" > > Sent: Friday, February 06, 2009 4:45 PM > Subject: Re: [AccessD] OT: I'm old > > >> BIOS? You had a BIOS? We had to carry our code from one register to >> another BY HAND!! Uphill. Both ways. >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com From rockysmolin at bchacc.com Fri Feb 6 23:43:55 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Fri, 6 Feb 2009 21:43:55 -0800 Subject: [AccessD] OT: I'm old In-Reply-To: <021701c988ca$458141c0$6801a8c0@Don> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com><1732ED73D0B8408884AE2F5840AAE9EB@SusanOne><498c8f82.06e2660a.7ac3.1967@mx.google.com><01bf01c988b7$dc0900a0$6801a8c0@Don> <021701c988ca$458141c0$6801a8c0@Don> Message-ID: Switches? You had switches? Oh, isn't that just grand!! We had tiny tubes we had to blow through to push the electrons around until we got them to where they would do something useful. Took us all day sometimes. That was REAL programming. Switches. Hah! Amateur! Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Don Bozarth Sent: Friday, February 06, 2009 6:18 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old Ok.... IMSAI 8080 no input device at all.... enter the instructions in binary with switches Don B. ----- Original Message ----- From: "Rocky Smolin at Beach Access Software" To: "'Access Developers discussion and problem solving'" Sent: Friday, February 06, 2009 4:45 PM Subject: Re: [AccessD] OT: I'm old > BIOS? You had a BIOS? We had to carry our code from one register to > another BY HAND!! Uphill. Both ways. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Don Bozarth > Sent: Friday, February 06, 2009 4:06 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] OT: I'm old > > Nah! You're not old unless you remember CP/M and ran a virgin > (unmodified) > BIOS.... > > Don B. > > ----- Original Message ----- > From: "Susan Harkins" > To: "Access Developers discussion and problem solving" > > Sent: Friday, February 06, 2009 2:26 PM > Subject: Re: [AccessD] OT: I'm old > > >> Yelp. :) I remember DOS when it was just DOS! ;) >> >> Susan H. >> >> >>> Was I right then? >>> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Sat Feb 7 01:10:31 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Sat, 7 Feb 2009 02:10:31 -0500 Subject: [AccessD] A2007 - Programmatically Minimize Ribbon References: <498AE648.5745.9E8FF2@stuart.lexacorp.com.pg> <498B3D9A.4050101@colbyconsulting.com> Message-ID: <89EF8FE5FF304931957A573508FD7250@jislaptopdev> "truly annoying to developers" jc ...they succeeded beyond their wildest dreams :( William -------------------------------------------------- From: "jwcolby" Sent: Thursday, February 05, 2009 2:27 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon > > Any ideas what's going on? > > Simple really, MS is DAMNED PROUD of their ribbon and is making sure that > you see it! They spent > several million dollars on usability studies to make sure that the ribbon > was useful to power users > and spent about another 10 million or so to make sure that it was truly > annoying to developers, and > they aren't about to let their investment slip through their fingers! > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: >> Stuart: >> >> Well, dang. It doesn't work. I put Call MinimizeRibbon in the _Open >> event, >> but the ribbon ended up maximized anyway. SO I moved it right at the >> end >> of the _Open event on the theory that maybe some of the housekeeping >> (resizing the form, maximizing the form, etc.) was affecting the ribbon. >> But no soap. >> >> So I moved it to the _Activate event. Same result. So I put MsgBox >> RibbonMinimized in the RibbonMinimized Function to see what the value was >> on >> the call. With the Call to MinimizeRibbon in the Activate event, it gets >> called 3 times. Each time the value of RibbonMinimized is True and the >> ribbon is indeed minimized. >> >> Then right at the end of the opening process, the ribbon re-appears. >> >> Ctrl-F1 from the keyboard toggles the ribbon nicely. And the code looks >> like it should work. And I stepped through it just to see what it was >> doing. >> >> Any ideas what's going on? >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From erbachs at gmail.com Sat Feb 7 05:35:09 2009 From: erbachs at gmail.com (Steve Erbach) Date: Sat, 7 Feb 2009 05:35:09 -0600 Subject: [AccessD] OT: I'm old In-Reply-To: References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com> <1732ED73D0B8408884AE2F5840AAE9EB@SusanOne> <498c8f82.06e2660a.7ac3.1967@mx.google.com> <01bf01c988b7$dc0900a0$6801a8c0@Don> <021701c988ca$458141c0$6801a8c0@Don> Message-ID: <39cb22f30902070335x21d4c190i5e6dd30b3b5e490f@mail.gmail.com> Rocky, Tubes? You had tubes?! Well, isn't that special? We had to do without electrons altogether! Electrons didn't even exist! We had to painstakingly carve out NAND gates and XOR gates into the side of mountains and roll boulders down channels to perform even the simplest computation. Then, of course, we had to roll them back to the top again. Our system was called the Sisyphus I. Tubes! Hah! Steve Erbach Neenah, WI http://www.NeenahPolitics.com http://www.TheTownCrank.com On Fri, Feb 6, 2009 at 11:43 PM, Rocky Smolin at Beach Access Software wrote: > Switches? You had switches? Oh, isn't that just grand!! > > We had tiny tubes we had to blow through to push the electrons around until > we got them to where they would do something useful. Took us all day > sometimes. > > That was REAL programming. > > Switches. Hah! Amateur! > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Don Bozarth > Sent: Friday, February 06, 2009 6:18 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] OT: I'm old > > Ok.... IMSAI 8080 no input device at all.... enter the instructions in > binary with switches > > Don B. From erbachs at gmail.com Sat Feb 7 05:50:31 2009 From: erbachs at gmail.com (Steve Erbach) Date: Sat, 7 Feb 2009 05:50:31 -0600 Subject: [AccessD] Semi-OT - VM Ware In-Reply-To: References: Message-ID: <39cb22f30902070350w6f2a8c93q2a33de93688cf673@mail.gmail.com> Rocky, Our network admin relies on VMWare for all sorts of stuff. He set up a monster server or two with 24 GB of RAM and 8 processors. VMWare machines have been set up to run SQL Server, Exchange Server, web servers, etc., etc., ... It's to the point now where he doesn't even consider setting up a system to just run an OS by itself. Now, it's set up to act as a VMWare host to run multiple servers. Interestingly enough, he doesn't use the latest VMWare 2 stuff, he's a believer in 1.4 or whatever the newest-but-one version is. I trust his judgement because he is the absolute hugest uber-geek I've ever met, bar none. Steve Erbach Neenah, WI http://www.NeenahPolitics.com http://www.TheTownCrank.com On Fri, Feb 6, 2009 at 9:26 AM, Rocky Smolin at Beach Access Software wrote: > FYI: articles on VM in the San Diego ComputorEdge > > http://webserver.computoredge.com/online.mvc?article=cover&issue=2706&zone=S > D&src=1 > > http://webserver.computoredge.com/online.mvc?article=in1&issue=2706&zone=SD& > src=1 > > > Rocky Smolin From Gustav at cactus.dk Sat Feb 7 06:02:43 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Sat, 07 Feb 2009 13:02:43 +0100 Subject: [AccessD] The Money Drive (WAS: OT: I'm old) Message-ID: Hi Drew OK, you are a true geek. I did know of subst - use it exactly for the purpose you describe, to simulate a (network) drive - but not that it accepts non-drive letters for drive letters. This one is really fun: SUBST :: C:\Windows Now you can make a dir ::\*.ini - but in the command window only, Explorer doesn't like it! /gustav >>> DWUTKA at marlow.com 06-02-2009 23:33 >>> For S & G's, I did a googling about drive letters, to see if there was anything out there about A and B drives that didn't have to do with older computers usually having one or two floppy drives... Nope, that's the real deal. No other mystical explanation. (Most people don't realize why IP addresses are four quads of 0 to 255... ;) ) Anyhow, in reading the pages I found, I discovered something VERY interesting about SUBST. For those of you who do not know, SUBST is a DOS command (but works in XP and Vista too), that allows you to 'create' a virtual drive off of a physical folder. For example, let's say you have a network drive 'T:' at work. And you have an application that depends on files being at T:\SomeFolder\*.* . Well if you create a folder on your C: drive, and call it TDrive (Thus C:\TDrive) then copy that 'SomeFolder' into that TDrive folder. Then, from a DOS prompt, you can put in: SUBST T: C:\TDrive And Whalla, you now have a T: drive, that is really the 'C:\TDrive' folder. Anywho...the neat thing I found out about SUBST that I never knew, is that SUBST actually let's you use non-alpha (some of them...) characters to create these 'virtual' drive letters. They don't appear to show up in Explorer though (at least not in Vista). I have a folder on my C drive called 'Downloads'. So in a dos prompt, the following command: SUBST $: C:\Downloads Allowed me to then go: $: Which gave me a: $:\ Prompt, which I could then do a DIR in, and it listed the contents of my 'money' drive! LOL Ok, I'm a geek! ;) Drew From Gustav at cactus.dk Sat Feb 7 06:13:53 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Sat, 07 Feb 2009 13:13:53 +0100 Subject: [AccessD] Semi-OT - VM Ware Message-ID: Hi Steve He probably doesn't like the browser based Server Console. Could you ask him about that? My colleague prefers to have the trouble opening ports in the firewall to be able to deal with the previous Windows-based Server Console. /gustav >>> erbachs at gmail.com 07-02-2009 12:50 >>> Rocky, Our network admin relies on VMWare for all sorts of stuff. He set up a monster server or two with 24 GB of RAM and 8 processors. VMWare machines have been set up to run SQL Server, Exchange Server, web servers, etc., etc., ... It's to the point now where he doesn't even consider setting up a system to just run an OS by itself. Now, it's set up to act as a VMWare host to run multiple servers. Interestingly enough, he doesn't use the latest VMWare 2 stuff, he's a believer in 1.4 or whatever the newest-but-one version is. I trust his judgement because he is the absolute hugest uber-geek I've ever met, bar none. Steve Erbach Neenah, WI http://www.NeenahPolitics.com http://www.TheTownCrank.com On Fri, Feb 6, 2009 at 9:26 AM, Rocky Smolin at Beach Access Software wrote: > FYI: articles on VM in the San Diego ComputorEdge > > http://webserver.computoredge.com/online.mvc?article=cover&issue=2706&zone=SD&src=1 > > http://webserver.computoredge.com/online.mvc?article=in1&issue=2706&zone=SD&src=1 > > > Rocky Smolin From stuart at lexacorp.com.pg Sat Feb 7 06:28:31 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Sat, 07 Feb 2009 22:28:31 +1000 Subject: [AccessD] OT: I'm old In-Reply-To: <39cb22f30902070335x21d4c190i5e6dd30b3b5e490f@mail.gmail.com> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005>, , <39cb22f30902070335x21d4c190i5e6dd30b3b5e490f@mail.gmail.com> Message-ID: <498E0B0F.4679.6A3202F@stuart.lexacorp.com.pg> I did it like this: http://xkcd.com/505/ On 7 Feb 2009 at 5:35, Steve Erbach wrote: > Rocky, > > Tubes? You had tubes?! Well, isn't that special? > > We had to do without electrons altogether! Electrons didn't even > exist! We had to painstakingly carve out NAND gates and XOR gates > into the side of mountains and roll boulders down channels to perform > even the simplest computation. Then, of course, we had to roll them > back to the top again. Our system was called the Sisyphus I. > > Tubes! Hah! > > Steve Erbach > Neenah, WI > http://www.NeenahPolitics.com > http://www.TheTownCrank.com > > On Fri, Feb 6, 2009 at 11:43 PM, Rocky Smolin at Beach Access Software > wrote: > > Switches? You had switches? Oh, isn't that just grand!! > > > > We had tiny tubes we had to blow through to push the electrons around until > > we got them to where they would do something useful. Took us all day > > sometimes. > > > > That was REAL programming. > > > > Switches. Hah! Amateur! > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Don Bozarth > > Sent: Friday, February 06, 2009 6:18 PM > > To: Access Developers discussion and problem solving > > Subject: Re: [AccessD] OT: I'm old > > > > Ok.... IMSAI 8080 no input device at all.... enter the instructions in > > binary with switches > > > > Don B. > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Sat Feb 7 07:25:00 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 07 Feb 2009 08:25:00 -0500 Subject: [AccessD] Semi-OT - VM Ware In-Reply-To: References: Message-ID: <498D8BAC.7070601@colbyconsulting.com> I don't like the browser based console either. It is a ROYAL PITA. And since I sit here inside of the firewall, why would I need it? John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi Steve > > He probably doesn't like the browser based Server Console. Could you ask him about that? My colleague prefers to have the trouble opening ports in the firewall to be able to deal with the previous Windows-based Server Console. > > /gustav > >>>> erbachs at gmail.com 07-02-2009 12:50 >>> > Rocky, > > Our network admin relies on VMWare for all sorts of stuff. He set up > a monster server or two with 24 GB of RAM and 8 processors. VMWare > machines have been set up to run SQL Server, Exchange Server, web > servers, etc., etc., ... > > It's to the point now where he doesn't even consider setting up a > system to just run an OS by itself. Now, it's set up to act as a > VMWare host to run multiple servers. > > Interestingly enough, he doesn't use the latest VMWare 2 stuff, he's a > believer in 1.4 or whatever the newest-but-one version is. I trust > his judgement because he is the absolute hugest uber-geek I've ever > met, bar none. > > Steve Erbach > Neenah, WI > http://www.NeenahPolitics.com > http://www.TheTownCrank.com > > > On Fri, Feb 6, 2009 at 9:26 AM, Rocky Smolin at Beach Access Software > wrote: >> FYI: articles on VM in the San Diego ComputorEdge >> >> http://webserver.computoredge.com/online.mvc?article=cover&issue=2706&zone=SD&src=1 >> >> http://webserver.computoredge.com/online.mvc?article=in1&issue=2706&zone=SD&src=1 >> >> >> Rocky Smolin > > > From max.wanadoo at gmail.com Sat Feb 7 07:38:57 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sat, 7 Feb 2009 13:38:57 -0000 Subject: [AccessD] OT: I'm old In-Reply-To: <498E0B0F.4679.6A3202F@stuart.lexacorp.com.pg> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005>, , <39cb22f30902070335x21d4c190i5e6dd30b3b5e490f@mail.gmail.com> <498E0B0F.4679.6A3202F@stuart.lexacorp.com.pg> Message-ID: <498d8ef4.06c8100a.51cb.1dff@mx.google.com> We just used our fingers and if the problem became too complex we took our shoes off. Back to basics eh? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: 07 February 2009 12:29 To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old I did it like this: http://xkcd.com/505/ On 7 Feb 2009 at 5:35, Steve Erbach wrote: > Rocky, > > Tubes? You had tubes?! Well, isn't that special? > > We had to do without electrons altogether! Electrons didn't even > exist! We had to painstakingly carve out NAND gates and XOR gates > into the side of mountains and roll boulders down channels to perform > even the simplest computation. Then, of course, we had to roll them > back to the top again. Our system was called the Sisyphus I. > > Tubes! Hah! > > Steve Erbach > Neenah, WI > http://www.NeenahPolitics.com > http://www.TheTownCrank.com > > On Fri, Feb 6, 2009 at 11:43 PM, Rocky Smolin at Beach Access Software > wrote: > > Switches? You had switches? Oh, isn't that just grand!! > > > > We had tiny tubes we had to blow through to push the electrons around until > > we got them to where they would do something useful. Took us all day > > sometimes. > > > > That was REAL programming. > > > > Switches. Hah! Amateur! > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Don Bozarth > > Sent: Friday, February 06, 2009 6:18 PM > > To: Access Developers discussion and problem solving > > Subject: Re: [AccessD] OT: I'm old > > > > Ok.... IMSAI 8080 no input device at all.... enter the instructions in > > binary with switches > > > > Don B. > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Sat Feb 7 08:04:19 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 07 Feb 2009 09:04:19 -0500 Subject: [AccessD] Semi-OT - VM Ware In-Reply-To: <39cb22f30902070350w6f2a8c93q2a33de93688cf673@mail.gmail.com> References: <39cb22f30902070350w6f2a8c93q2a33de93688cf673@mail.gmail.com> Message-ID: <498D94E3.9070208@colbyconsulting.com> I was just reading last night that the average DATABASE VM slows down the database engine by about 30%. In my case, the VMs I can use cannot use more than 2 cores, whereas SQL Server will use all 4 cores if used on bare metal. I am using VMs, but not for the database. OTOH, I do not have the budget for a server with a hundred gigabytes of RAM either. John W. Colby www.ColbyConsulting.com Steve Erbach wrote: > Rocky, > > Our network admin relies on VMWare for all sorts of stuff. He set up > a monster server or two with 24 GB of RAM and 8 processors. VMWare > machines have been set up to run SQL Server, Exchange Server, web > servers, etc., etc., ... > > It's to the point now where he doesn't even consider setting up a > system to just run an OS by itself. Now, it's set up to act as a > VMWare host to run multiple servers. > > Interestingly enough, he doesn't use the latest VMWare 2 stuff, he's a > believer in 1.4 or whatever the newest-but-one version is. I trust > his judgement because he is the absolute hugest uber-geek I've ever > met, bar none. > > Steve Erbach > Neenah, WI > http://www.NeenahPolitics.com > http://www.TheTownCrank.com > > > On Fri, Feb 6, 2009 at 9:26 AM, Rocky Smolin at Beach Access Software > wrote: >> FYI: articles on VM in the San Diego ComputorEdge >> >> http://webserver.computoredge.com/online.mvc?article=cover&issue=2706&zone=S >> D&src=1 >> >> http://webserver.computoredge.com/online.mvc?article=in1&issue=2706&zone=SD& >> src=1 >> >> >> Rocky Smolin From bheid at sc.rr.com Sat Feb 7 10:44:34 2009 From: bheid at sc.rr.com (Bobby Heid) Date: Sat, 7 Feb 2009 11:44:34 -0500 Subject: [AccessD] Semi-OT - VM Ware In-Reply-To: <498D94E3.9070208@colbyconsulting.com> References: <39cb22f30902070350w6f2a8c93q2a33de93688cf673@mail.gmail.com> <498D94E3.9070208@colbyconsulting.com> Message-ID: <006401c98943$5b6a7f50$123f7df0$@rr.com> A few months ago at our SQL Pass meeting, a guy presented on running SQL Server on Hyper-V. He stated that running it on hyper-v with pass-thru disks resulted in less than a 5% hit in their experiments at his company. I personally use VMware workstation at home and we use it for all kinds of servers at work. Thanks, Bobby -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, February 07, 2009 9:04 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Semi-OT - VM Ware I was just reading last night that the average DATABASE VM slows down the database engine by about 30%. In my case, the VMs I can use cannot use more than 2 cores, whereas SQL Server will use all 4 cores if used on bare metal. I am using VMs, but not for the database. OTOH, I do not have the budget for a server with a hundred gigabytes of RAM either. John W. Colby www.ColbyConsulting.com Steve Erbach wrote: > Rocky, > > Our network admin relies on VMWare for all sorts of stuff. He set up > a monster server or two with 24 GB of RAM and 8 processors. VMWare > machines have been set up to run SQL Server, Exchange Server, web > servers, etc., etc., ... > > It's to the point now where he doesn't even consider setting up a > system to just run an OS by itself. Now, it's set up to act as a > VMWare host to run multiple servers. > > Interestingly enough, he doesn't use the latest VMWare 2 stuff, he's a > believer in 1.4 or whatever the newest-but-one version is. I trust > his judgement because he is the absolute hugest uber-geek I've ever > met, bar none. > > Steve Erbach > Neenah, WI > http://www.NeenahPolitics.com > http://www.TheTownCrank.com > > > On Fri, Feb 6, 2009 at 9:26 AM, Rocky Smolin at Beach Access Software > wrote: >> FYI: articles on VM in the San Diego ComputorEdge >> >> http://webserver.computoredge.com/online.mvc?article=cover&issue=2706&zone=S >> D&src=1 >> >> http://webserver.computoredge.com/online.mvc?article=in1&issue=2706&zone=SD& >> src=1 >> >> >> Rocky Smolin -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From fuller.artful at gmail.com Sat Feb 7 12:09:41 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Sat, 7 Feb 2009 13:09:41 -0500 Subject: [AccessD] OT: I'm old In-Reply-To: References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <498C8723.3050606@colbyconsulting.com> <498c8ce3.0216300a.1fc0.5ddc@mx.google.com> <1732ED73D0B8408884AE2F5840AAE9EB@SusanOne> <498c8f82.06e2660a.7ac3.1967@mx.google.com> <01bf01c988b7$dc0900a0$6801a8c0@Don> Message-ID: <29f585dd0902071009g280aa552i838060026ee9eceb@mail.gmail.com> In Canada we were so poor we couldn't afford Ones. We had to program everything with Zeroes. But it was easier than driving a sled dog to the Yukon. A. From rockysmolin at bchacc.com Sat Feb 7 12:40:45 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Sat, 7 Feb 2009 10:40:45 -0800 Subject: [AccessD] OT: I'm old In-Reply-To: <29f585dd0902071009g280aa552i838060026ee9eceb@mail.gmail.com> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005><498C8723.3050606@colbyconsulting.com><498c8ce3.0216300a.1fc0.5ddc@mx.google.com><1732ED73D0B8408884AE2F5840AAE9EB@SusanOne><498c8f82.06e2660a.7ac3.1967@mx.google.com><01bf01c988b7$dc0900a0$6801a8c0@Don> <29f585dd0902071009g280aa552i838060026ee9eceb@mail.gmail.com> Message-ID: <654A491FAD4C4E129B4BF59ABD398DDC@HAL9005> "driving a sled dog to the Yukon" is that where they grew the Ones? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Arthur Fuller Sent: Saturday, February 07, 2009 10:10 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old In Canada we were so poor we couldn't afford Ones. We had to program everything with Zeroes. But it was easier than driving a sled dog to the Yukon. A. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Sat Feb 7 13:20:13 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Sat, 7 Feb 2009 14:20:13 -0500 Subject: [AccessD] OT: I'm old References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005><498C8723.3050606@colbyconsulting.com><498c8ce3.0216300a.1fc0.5ddc@mx.google.com><1732ED73D0B8408884AE2F5840AAE9EB@SusanOne><498c8f82.06e2660a.7ac3.1967@mx.google.com><01bf01c988b7$dc0900a0$6801a8c0@Don> <29f585dd0902071009g280aa552i838060026ee9eceb@mail.gmail.com> Message-ID: <7C9754A61D5841C992CB9D2D9E5FE8F3@jislaptopdev> ...programming with zeroes ...sounds like a client of mine :( William -------------------------------------------------- From: "Arthur Fuller" Sent: Saturday, February 07, 2009 1:09 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] OT: I'm old > In Canada we were so poor we couldn't afford Ones. We had to program > everything with Zeroes. But it was easier than driving a sled dog to the > Yukon. > > A. > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From nd500_lo at charter.net Sat Feb 7 14:09:38 2009 From: nd500_lo at charter.net (Dian) Date: Sat, 7 Feb 2009 12:09:38 -0800 Subject: [AccessD] OT: I'm old In-Reply-To: <7C9754A61D5841C992CB9D2D9E5FE8F3@jislaptopdev> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005><498C8723.3050606@colbyconsulting.com><498c8ce3.0216300a.1fc0.5ddc@mx.google.com><1732ED73D0B8408884AE2F5840AAE9EB@SusanOne><498c8f82.06e2660a.7ac3.1967@mx.google.com><01bf01c988b7$dc0900a0$6801a8c0@Don><29f585dd0902071009g280aa552i838060026ee9eceb@mail.gmail.com> <7C9754A61D5841C992CB9D2D9E5FE8F3@jislaptopdev> Message-ID: <228EF9C11C704D7CA9FEC26B36CA238E@dsunit1> Am I the only one fighting the urge to fold, spindle and/or mutilate? I rather miss that activity...tooooooooooooo old... -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Saturday, February 07, 2009 11:20 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: I'm old ...programming with zeroes ...sounds like a client of mine :( William -------------------------------------------------- From: "Arthur Fuller" Sent: Saturday, February 07, 2009 1:09 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] OT: I'm old > In Canada we were so poor we couldn't afford Ones. We had to program > everything with Zeroes. But it was easier than driving a sled dog to > the Yukon. > > A. > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Sun Feb 8 02:59:50 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Sun, 08 Feb 2009 18:59:50 +1000 Subject: [AccessD] Combobox.oldvalue display text? In-Reply-To: <228EF9C11C704D7CA9FEC26B36CA238E@dsunit1> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005>, <7C9754A61D5841C992CB9D2D9E5FE8F3@jislaptopdev>, <228EF9C11C704D7CA9FEC26B36CA238E@dsunit1> Message-ID: <498F2BA6.17869.B0A723C@stuart.lexacorp.com.pg> I'm logging record changes on a form into an audit trail/diary. Text boxes are simple: strchanges = "" For Each ctl In Me.Controls Select Case Left(ctl.Name, 3) Case "txt" If Nz(ctl.Value, "") <> Nz(ctl.OldValue, "") Then strchanges = strchanges + Mid$(ctl.Name, 4) & " changed from '" & Nz(ctl.OldValue, "BLANK") & "'-to-'" & Nz(ctl.Value, "BLANK") & "'" & vbCrLf End If Case Else End Select Next If strchanges > "" Then strchanges = Replace(strchanges, "'", "''") strSQL = "Insert into tblDiary (DTG,TenderID,creator,comments) values (Now()," _ & TenderID & ",'" & GetUserName() & "','" & strchanges & "')" End If CurrentDb.Execute strSQL There are a number of Combo Boxes (cboFieldName) as well. In each case, the row source is in the form: Select Descr,ID from tblLookup If I use the same method as per "txt", I get the Indexes in the diary ie Fieldname changed from "6"-to-"4" I can use use ctl.text to get Fieldname changed from "6"-to-"New Description" Getting "Old Description" insead of "6" is the problem I've considered Building Dlookup()s from cbo.Rowsource with a cbo.Oldvalue filter Using a DAO,.Recordset to do the same, again based on the cbo.Rowsource (easier than Dlookup, because I can use Fieldnumbers in the returned record) Both seem a bit of a PITA since there are a lot of fields on the form. Ideally I'd like something like ctl.oldvalue.text but that doesn't work. Anyone got any other ideas? -- Stuart From andy at minstersystems.co.uk Sun Feb 8 03:31:27 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Sun, 8 Feb 2009 09:31:27 -0000 Subject: [AccessD] Combobox.oldvalue display text? In-Reply-To: <498F2BA6.17869.B0A723C@stuart.lexacorp.com.pg> Message-ID: <762F365199E24283BEF0995CA1C04E72@MINSTER> Hi Stuart What about storing the ctl's old description to a form level variable in, say, OnGotFocus, and using that? Andy Lacey -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: 08 February 2009 09:00 To: Access Developers discussion and problem solving Subject: [AccessD] Combobox.oldvalue display text? I'm logging record changes on a form into an audit trail/diary. Text boxes are simple: strchanges = "" For Each ctl In Me.Controls Select Case Left(ctl.Name, 3) Case "txt" If Nz(ctl.Value, "") <> Nz(ctl.OldValue, "") Then strchanges = strchanges + Mid$(ctl.Name, 4) & " changed from '" & Nz(ctl.OldValue, "BLANK") & "'-to-'" & Nz(ctl.Value, "BLANK") & "'" & vbCrLf End If Case Else End Select Next If strchanges > "" Then strchanges = Replace(strchanges, "'", "''") strSQL = "Insert into tblDiary (DTG,TenderID,creator,comments) values (Now()," _ & TenderID & ",'" & GetUserName() & "','" & strchanges & "')" End If CurrentDb.Execute strSQL There are a number of Combo Boxes (cboFieldName) as well. In each case, the row source is in the form: Select Descr,ID from tblLookup If I use the same method as per "txt", I get the Indexes in the diary ie Fieldname changed from "6"-to-"4" I can use use ctl.text to get Fieldname changed from "6"-to-"New Description" Getting "Old Description" insead of "6" is the problem I've considered Building Dlookup()s from cbo.Rowsource with a cbo.Oldvalue filter Using a DAO,.Recordset to do the same, again based on the cbo.Rowsource (easier than Dlookup, because I can use Fieldnumbers in the returned record) Both seem a bit of a PITA since there are a lot of fields on the form. Ideally I'd like something like ctl.oldvalue.text but that doesn't work. Anyone got any other ideas? -- Stuart -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From andy at minstersystems.co.uk Sun Feb 8 03:48:50 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Sun, 8 Feb 2009 09:48:50 -0000 Subject: [AccessD] Combobox.oldvalue display text? In-Reply-To: <762F365199E24283BEF0995CA1C04E72@MINSTER> Message-ID: Sorry, you'd need to store in OnCurrent or you'd get the wrong thing if someone changed a combo twice. Better idea perhaps might be still to use the same principle but instead of storing to varibales store to the combo control's Tag property. Your For Each loop would be neater that way. Andy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: 08 February 2009 09:31 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Combobox.oldvalue display text? Hi Stuart What about storing the ctl's old description to a form level variable in, say, OnGotFocus, and using that? Andy Lacey -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: 08 February 2009 09:00 To: Access Developers discussion and problem solving Subject: [AccessD] Combobox.oldvalue display text? I'm logging record changes on a form into an audit trail/diary. Text boxes are simple: strchanges = "" For Each ctl In Me.Controls Select Case Left(ctl.Name, 3) Case "txt" If Nz(ctl.Value, "") <> Nz(ctl.OldValue, "") Then strchanges = strchanges + Mid$(ctl.Name, 4) & " changed from '" & Nz(ctl.OldValue, "BLANK") & "'-to-'" & Nz(ctl.Value, "BLANK") & "'" & vbCrLf End If Case Else End Select Next If strchanges > "" Then strchanges = Replace(strchanges, "'", "''") strSQL = "Insert into tblDiary (DTG,TenderID,creator,comments) values (Now()," _ & TenderID & ",'" & GetUserName() & "','" & strchanges & "')" End If CurrentDb.Execute strSQL There are a number of Combo Boxes (cboFieldName) as well. In each case, the row source is in the form: Select Descr,ID from tblLookup If I use the same method as per "txt", I get the Indexes in the diary ie Fieldname changed from "6"-to-"4" I can use use ctl.text to get Fieldname changed from "6"-to-"New Description" Getting "Old Description" insead of "6" is the problem I've considered Building Dlookup()s from cbo.Rowsource with a cbo.Oldvalue filter Using a DAO,.Recordset to do the same, again based on the cbo.Rowsource (easier than Dlookup, because I can use Fieldnumbers in the returned record) Both seem a bit of a PITA since there are a lot of fields on the form. Ideally I'd like something like ctl.oldvalue.text but that doesn't work. Anyone got any other ideas? -- Stuart -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sun Feb 8 03:59:45 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 8 Feb 2009 09:59:45 -0000 Subject: [AccessD] Combobox.oldvalue display text? In-Reply-To: <498F2BA6.17869.B0A723C@stuart.lexacorp.com.pg> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005>, <7C9754A61D5841C992CB9D2D9E5FE8F3@jislaptopdev>, <228EF9C11C704D7CA9FEC26B36CA238E@dsunit1> <498F2BA6.17869.B0A723C@stuart.lexacorp.com.pg> Message-ID: <498ead13.0c92100a.358f.2fdd@mx.google.com> Hi Stuart (or G'day PNG) The reason you are probably getting "6" instead of "Description" is probably because the Index is pointing to position 1 instead of position 0. Most people would probably have the rowsource set to "Select ID, Descr from tblLookup", so to get at "Description" at position 0 you could try fldname.column(0) . I would also change the variable to a variant, ie strchanges to varchanges so that it handles nulls etc. I would also have a look at storing the control.value onentry then onexit do a "me.dirty=false" forcing a save and then checking contol.value again and if different writing it away by calling a function. All of the above is off the top of my head. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: 08 February 2009 09:00 To: Access Developers discussion and problem solving Subject: [AccessD] Combobox.oldvalue display text? I'm logging record changes on a form into an audit trail/diary. Text boxes are simple: strchanges = "" For Each ctl In Me.Controls Select Case Left(ctl.Name, 3) Case "txt" If Nz(ctl.Value, "") <> Nz(ctl.OldValue, "") Then strchanges = strchanges + Mid$(ctl.Name, 4) & " changed from '" & Nz(ctl.OldValue, "BLANK") & "'-to-'" & Nz(ctl.Value, "BLANK") & "'" & vbCrLf End If Case Else End Select Next If strchanges > "" Then strchanges = Replace(strchanges, "'", "''") strSQL = "Insert into tblDiary (DTG,TenderID,creator,comments) values (Now()," _ & TenderID & ",'" & GetUserName() & "','" & strchanges & "')" End If CurrentDb.Execute strSQL There are a number of Combo Boxes (cboFieldName) as well. In each case, the row source is in the form: Select Descr,ID from tblLookup If I use the same method as per "txt", I get the Indexes in the diary ie Fieldname changed from "6"-to-"4" I can use use ctl.text to get Fieldname changed from "6"-to-"New Description" Getting "Old Description" insead of "6" is the problem I've considered Building Dlookup()s from cbo.Rowsource with a cbo.Oldvalue filter Using a DAO,.Recordset to do the same, again based on the cbo.Rowsource (easier than Dlookup, because I can use Fieldnumbers in the returned record) Both seem a bit of a PITA since there are a lot of fields on the form. Ideally I'd like something like ctl.oldvalue.text but that doesn't work. Anyone got any other ideas? -- Stuart -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sun Feb 8 04:01:57 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 8 Feb 2009 10:01:57 -0000 Subject: [AccessD] Combobox.oldvalue display text? In-Reply-To: References: <762F365199E24283BEF0995CA1C04E72@MINSTER> Message-ID: <498ead98.06a0100a.047e.ffff95be@mx.google.com> Morning Andy, How is P'boro? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: 08 February 2009 09:49 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Combobox.oldvalue display text? Sorry, you'd need to store in OnCurrent or you'd get the wrong thing if someone changed a combo twice. Better idea perhaps might be still to use the same principle but instead of storing to varibales store to the combo control's Tag property. Your For Each loop would be neater that way. Andy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: 08 February 2009 09:31 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Combobox.oldvalue display text? Hi Stuart What about storing the ctl's old description to a form level variable in, say, OnGotFocus, and using that? Andy Lacey -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: 08 February 2009 09:00 To: Access Developers discussion and problem solving Subject: [AccessD] Combobox.oldvalue display text? I'm logging record changes on a form into an audit trail/diary. Text boxes are simple: strchanges = "" For Each ctl In Me.Controls Select Case Left(ctl.Name, 3) Case "txt" If Nz(ctl.Value, "") <> Nz(ctl.OldValue, "") Then strchanges = strchanges + Mid$(ctl.Name, 4) & " changed from '" & Nz(ctl.OldValue, "BLANK") & "'-to-'" & Nz(ctl.Value, "BLANK") & "'" & vbCrLf End If Case Else End Select Next If strchanges > "" Then strchanges = Replace(strchanges, "'", "''") strSQL = "Insert into tblDiary (DTG,TenderID,creator,comments) values (Now()," _ & TenderID & ",'" & GetUserName() & "','" & strchanges & "')" End If CurrentDb.Execute strSQL There are a number of Combo Boxes (cboFieldName) as well. In each case, the row source is in the form: Select Descr,ID from tblLookup If I use the same method as per "txt", I get the Indexes in the diary ie Fieldname changed from "6"-to-"4" I can use use ctl.text to get Fieldname changed from "6"-to-"New Description" Getting "Old Description" insead of "6" is the problem I've considered Building Dlookup()s from cbo.Rowsource with a cbo.Oldvalue filter Using a DAO,.Recordset to do the same, again based on the cbo.Rowsource (easier than Dlookup, because I can use Fieldnumbers in the returned record) Both seem a bit of a PITA since there are a lot of fields on the form. Ideally I'd like something like ctl.oldvalue.text but that doesn't work. Anyone got any other ideas? -- Stuart -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Sun Feb 8 04:10:21 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Sun, 08 Feb 2009 20:10:21 +1000 Subject: [AccessD] Combobox.oldvalue display text? In-Reply-To: References: <762F365199E24283BEF0995CA1C04E72@MINSTER>, Message-ID: <498F3C2D.21813.B4B01DF@stuart.lexacorp.com.pg> Turns out Access didn't like the Ctl.Text ( Only available when object has the focus) So I ended up needing to grab both the old and new dispay values. - that makes the Tag storage way more complex. I also really don't want to build a great block of value holder variables and have to step through them - I'm after some sort of generic process. :-( I've gone with the following for now, but if I anyone can see a way to avoid hitting the lookup table twice for every combo box, I'd appreciate it :-) Case "cbo" If Nz(ctl.Value, "") <> Nz(ctl.OldValue, "") Then strchanges = strchanges + Mid$(ctl.Name, 4, Len(ctl.Name) - 5) _ & " changed from '" & GetValue(ctl.Rowsource, Nz(ctl.OldValue, 0)) _ & "'-to-'" & GetValue(ctl.Rowsource, Nz(ctl.Value, 0)) & "'" & vbCrLf End If .... Function GetValue(Rowsource As String, ID As Long) As String Dim rs As DAO.Recordset Set rs = CurrentDb.OpenRecordset(Rowsource) rs.FindFirst rs.Fields(1).Name & " = " & ID If rs.NoMatch Then GetValue = "BLANK" Else GetValue = rs(0) End If rs.Close Set rs = Nothing End Function it didn't like the On 8 Feb 2009 at 9:48, Andy Lacey wrote: > Sorry, you'd need to store in OnCurrent or you'd get the wrong thing if > someone changed a combo twice. > > Better idea perhaps might be still to use the same principle but instead of > storing to varibales store to the combo control's Tag property. Your For > Each loop would be neater that way. > > Andy > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey > Sent: 08 February 2009 09:31 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Combobox.oldvalue display text? > > > Hi Stuart > What about storing the ctl's old description to a form level variable in, > say, OnGotFocus, and using that? Andy Lacey > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: 08 February 2009 09:00 > To: Access Developers discussion and problem solving > Subject: [AccessD] Combobox.oldvalue display text? > > > I'm logging record changes on a form into an audit trail/diary. Text boxes > are simple: > > strchanges = "" > For Each ctl In Me.Controls > Select Case Left(ctl.Name, 3) > Case "txt" > If Nz(ctl.Value, "") <> Nz(ctl.OldValue, "") Then > strchanges = strchanges + Mid$(ctl.Name, 4) & " changed from '" & > Nz(ctl.OldValue, > "BLANK") & "'-to-'" & Nz(ctl.Value, "BLANK") & "'" & vbCrLf > End If > Case Else > End Select > Next > If strchanges > "" Then > strchanges = Replace(strchanges, "'", "''") > strSQL = "Insert into tblDiary (DTG,TenderID,creator,comments) values > (Now()," _ > & TenderID & ",'" & GetUserName() & "','" & strchanges & "')" End > If CurrentDb.Execute strSQL > > There are a number of Combo Boxes (cboFieldName) as well. > In each case, the row source is in the form: > Select Descr,ID from tblLookup > > If I use the same method as per "txt", I get the Indexes in the diary ie > Fieldname changed from "6"-to-"4" > > I can use use ctl.text to get > Fieldname changed from "6"-to-"New Description" > > Getting "Old Description" insead of "6" is the problem > > I've considered > Building Dlookup()s from cbo.Rowsource with a cbo.Oldvalue filter Using a > DAO,.Recordset to do the same, again based on the cbo.Rowsource (easier than > > Dlookup, because I can use Fieldnumbers in the returned record) > > Both seem a bit of a PITA since there are a lot of fields on the form. > > Ideally I'd like something like ctl.oldvalue.text but that doesn't work. > > Anyone got any other ideas? > > -- > Stuart > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Sun Feb 8 04:25:07 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Sun, 08 Feb 2009 20:25:07 +1000 Subject: [AccessD] Combobox.oldvalue display text? In-Reply-To: <498ead13.0c92100a.358f.2fdd@mx.google.com> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005>, <498F2BA6.17869.B0A723C@stuart.lexacorp.com.pg>, <498ead13.0c92100a.358f.2fdd@mx.google.com> Message-ID: <498F3FA3.12324.B5885CD@stuart.lexacorp.com.pg> Hi Max, see comments in line. On 8 Feb 2009 at 9:59, Max Wanadoo wrote: > Hi Stuart (or G'day PNG) > > The reason you are probably getting "6" instead of "Description" is probably > because the Index is pointing to position 1 instead of position 0. Most > people would probably have the rowsource set to "Select ID, Descr from > tblLookup", so to get at "Description" at position 0 you could try > fldname.column(0) . > No, I know *why* I'm getting it. All the comboboxes look something like this (just replace "FundingSource" with the relevant name for about 20 other lookups on the form) Name = cboFundingSourceFK ControlSource = FundingSourceFK RowSource = Select FundingSourceDescr,FundingSourceID From tblFundingSources) ColumnCount = 2 Bound Column = 2 ColumnWidth = 4,0 ctl.Value and ctl.Oldvalue return the FK ( a number) In the Diary I want to log the Description associated with that FK. > I would also change the variable to a variant, ie strchanges to varchanges > so that it handles nulls etc. I wouldn't - I always type my variables! NZ() handles Nulls and gives me better control over the return value from a Null. (e.g. NZ(ctl.Value, "BLANK") below) > > I would also have a look at storing the control.value onentry then onexit do > a "me.dirty=false" forcing a save and then checking contol.value again and > if different writing it away by calling a function. > I'm trying to avoid doing anything in individual controls event procedures - it's much cleaner to do it all in one generic function in the Form Before_update. -- Stuart > All of the above is off the top of my head. > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: 08 February 2009 09:00 > To: Access Developers discussion and problem solving > Subject: [AccessD] Combobox.oldvalue display text? > > I'm logging record changes on a form into an audit trail/diary. > Text boxes are simple: > > strchanges = "" > For Each ctl In Me.Controls > Select Case Left(ctl.Name, 3) > Case "txt" > If Nz(ctl.Value, "") <> Nz(ctl.OldValue, "") Then > strchanges = strchanges + Mid$(ctl.Name, 4) & " changed from '" & > Nz(ctl.OldValue, > "BLANK") & "'-to-'" & Nz(ctl.Value, "BLANK") & "'" & vbCrLf > End If > Case Else > End Select > Next > If strchanges > "" Then > strchanges = Replace(strchanges, "'", "''") > strSQL = "Insert into tblDiary (DTG,TenderID,creator,comments) values > (Now()," _ > & TenderID & ",'" & GetUserName() & "','" & strchanges & "')" > End If > CurrentDb.Execute strSQL > > There are a number of Combo Boxes (cboFieldName) as well. > In each case, the row source is in the form: > Select Descr,ID from tblLookup > > If I use the same method as per "txt", I get the Indexes in the diary > ie Fieldname changed from "6"-to-"4" > > I can use use ctl.text to get > Fieldname changed from "6"-to-"New Description" > > Getting "Old Description" insead of "6" is the problem > > I've considered > Building Dlookup()s from cbo.Rowsource with a cbo.Oldvalue filter > Using a DAO,.Recordset to do the same, again based on the cbo.Rowsource > (easier than > Dlookup, because I can use Fieldnumbers in the returned record) > > Both seem a bit of a PITA since there are a lot of fields on the form. > > Ideally I'd like something like ctl.oldvalue.text but that doesn't work. > > Anyone got any other ideas? > > -- > Stuart > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sun Feb 8 04:43:21 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 8 Feb 2009 10:43:21 -0000 Subject: [AccessD] Combobox.oldvalue display text? In-Reply-To: <498F3FA3.12324.B5885CD@stuart.lexacorp.com.pg> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005>, <498F2BA6.17869.B0A723C@stuart.lexacorp.com.pg>, <498ead13.0c92100a.358f.2fdd@mx.google.com> <498F3FA3.12324.B5885CD@stuart.lexacorp.com.pg> Message-ID: <498eb74b.096c100a.2ede.ffffff60@mx.google.com> Hi Stu, >>ctl.Value and ctl.Oldvalue return the FK ( a number) >>In the Diary I want to log the Description associated with that FK. Sure, that is what I was trying to say but probably didn't explain myself properly. The reason you are getting the FK is because it is bound to that position in the rowsource. Asking it to return a value will give you what it is point to; in this case the FK value. Similarly for .oldvalue and .value. Using the form before update is fine, then looping through as you have previously said. But get the "Description" requires you to position the pointer to position 0 whereas you have it positioned (bound) to position 1 in the rowsource. Viz, strchanges = "" for Each ctl In Me.Controls Select Case Left(ctl.Name, 3) Case "cbo" ' value will be a long but we want the description If ctl.Value <> ctl.OldValue Then strchanges = strchanges + Mid$(ctl.Name, 4) & " changed from '" & ctl.OldValue.column(0) & "'-to-'" & ctl.Value.column(0) & "'" & vbCrLf End If Case Else End Select Next Can't try it myself at the moment, but give it a go. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: 08 February 2009 10:25 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Combobox.oldvalue display text? Hi Max, see comments in line. On 8 Feb 2009 at 9:59, Max Wanadoo wrote: > Hi Stuart (or G'day PNG) > > The reason you are probably getting "6" instead of "Description" is probably > because the Index is pointing to position 1 instead of position 0. Most > people would probably have the rowsource set to "Select ID, Descr from > tblLookup", so to get at "Description" at position 0 you could try > fldname.column(0) . > No, I know *why* I'm getting it. All the comboboxes look something like this (just replace "FundingSource" with the relevant name for about 20 other lookups on the form) Name = cboFundingSourceFK ControlSource = FundingSourceFK RowSource = Select FundingSourceDescr,FundingSourceID From tblFundingSources) ColumnCount = 2 Bound Column = 2 ColumnWidth = 4,0 ctl.Value and ctl.Oldvalue return the FK ( a number) In the Diary I want to log the Description associated with that FK. > I would also change the variable to a variant, ie strchanges to varchanges > so that it handles nulls etc. I wouldn't - I always type my variables! NZ() handles Nulls and gives me better control over the return value from a Null. (e.g. NZ(ctl.Value, "BLANK") below) > > I would also have a look at storing the control.value onentry then onexit do > a "me.dirty=false" forcing a save and then checking contol.value again and > if different writing it away by calling a function. > I'm trying to avoid doing anything in individual controls event procedures - it's much cleaner to do it all in one generic function in the Form Before_update. -- Stuart > All of the above is off the top of my head. > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: 08 February 2009 09:00 > To: Access Developers discussion and problem solving > Subject: [AccessD] Combobox.oldvalue display text? > > I'm logging record changes on a form into an audit trail/diary. > Text boxes are simple: > > strchanges = "" > For Each ctl In Me.Controls > Select Case Left(ctl.Name, 3) > Case "txt" > If Nz(ctl.Value, "") <> Nz(ctl.OldValue, "") Then > strchanges = strchanges + Mid$(ctl.Name, 4) & " changed from '" & > Nz(ctl.OldValue, > "BLANK") & "'-to-'" & Nz(ctl.Value, "BLANK") & "'" & vbCrLf > End If > Case Else > End Select > Next > If strchanges > "" Then > strchanges = Replace(strchanges, "'", "''") > strSQL = "Insert into tblDiary (DTG,TenderID,creator,comments) values > (Now()," _ > & TenderID & ",'" & GetUserName() & "','" & strchanges & "')" > End If > CurrentDb.Execute strSQL > > There are a number of Combo Boxes (cboFieldName) as well. > In each case, the row source is in the form: > Select Descr,ID from tblLookup > > If I use the same method as per "txt", I get the Indexes in the diary > ie Fieldname changed from "6"-to-"4" > > I can use use ctl.text to get > Fieldname changed from "6"-to-"New Description" > > Getting "Old Description" insead of "6" is the problem > > I've considered > Building Dlookup()s from cbo.Rowsource with a cbo.Oldvalue filter > Using a DAO,.Recordset to do the same, again based on the cbo.Rowsource > (easier than > Dlookup, because I can use Fieldnumbers in the returned record) > > Both seem a bit of a PITA since there are a lot of fields on the form. > > Ideally I'd like something like ctl.oldvalue.text but that doesn't work. > > Anyone got any other ideas? > > -- > Stuart > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Sun Feb 8 05:53:15 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Sun, 08 Feb 2009 21:53:15 +1000 Subject: [AccessD] Combobox.oldvalue display text? In-Reply-To: <498eb74b.096c100a.2ede.ffffff60@mx.google.com> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005>, <498F3FA3.12324.B5885CD@stuart.lexacorp.com.pg>, <498eb74b.096c100a.2ede.ffffff60@mx.google.com> Message-ID: <498F544B.4790.BA93629@stuart.lexacorp.com.pg> Hi Max, Won't work, clt.Value, ctl.Oldvalue and ctl.Column(x) are properties of a control, there is no such property as clt.Value.Column(x) or ctl.Oldvalue.Column(x) However, you've just given me an idea. I can use ctl.Column(0) to get the new value I want, so that's halved the number of lookups I have to do. So now it's just: Case "cbo" If Nz(ctl.Value, "") <> Nz(ctl.OldValue, "") Then strchanges = strchanges + Mid$(ctl.Name, 4, Len(ctl.Name) - 5) _ & " changed from '" & GetValue(ctl.Rowsource, Nz(ctl.OldValue, 0)) _ & "'-to-'" & Nz(ctl.Column(0), "BLANK") & "'" & vbCrLf End If Cheers, Stuart On 8 Feb 2009 at 10:43, Max Wanadoo wrote: > Case "cbo" ' value will be a long but we want the description > If ctl.Value <> ctl.OldValue Then > strchanges = strchanges + Mid$(ctl.Name, 4) & " changed from '" & > ctl.OldValue.column(0) & "'-to-'" & ctl.Value.column(0) & "'" & vbCrLf > End If From andy at minstersystems.co.uk Sun Feb 8 06:00:16 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Sun, 8 Feb 2009 12:00:16 -0000 Subject: [AccessD] Combobox.oldvalue display text? In-Reply-To: <498ead98.06a0100a.047e.ffff95be@mx.google.com> Message-ID: <1147C3EDE63F44EEAFF3C93FB7148DB3@MINSTER> Plenty of snow on the ground but roads ok. What about you? andy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: 08 February 2009 10:02 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Combobox.oldvalue display text? Morning Andy, How is P'boro? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: 08 February 2009 09:49 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Combobox.oldvalue display text? Sorry, you'd need to store in OnCurrent or you'd get the wrong thing if someone changed a combo twice. Better idea perhaps might be still to use the same principle but instead of storing to varibales store to the combo control's Tag property. Your For Each loop would be neater that way. Andy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: 08 February 2009 09:31 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Combobox.oldvalue display text? Hi Stuart What about storing the ctl's old description to a form level variable in, say, OnGotFocus, and using that? Andy Lacey -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: 08 February 2009 09:00 To: Access Developers discussion and problem solving Subject: [AccessD] Combobox.oldvalue display text? I'm logging record changes on a form into an audit trail/diary. Text boxes are simple: strchanges = "" For Each ctl In Me.Controls Select Case Left(ctl.Name, 3) Case "txt" If Nz(ctl.Value, "") <> Nz(ctl.OldValue, "") Then strchanges = strchanges + Mid$(ctl.Name, 4) & " changed from '" & Nz(ctl.OldValue, "BLANK") & "'-to-'" & Nz(ctl.Value, "BLANK") & "'" & vbCrLf End If Case Else End Select Next If strchanges > "" Then strchanges = Replace(strchanges, "'", "''") strSQL = "Insert into tblDiary (DTG,TenderID,creator,comments) values (Now()," _ & TenderID & ",'" & GetUserName() & "','" & strchanges & "')" End If CurrentDb.Execute strSQL There are a number of Combo Boxes (cboFieldName) as well. In each case, the row source is in the form: Select Descr,ID from tblLookup If I use the same method as per "txt", I get the Indexes in the diary ie Fieldname changed from "6"-to-"4" I can use use ctl.text to get Fieldname changed from "6"-to-"New Description" Getting "Old Description" insead of "6" is the problem I've considered Building Dlookup()s from cbo.Rowsource with a cbo.Oldvalue filter Using a DAO,.Recordset to do the same, again based on the cbo.Rowsource (easier than Dlookup, because I can use Fieldnumbers in the returned record) Both seem a bit of a PITA since there are a lot of fields on the form. Ideally I'd like something like ctl.oldvalue.text but that doesn't work. Anyone got any other ideas? -- Stuart -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From bbruen at unwired.com.au Sun Feb 8 06:41:25 2009 From: bbruen at unwired.com.au (Bruce) Date: Sun, 8 Feb 2009 23:41:25 +1100 Subject: [AccessD] An unashamed request for help In-Reply-To: References: Message-ID: <200902082341.26584.bbruen@unwired.com.au> Folks, I don't know whether you have seen the news about the bushfires in the state of Victoria in south east Australia. Over the last three days these fires have destroyed over 700 houses and upwards of 80 lives. This is the initial damage, the impact that this disaster will have on the lives of the survivors and the communities involved is something that even us "tough Aussies" are having trouble coming to terms with. I know the memory of Witch Creek and the other two Sacramento fires must still be in your minds, so I hope that you don't mind me asking .. if you can find it in your hearts to make some sort of contribution in these hard economic times, please. sincerely bruce Official information site: http://www.cfa.vic.gov.au/incidents/incident_summary.htm News link: (!!long URL) http://news.google.com.au/news?q=vic+fires&oe=utf-8&rls=org.mozilla:en-US:official&client=firefox-a&um=1&ie=UTF-8&hl=en&ei=ts-OSY6WAoPQkAXe5unMDA&sa=X&oi=news_group&resnum=1&ct=title General google link: http://www.google.com.au/search?q=vic+fires&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a I'm sure that you can find the support mechanisms through your local news or church groups. as always From max.wanadoo at gmail.com Sun Feb 8 06:50:44 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 8 Feb 2009 12:50:44 -0000 Subject: [AccessD] Combobox.oldvalue display text? In-Reply-To: <1147C3EDE63F44EEAFF3C93FB7148DB3@MINSTER> References: <498ead98.06a0100a.047e.ffff95be@mx.google.com> <1147C3EDE63F44EEAFF3C93FB7148DB3@MINSTER> Message-ID: <498ed52b.096c100a.1eaa.ffffa75a@mx.google.com> We tend to get off pretty easy in Derby from most of the worse weather. Snow gone in main areas. Some snowman remnants standing in the school playing fields and that is about it. Just off now to local pub for lunch Take care. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: 08 February 2009 12:00 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Combobox.oldvalue display text? Plenty of snow on the ground but roads ok. What about you? andy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: 08 February 2009 10:02 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Combobox.oldvalue display text? Morning Andy, How is P'boro? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: 08 February 2009 09:49 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Combobox.oldvalue display text? Sorry, you'd need to store in OnCurrent or you'd get the wrong thing if someone changed a combo twice. Better idea perhaps might be still to use the same principle but instead of storing to varibales store to the combo control's Tag property. Your For Each loop would be neater that way. Andy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: 08 February 2009 09:31 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Combobox.oldvalue display text? Hi Stuart What about storing the ctl's old description to a form level variable in, say, OnGotFocus, and using that? Andy Lacey -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: 08 February 2009 09:00 To: Access Developers discussion and problem solving Subject: [AccessD] Combobox.oldvalue display text? I'm logging record changes on a form into an audit trail/diary. Text boxes are simple: strchanges = "" For Each ctl In Me.Controls Select Case Left(ctl.Name, 3) Case "txt" If Nz(ctl.Value, "") <> Nz(ctl.OldValue, "") Then strchanges = strchanges + Mid$(ctl.Name, 4) & " changed from '" & Nz(ctl.OldValue, "BLANK") & "'-to-'" & Nz(ctl.Value, "BLANK") & "'" & vbCrLf End If Case Else End Select Next If strchanges > "" Then strchanges = Replace(strchanges, "'", "''") strSQL = "Insert into tblDiary (DTG,TenderID,creator,comments) values (Now()," _ & TenderID & ",'" & GetUserName() & "','" & strchanges & "')" End If CurrentDb.Execute strSQL There are a number of Combo Boxes (cboFieldName) as well. In each case, the row source is in the form: Select Descr,ID from tblLookup If I use the same method as per "txt", I get the Indexes in the diary ie Fieldname changed from "6"-to-"4" I can use use ctl.text to get Fieldname changed from "6"-to-"New Description" Getting "Old Description" insead of "6" is the problem I've considered Building Dlookup()s from cbo.Rowsource with a cbo.Oldvalue filter Using a DAO,.Recordset to do the same, again based on the cbo.Rowsource (easier than Dlookup, because I can use Fieldnumbers in the returned record) Both seem a bit of a PITA since there are a lot of fields on the form. Ideally I'd like something like ctl.oldvalue.text but that doesn't work. Anyone got any other ideas? -- Stuart -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sun Feb 8 06:51:44 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 8 Feb 2009 12:51:44 -0000 Subject: [AccessD] An unashamed request for help In-Reply-To: <200902082341.26584.bbruen@unwired.com.au> References: <200902082341.26584.bbruen@unwired.com.au> Message-ID: <498ed566.06c8100a.302b.752d@mx.google.com> I definitely will give something. I will log on after I get back from the pub. With a pint or two in me, I will be far more generous . Hope you are ok, Bruch Regards and best wishes Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bruce Sent: 08 February 2009 12:41 To: Access Developers discussion and problem solving Subject: [AccessD] An unashamed request for help Folks, I don't know whether you have seen the news about the bushfires in the state of Victoria in south east Australia. Over the last three days these fires have destroyed over 700 houses and upwards of 80 lives. This is the initial damage, the impact that this disaster will have on the lives of the survivors and the communities involved is something that even us "tough Aussies" are having trouble coming to terms with. I know the memory of Witch Creek and the other two Sacramento fires must still be in your minds, so I hope that you don't mind me asking .. if you can find it in your hearts to make some sort of contribution in these hard economic times, please. sincerely bruce Official information site: http://www.cfa.vic.gov.au/incidents/incident_summary.htm News link: (!!long URL) http://news.google.com.au/news?q=vic+fires&oe=utf-8&rls=org.mozilla:en-US:of ficial&client=firefox-a&um=1&ie=UTF-8&hl=en&ei=ts-OSY6WAoPQkAXe5unMDA&sa=X&o i=news_group&resnum=1&ct=title General google link: http://www.google.com.au/search?q=vic+fires&ie=utf-8&oe=utf-8&aq=t&rls=org.m ozilla:en-US:official&client=firefox-a I'm sure that you can find the support mechanisms through your local news or church groups. as always -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sun Feb 8 06:54:54 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 8 Feb 2009 12:54:54 -0000 Subject: [AccessD] Combobox.oldvalue display text? In-Reply-To: <498F544B.4790.BA93629@stuart.lexacorp.com.pg> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005>, <498F3FA3.12324.B5885CD@stuart.lexacorp.com.pg>, <498eb74b.096c100a.2ede.ffffff60@mx.google.com> <498F544B.4790.BA93629@stuart.lexacorp.com.pg> Message-ID: <498ed623.0856100a.17e3.3076@mx.google.com> Yes, that is what I meant. I didn't have the ability to test it before but glad you had the intelligence to read between the lines (of code). . Send over the next problem. Take care Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: 08 February 2009 11:53 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Combobox.oldvalue display text? Hi Max, Won't work, clt.Value, ctl.Oldvalue and ctl.Column(x) are properties of a control, there is no such property as clt.Value.Column(x) or ctl.Oldvalue.Column(x) However, you've just given me an idea. I can use ctl.Column(0) to get the new value I want, so that's halved the number of lookups I have to do. So now it's just: Case "cbo" If Nz(ctl.Value, "") <> Nz(ctl.OldValue, "") Then strchanges = strchanges + Mid$(ctl.Name, 4, Len(ctl.Name) - 5) _ & " changed from '" & GetValue(ctl.Rowsource, Nz(ctl.OldValue, 0)) _ & "'-to-'" & Nz(ctl.Column(0), "BLANK") & "'" & vbCrLf End If Cheers, Stuart On 8 Feb 2009 at 10:43, Max Wanadoo wrote: > Case "cbo" ' value will be a long but we want the description > If ctl.Value <> ctl.OldValue Then > strchanges = strchanges + Mid$(ctl.Name, 4) & " changed from '" & > ctl.OldValue.column(0) & "'-to-'" & ctl.Value.column(0) & "'" & vbCrLf > End If -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From DWUTKA at Marlow.com Sun Feb 8 11:06:02 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Sun, 8 Feb 2009 11:06:02 -0600 Subject: [AccessD] The Money Drive (WAS: OT: I'm old) In-Reply-To: Message-ID: Join the club, pocket protectors are on the table in the corner! ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Saturday, February 07, 2009 6:03 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] The Money Drive (WAS: OT: I'm old) Hi Drew OK, you are a true geek. I did know of subst - use it exactly for the purpose you describe, to simulate a (network) drive - but not that it accepts non-drive letters for drive letters. This one is really fun: SUBST :: C:\Windows Now you can make a dir ::\*.ini - but in the command window only, Explorer doesn't like it! /gustav >>> DWUTKA at marlow.com 06-02-2009 23:33 >>> For S & G's, I did a googling about drive letters, to see if there was anything out there about A and B drives that didn't have to do with older computers usually having one or two floppy drives... Nope, that's the real deal. No other mystical explanation. (Most people don't realize why IP addresses are four quads of 0 to 255... ;) ) Anyhow, in reading the pages I found, I discovered something VERY interesting about SUBST. For those of you who do not know, SUBST is a DOS command (but works in XP and Vista too), that allows you to 'create' a virtual drive off of a physical folder. For example, let's say you have a network drive 'T:' at work. And you have an application that depends on files being at T:\SomeFolder\*.* . Well if you create a folder on your C: drive, and call it TDrive (Thus C:\TDrive) then copy that 'SomeFolder' into that TDrive folder. Then, from a DOS prompt, you can put in: SUBST T: C:\TDrive And Whalla, you now have a T: drive, that is really the 'C:\TDrive' folder. Anywho...the neat thing I found out about SUBST that I never knew, is that SUBST actually let's you use non-alpha (some of them...) characters to create these 'virtual' drive letters. They don't appear to show up in Explorer though (at least not in Vista). I have a folder on my C drive called 'Downloads'. So in a dos prompt, the following command: SUBST $: C:\Downloads Allowed me to then go: $: Which gave me a: $:\ Prompt, which I could then do a DIR in, and it listed the contents of my 'money' drive! LOL Ok, I'm a geek! ;) Drew -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Sun Feb 8 11:07:47 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Sun, 8 Feb 2009 11:07:47 -0600 Subject: [AccessD] Semi-OT - VM Ware In-Reply-To: Message-ID: Virtual Server 2005 R2 (The current 'free' version from Microsoft) has both a browser and remote console based access. However, I personally just setup Remote Administrator in my virtual machines, and control them with that (which is what I use to control all my physical networked machines.... Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Saturday, February 07, 2009 6:14 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Semi-OT - VM Ware Hi Steve He probably doesn't like the browser based Server Console. Could you ask him about that? My colleague prefers to have the trouble opening ports in the firewall to be able to deal with the previous Windows-based Server Console. /gustav >>> erbachs at gmail.com 07-02-2009 12:50 >>> Rocky, Our network admin relies on VMWare for all sorts of stuff. He set up a monster server or two with 24 GB of RAM and 8 processors. VMWare machines have been set up to run SQL Server, Exchange Server, web servers, etc., etc., ... It's to the point now where he doesn't even consider setting up a system to just run an OS by itself. Now, it's set up to act as a VMWare host to run multiple servers. Interestingly enough, he doesn't use the latest VMWare 2 stuff, he's a believer in 1.4 or whatever the newest-but-one version is. I trust his judgement because he is the absolute hugest uber-geek I've ever met, bar none. Steve Erbach Neenah, WI http://www.NeenahPolitics.com http://www.TheTownCrank.com On Fri, Feb 6, 2009 at 9:26 AM, Rocky Smolin at Beach Access Software wrote: > FYI: articles on VM in the San Diego ComputorEdge > > http://webserver.computoredge.com/online.mvc?article=cover&issue=2706&zo ne=SD&src=1 > > http://webserver.computoredge.com/online.mvc?article=in1&issue=2706&zone =SD&src=1 > > > Rocky Smolin -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From max.wanadoo at gmail.com Sun Feb 8 13:14:34 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 8 Feb 2009 19:14:34 -0000 Subject: [AccessD] Semi-OT - VM Ware In-Reply-To: References: Message-ID: <498f2f1d.17e7300a.7260.1978@mx.google.com> Has anybody any experience of www.returnil.com This is free for personal use and <$30, <25 Euros, >> erbachs at gmail.com 07-02-2009 12:50 >>> Rocky, Our network admin relies on VMWare for all sorts of stuff. He set up a monster server or two with 24 GB of RAM and 8 processors. VMWare machines have been set up to run SQL Server, Exchange Server, web servers, etc., etc., ... It's to the point now where he doesn't even consider setting up a system to just run an OS by itself. Now, it's set up to act as a VMWare host to run multiple servers. Interestingly enough, he doesn't use the latest VMWare 2 stuff, he's a believer in 1.4 or whatever the newest-but-one version is. I trust his judgement because he is the absolute hugest uber-geek I've ever met, bar none. Steve Erbach Neenah, WI http://www.NeenahPolitics.com http://www.TheTownCrank.com On Fri, Feb 6, 2009 at 9:26 AM, Rocky Smolin at Beach Access Software wrote: > FYI: articles on VM in the San Diego ComputorEdge > > http://webserver.computoredge.com/online.mvc?article=cover&issue=2706&zo ne=SD&src=1 > > http://webserver.computoredge.com/online.mvc?article=in1&issue=2706&zone =SD&src=1 > > > Rocky Smolin -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From erbachs at gmail.com Sun Feb 8 14:16:38 2009 From: erbachs at gmail.com (Steve Erbach) Date: Sun, 8 Feb 2009 14:16:38 -0600 Subject: [AccessD] Semi-OT - VM Ware In-Reply-To: References: Message-ID: <39cb22f30902081216o77cf05bqd982d68a19cfecf2@mail.gmail.com> Gustav, You're spot on about the browser-based controls. He doesn't think they're ready for prime time. I don't know specifics, but that's the main one. Regards, Steve Erbach Neenah, WI http://www.NeenahPolitics.com http://www.TheTownCrank.com On Sat, Feb 7, 2009 at 6:13 AM, Gustav Brock wrote: > Hi Steve > > He probably doesn't like the browser based Server Console. Could you ask him about that? My colleague prefers to have the trouble opening ports in the firewall to be able to deal with the previous Windows-based Server Console. > > /gustav > >>>> erbachs at gmail.com 07-02-2009 12:50 >>> > Rocky, > > Our network admin relies on VMWare for all sorts of stuff. He set up > a monster server or two with 24 GB of RAM and 8 processors. VMWare > machines have been set up to run SQL Server, Exchange Server, web > servers, etc., etc., ... > > It's to the point now where he doesn't even consider setting up a > system to just run an OS by itself. Now, it's set up to act as a > VMWare host to run multiple servers. > > Interestingly enough, he doesn't use the latest VMWare 2 stuff, he's a > believer in 1.4 or whatever the newest-but-one version is. I trust > his judgement because he is the absolute hugest uber-geek I've ever > met, bar none. > > Steve Erbach From Gustav at cactus.dk Sun Feb 8 15:06:52 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Sun, 08 Feb 2009 22:06:52 +0100 Subject: [AccessD] Semi-OT - VM Ware Message-ID: Hi Max Never heard of it, but some answers here: http://www.returnilvirtualsystem.com/faqs.htm#5 /gustav >>> max.wanadoo at gmail.com 08-02-2009 20:14:34 >>> Has anybody any experience of www.returnil.com This is free for personal use and <$30, <25 Euros, References: Message-ID: <498f4faf.0ec5100a.72a6.0319@mx.google.com> Hmm. Just read through that - thanks Gustav. Bit worried about the bit that says: > What happens after the subscription expires (one year normally)? After the license period the following will happen: I don't want something that requires renewal each year or will stop. So, it looks as if it is a subscription service software and not an application software. If this is right, then i am not interested. Thanks for digging through it all. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 08 February 2009 21:07 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Semi-OT - VM Ware Hi Max Never heard of it, but some answers here: http://www.returnilvirtualsystem.com/faqs.htm#5 /gustav >>> max.wanadoo at gmail.com 08-02-2009 20:14:34 >>> Has anybody any experience of www.returnil.com This is free for personal use and <$30, <25 Euros, References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005>, <498F2BA6.17869.B0A723C@stuart.lexacorp.com.pg>, <498ead13.0c92100a.358f.2fdd@mx.google.com> <498F3FA3.12324.B5885CD@stuart.lexacorp.com.pg> Message-ID: <498F5A41.2090909@colbyconsulting.com> A combo class. A form class that scans for combos (as a starter) and loads a class instance for each combo found. The combo class sinks the before update (I think) of the combo and loads the old value into a class local variable. The combo class has the code to do whatever "lookup" you want to do. Having this allows you to simply load the form class in any form that you want to do this in. The form class loads combo classes automatically. The combo classes handle the rest, automatically. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > Hi Max, see comments in line. > > On 8 Feb 2009 at 9:59, Max Wanadoo wrote: > >> Hi Stuart (or G'day PNG) >> >> The reason you are probably getting "6" instead of "Description" is probably >> because the Index is pointing to position 1 instead of position 0. Most >> people would probably have the rowsource set to "Select ID, Descr from >> tblLookup", so to get at "Description" at position 0 you could try >> fldname.column(0) . >> > > No, I know *why* I'm getting it. > > All the comboboxes look something like this (just replace "FundingSource" with the relevant > name for about 20 other lookups on the form) > > Name = cboFundingSourceFK > ControlSource = FundingSourceFK > RowSource = Select FundingSourceDescr,FundingSourceID From tblFundingSources) > ColumnCount = 2 > Bound Column = 2 > ColumnWidth = 4,0 > > ctl.Value and ctl.Oldvalue return the FK ( a number) > In the Diary I want to log the Description associated with that FK. > >> I would also change the variable to a variant, ie strchanges to varchanges >> so that it handles nulls etc. > > I wouldn't - I always type my variables! NZ() handles Nulls and gives me better control over > the return value from a Null. (e.g. NZ(ctl.Value, "BLANK") below) > >> I would also have a look at storing the control.value onentry then onexit do >> a "me.dirty=false" forcing a save and then checking contol.value again and >> if different writing it away by calling a function. >> > > I'm trying to avoid doing anything in individual controls event procedures - it's much cleaner > to do it all in one generic function in the Form Before_update. > From jimdettman at verizon.net Sun Feb 8 16:33:57 2009 From: jimdettman at verizon.net (Jim Dettman) Date: Sun, 08 Feb 2009 17:33:57 -0500 Subject: [AccessD] Citrix and Access In-Reply-To: References: <9CBB659C05524E078CB7C9BC75F88867@danwaters> <29f585dd0902061244g657ce9afsa77493509fceb269@mail.gmail.com> Message-ID: <068ABE2F0E6941529A382BF5E1E9B11D@XPS> Dan, Probably the biggest issue when running under Citrix is that the "C" drive is the same for everyone. That's a bit of a problem where you want everyone to have their own FE (which you would typically would install on their C drive). But there is an easy workaround for that; just map a unique path on the server to a drive letter for their terminal services profile (something like X) and place the FE there. A little more problematic however is references. If you open up an FE, you'll find all your references still pointing to C. For the most part, if your just using the typical references, this is not an issue. Those references can be shared with no problem. But if your using a library reference (a reference to a MDA) or some type of 3rd party component, then you might have issues with multiple users all sharing that reference. This is in fact the reason that some of the Wizards in Office are not available under TS; they simply won't work when shared. Unfortunately there is not easy work around for this. You have few choices. You can map the same drive letter for everyone (remote user or not) and write your app against that or you can distribute two different versions of the app (one that runs against C and one that runs against your mapped drive letter). I've been lucky enough to only run up against this once, but when you do it's a pain in the butt. Other then that, Access works wonderfully under TS/Citrix with JET or SQL Server. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: Friday, February 06, 2009 4:05 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Citrix and Access Hi Arthur, Anything you can think of that might have been restrictive or need to know? I'll be switching out many users from running on their PC to using a Citrix window. Glad to hear about the response time! Was your FE linked to SQL 2000 or were you using an OLEDB Provider? Thanks, Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Arthur Fuller Sent: Friday, February 06, 2009 2:45 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Citrix and Access I have lots of experience running an Access app on Terminal Services, and even with 70 users it was faster for me to develop on the remote TS box than on my local machine at home. I was completely floored. Assuming a fast pipe on both ends, I think you will be very pleased with the response time. (To be fair, our Access back end was SQL 2000.) hth, Arthur -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From darren at activebilling.com.au Sun Feb 8 16:44:10 2009 From: darren at activebilling.com.au (Darren D) Date: Mon, 9 Feb 2009 09:44:10 +1100 Subject: [AccessD] OT Friday In-Reply-To: <64E31F347F8C4C6B936E20BD3A05728F@MINSTER> References: <498b3e75.02ab100a.5014.ffffe800@mx.google.com> <64E31F347F8C4C6B936E20BD3A05728F@MINSTER> Message-ID: <00d201c98a3e$c34eb310$131b910a@denzilnote> I got it - 51 hee hee 51 (Brilliant) You do know it's an ashes year -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: Friday, 06 February 2009 7:40 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday Sorry, sounds like you didn't get the 'Life Of Brian' reference there, in which case that must have sounded very bizarre -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: 05 February 2009 19:31 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday Oh! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey Sent: 05 February 2009 19:23 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday You're not the messiah you're a very naughty boy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: 05 February 2009 18:55 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday Well Steve, as it is Friday in Oz but not yet here in BritLand could I ask you to post this tomorrow. I don't want to get into trouble by posting it now. Max In 1986, Peter Davies was on holiday in Kenya after graduating from Northwestern University . On a hike through the bush, he came across a certain age bull elephant standing with one leg raised in the air. The elephant seemed distressed, so Peter approached it very carefully. He got down on one knee, inspected the elephants foot, and found a large piece of wood deeply embedded in it. As carefully and as gently as he could, Peter worked the wood out with his knife, after which the elephant gingerly put down its foot. The elephant turned to face the man, and with a rather curious look on its face, stared at him for several tense moments. Peter stood frozen, thinking of nothing else but being trampled. Eventually the elephant trumpeted loudly, turned, and walked away. Peter never forgot that elephant or the events of that day. Twenty years later, Peter was walking through the Chicago Zoo with his teenage son. As they approached the elephant enclosure, one of the creatures turned and walked over to near where Peter and his son Cameron were standing. The large bull elephant stared at Peter, lifted its front foot off the ground, then put it down. The elephant did that several times then trumpeted loudly, all the while staring at the man. Remembering the encounter in 1986, Peter could not help wondering if this was the same elephant. Peter summoned up his courage, climbed over the railing, and made his way into the enclosure. He walked right up to the elephant and stared back in wonder. The elephant trumpeted again, wrapped its trunk around one of Peter legs and slammed him against the railing, killing him instantly. Probably wasn't the same effing elephant.. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Schapel Sent: 05 February 2009 18:45 To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT Friday Whereas for me, where it *is* Friday, it is so good, for once, to not feel like I must have missed something. :-) Regards Steve -------------------------------------------------- From: "Drew Wutka" Sent: Friday, February 06, 2009 5:58 AM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] OT Friday > I must admit, I'm offended by this thread, here I am waking up to > seeing an AccessD post with FRIDAY OT as the subject, and I get the > warm and fuzzy feeling that tomorrow is the weekend....... > > Only to have reality crashing in that it's still Thursday! > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sun Feb 8 17:16:12 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 8 Feb 2009 23:16:12 -0000 Subject: [AccessD] OT Friday In-Reply-To: <00d201c98a3e$c34eb310$131b910a@denzilnote> References: <498b3e75.02ab100a.5014.ffffe800@mx.google.com> <64E31F347F8C4C6B936E20BD3A05728F@MINSTER> <00d201c98a3e$c34eb310$131b910a@denzilnote> Message-ID: <498f67e4.06c8100a.5727.19a1@mx.google.com> Well, somebody would have to explain that to me! Where does 51 come from? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Darren D Sent: 08 February 2009 22:44 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday I got it - 51 hee hee 51 (Brilliant) You do know it's an ashes year From Darryl.Collins at coles.com.au Sun Feb 8 17:22:54 2009 From: Darryl.Collins at coles.com.au (Darryl Collins) Date: Mon, 9 Feb 2009 10:22:54 +1100 Subject: [AccessD] OT: Aussie Day In-Reply-To: <498c6ff0.07a6420a.5fbe.6007@mx.google.com> Message-ID: <57E6E6CA42105A48B977303A2CDC272007ACD7E1A0@WPEXCH22.retail.ad.cmltd.net.au> Thanks Maxx, Australia day was nice, but this weekend has been awful in the part of Oz I live (South East Australia). Massive bushfires with many houses destroyed and lives lost - whole towns have been wiped off the map. Crazy hot weather (47 degs C - 116.6F) with wild wild 90 km/ph winds. Insane stuff. Worst firestorm and weather since records began. regards Darryl. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Max Wanadoo Sent: Saturday, 7 February 2009 4:14 AM To: 'Access Developers discussion and problem solving' Subject: [AccessD] OT: Aussie Day Aussie Day coming up. Good on yer boys - have a great one. Wish I could post a pps file on this site. I have a great one which the Oz would love. Maxx -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman Sent: 05 February 2009 15:38 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon << Why would the ribbon be exempted from programmatic manipulation. Why no Application.Ribbon. Or a DoCmd.Ribbon?>> That's because despite any overtures made, Microsoft does not consider Access to be a professional development tool; user features first and foremost always. Development features are always secondary. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Thursday, February 05, 2009 10:21 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon Agree. In A2003 I never saw anything that could be done through the toolbars or otherwise, that could not be done in VBA using one or another object model. This seems to be a real basic difference in 2007. Why would the ribbon be exempted from programmatic manipulation. Why no Application.Ribbon. Or a DoCmd.Ribbon? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Thursday, February 05, 2009 6:55 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon All of this to get rid of something that should be directly programmatically manipulatable. John W. Colby www.ColbyConsulting.com William Hindman wrote: > "SendKeys"????????? > > ...shakes head ...returns to A2K3 :( > > ...sorry Stu, just couldn't help myself :) > > William > > -------------------------------------------------- > From: "Stuart McLachlan" > Sent: Wednesday, February 04, 2009 10:14 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon > >> Rocky! >> >> This was answered two months ago when you asked about "turning off >> the ribbons programmatically" >> >> Here's what I posted then: >> My Height was slightly different to those in the link, probably >> because of different screen resolutions, fonts etc but it looks like >> it will always be above/below 100 so this should work anywhere. It >> certainly works for me: >> >> Function RibbonMinimized() As Boolean RibbonMinimized = >> Application.CommandBars("Ribbon").Height < 100 End Function >> >> The following four functions give you full control over the Ribbon >> :-) >> >> Function HideRibbon() >> DoCmd.ShowToolbar "Ribbon", acToolbarNo End Function >> >> Function ShowRibbon() >> DoCmd.ShowToolbar "Ribbon", acToolbarYes End Function >> >> Function MinimizeRibbon() >> If Not RibbonMinimized Then SendKeys "^{F1}" >> End If >> End Function >> >> Function MaximizeRibbon() >> If RibbonMinimized Then SendKeys "^{F1}" >> End If >> End Function >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com This email and any attachments may contain privileged and confidential information and are intended for the named addressee only. If you have received this e-mail in error, please notify the sender and delete this e-mail immediately. Any confidentiality, privilege or copyright is not waived or lost because this e-mail has been sent to you in error. It is your responsibility to check this e-mail and any attachments for viruses. No warranty is made that this material is free from computer virus or any other defect or error. Any loss/damage incurred by using this material is not the sender's responsibility. The sender's entire liability will be limited to resupplying the material. From darren at activebilling.com.au Sun Feb 8 18:49:39 2009 From: darren at activebilling.com.au (Darren D) Date: Mon, 9 Feb 2009 11:49:39 +1100 Subject: [AccessD] OT Friday In-Reply-To: <498f67e4.06c8100a.5727.19a1@mx.google.com> References: <498b3e75.02ab100a.5014.ffffe800@mx.google.com> <64E31F347F8C4C6B936E20BD3A05728F@MINSTER><00d201c98a3e$c34eb310$131b910a@denzilnote> <498f67e4.06c8100a.5727.19a1@mx.google.com> Message-ID: <012301c98a50$4aba2620$131b910a@denzilnote> Hi Max Glad you asked - 51 was the England cricket team's last innings total score against the West Indies the other day Many thanks again for asking Darren -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Monday, 09 February 2009 10:16 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday Well, somebody would have to explain that to me! Where does 51 come from? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Darren D Sent: 08 February 2009 22:44 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday I got it - 51 hee hee 51 (Brilliant) You do know it's an ashes year -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Sun Feb 8 19:35:44 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Mon, 09 Feb 2009 11:35:44 +1000 Subject: [AccessD] OT Friday In-Reply-To: <012301c98a50$4aba2620$131b910a@denzilnote> References: <498b3e75.02ab100a.5014.ffffe800@mx.google.com>, <498f67e4.06c8100a.5727.19a1@mx.google.com>, <012301c98a50$4aba2620$131b910a@denzilnote> Message-ID: <49901510.32314.54A77@stuart.lexacorp.com.pg> 5 - 1 isn't that the Australian ODI teams recent loss/win ratio too? On 9 Feb 2009 at 11:49, Darren D wrote: > Hi Max > > Glad you asked - 51 was the England cricket team's last innings total score > against the West Indies the other day > > Many thanks again for asking > > Darren > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Monday, 09 February 2009 10:16 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] OT Friday > > Well, somebody would have to explain that to me! > Where does 51 come from? > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Darren D > Sent: 08 February 2009 22:44 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] OT Friday > > I got it - 51 hee hee 51 (Brilliant) > > You do know it's an ashes year > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From darren at activebilling.com.au Sun Feb 8 20:39:27 2009 From: darren at activebilling.com.au (Darren D) Date: Mon, 9 Feb 2009 13:39:27 +1100 Subject: [AccessD] OT Friday In-Reply-To: <49901510.32314.54A77@stuart.lexacorp.com.pg> References: <498b3e75.02ab100a.5014.ffffe800@mx.google.com>, <498f67e4.06c8100a.5727.19a1@mx.google.com>, <012301c98a50$4aba2620$131b910a@denzilnote> <49901510.32314.54A77@stuart.lexacorp.com.pg> Message-ID: <012d01c98a5f$a1e40010$131b910a@denzilnote> Howdy my northern friend :-) Yes it is - Well spotted - Coincidental? mmmm - I think not - Did you know the Aussies, about 2 years or so ago, lost a whole series just prior to the last world cup - Which they later went on to win The loosing bit isn't what I was taking the mickey out of - We all loose - it's the Score 51 - And if it we subtract Freddie's runs the total for the whole team was about 27 or so - Well done Freddie Is it wake up time in Peterborough yet? Hee hee Andy why haven't you answered my last couple of emails (I can guess but I want to hear it from you) Darren -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Monday, 09 February 2009 12:36 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT Friday 5 - 1 isn't that the Australian ODI teams recent loss/win ratio too? On 9 Feb 2009 at 11:49, Darren D wrote: > Hi Max > > Glad you asked - 51 was the England cricket team's last innings total score > against the West Indies the other day > > Many thanks again for asking > > Darren > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Monday, 09 February 2009 10:16 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] OT Friday > > Well, somebody would have to explain that to me! > Where does 51 come from? > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Darren D > Sent: 08 February 2009 22:44 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] OT Friday > > I got it - 51 hee hee 51 (Brilliant) > > You do know it's an ashes year > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Sun Feb 8 22:14:59 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Mon, 09 Feb 2009 14:14:59 +1000 Subject: [AccessD] Combobox.oldvalue display text? In-Reply-To: <498F2BA6.17869.B0A723C@stuart.lexacorp.com.pg> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005>, <228EF9C11C704D7CA9FEC26B36CA238E@dsunit1>, <498F2BA6.17869.B0A723C@stuart.lexacorp.com.pg> Message-ID: <49903A63.21281.971843@stuart.lexacorp.com.pg> Thanks for the various suggestions, they got me thinking. In the end, it was Max's mention of Column() that gave me the hint I needed. When I thought about it some more, I didn't need to hit the lookup tables at all, all the old info was already available in the two columns in each Combobox's List. I just needed to iterate through the list, looking for a match in Column(1) and pulling the relevant description from Column(0), For anyone who might be interested, here's the complete logging procedure. Private Sub Form_BeforeUpdate(Cancel As Integer) Dim ctl As Control Dim strOldValue As String Dim lngLoop As Long Dim strSQL As String strchanges = "" For Each ctl In Me.Controls Select Case Left(ctl.Name, 3) Case "cbo" If Nz(ctl.Value, "") <> Nz(ctl.OldValue, "") Then If Nz(ctl.OldValue, 0) = 0 Then strOldValue = "BLANK" Else For lngLoop = 0 To ctl.ListCount - 1 If CLng(ctl.Column(1, lngLoop)) = ctl.OldValue Then strOldValue = ctl.Column(0, lngLoop) Exit For End If Next End If strchanges = strchanges _ & Mid$(ctl.Name, 4, Len(ctl.Name) - 5) _ & " changed from """ _ & strOldValue _ & """-to-""" _ & Nz(ctl.Column(0), "BLANK") & """" & vbCrLf End If Case "txt" If Nz(ctl.Value, "") <> Nz(ctl.OldValue, "") Then strchanges = strchanges & Mid$(ctl.Name, 4) _ & " changed from """ _ & Nz(ctl.OldValue, "BLANK") _ & """-to-""" _ & Nz(ctl.Value, "BLANK") & """" & vbCrLf End If Case Else End Select Next If strchanges > "" Then strchanges = Replace(strchanges, "'", "''") strSQL = "Insert into tblDiary " _ & " (DTG,TenderID,creator,comments)" _ & " values (Now()," & TenderID & ",'" _ & GetUserName() & "','" & strchanges & "')" CurrentDb.Execute strSQL End If End Sub From andy at minstersystems.co.uk Mon Feb 9 01:26:07 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Mon, 9 Feb 2009 07:26:07 -0000 Subject: [AccessD] OT Friday In-Reply-To: <012d01c98a5f$a1e40010$131b910a@denzilnote> Message-ID: <4EC51E306238400B91412684F58A06FB@MINSTER> Replied off-line. Friday's long gone. Andy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Darren D Sent: 09 February 2009 02:39 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OT Friday Howdy my northern friend :-) Yes it is - Well spotted - Coincidental? mmmm - I think not - Did you know the Aussies, about 2 years or so ago, lost a whole series just prior to the last world cup - Which they later went on to win The loosing bit isn't what I was taking the mickey out of - We all loose - it's the Score 51 - And if it we subtract Freddie's runs the total for the whole team was about 27 or so - Well done Freddie Is it wake up time in Peterborough yet? Hee hee Andy why haven't you answered my last couple of emails (I can guess but I want to hear it from you) Darren -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Monday, 09 February 2009 12:36 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT Friday 5 - 1 isn't that the Australian ODI teams recent loss/win ratio too? On 9 Feb 2009 at 11:49, Darren D wrote: > Hi Max > > Glad you asked - 51 was the England cricket team's last innings total > score against the West Indies the other day > > Many thanks again for asking > > Darren > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Monday, 09 February 2009 10:16 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] OT Friday > > Well, somebody would have to explain that to me! > Where does 51 come from? > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Darren D > Sent: 08 February 2009 22:44 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] OT Friday > > I got it - 51 hee hee 51 (Brilliant) > > You do know it's an ashes year > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From erbachs at gmail.com Mon Feb 9 04:14:25 2009 From: erbachs at gmail.com (Steve Erbach) Date: Mon, 9 Feb 2009 04:14:25 -0600 Subject: [AccessD] OT: I'm old In-Reply-To: <498E0B0F.4679.6A3202F@stuart.lexacorp.com.pg> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <39cb22f30902070335x21d4c190i5e6dd30b3b5e490f@mail.gmail.com> <498E0B0F.4679.6A3202F@stuart.lexacorp.com.pg> Message-ID: <39cb22f30902090214v68e2cb5fsd7a516dd7159f5c9@mail.gmail.com> Stuart, Heh! Nifty references to Feynman diagrams and Wolfram's "A New Kind of Science". Thanks for posting that. Regards, Steve Erbach Neenah, WI http://www.NeenahPolitics.com http://www.TheTownCrank.com On Sat, Feb 7, 2009 at 6:28 AM, Stuart McLachlan wrote: > I did it like this: > > http://xkcd.com/505/ > > On 7 Feb 2009 at 5:35, Steve Erbach wrote: > >> Rocky, >> >> Tubes? You had tubes?! Well, isn't that special? >> >> We had to do without electrons altogether! Electrons didn't even >> exist! We had to painstakingly carve out NAND gates and XOR gates >> into the side of mountains and roll boulders down channels to perform >> even the simplest computation. Then, of course, we had to roll them >> back to the top again. Our system was called the Sisyphus I. >> >> Tubes! Hah! >> >> Steve Erbach From max.wanadoo at gmail.com Mon Feb 9 07:43:10 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 9 Feb 2009 13:43:10 +0000 Subject: [AccessD] Combobox.oldvalue display text? In-Reply-To: <49903A63.21281.971843@stuart.lexacorp.com.pg> References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <228EF9C11C704D7CA9FEC26B36CA238E@dsunit1> <498F2BA6.17869.B0A723C@stuart.lexacorp.com.pg> <49903A63.21281.971843@stuart.lexacorp.com.pg> Message-ID: Hi Stuart, Here are two routines which you may care to look at. The first is to store the value into the .TAG property of the control. The second just parses the controls. Might be of interes, might not, don't know, submitted as is - chuck it if no good. Regards Max Public Function pubFunUpdateTagData(frm As Form) On Error Resume Next ' this puts the data into the tag before any changes are made Dim ctl As Control, z As Variant For Each ctl In frm.Controls With ctl Select Case .ControlType Case acTextBox ' this can hold numbers, strings and dates etc Select Case varType(frm(ctl.Name)) Case 2, 3, 4, 5, 6 ' int,long,single,double,currency frm(ctl.Name).Tag = Val(frm(ctl.Name)) Case 7 frm(ctl.Name).Tag = CStr(frm(ctl.Name)) Case 8 frm(ctl.Name).Tag = frm(ctl.Name) End Select Case acCheckBox frm(ctl.Name).Tag = frm(ctl.Name) Case acComboBox Select Case frm(ctl.Name).RowSourceType Case "Table/Query" frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(1)) 'MsgBox frm(ctl.Name).Tag Case "Value List" frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(0, 0)) Case Else End Select Case acListBox frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(1), "") Case acOptionGroup frm(ctl.Name).Tag = Nz(frm(ctl.Name), 0) End Select End With Next ctl exithere: Exit Function errhandler: MsgBox "Error in MCM_PeopleChanges.pubFunUpdateTagData: " & Err.Number & vbCrLf & Err.Description Resume exithere End Function Private Function RebuildPersonsFlagsFormsControls(frm As Form, lngPID As Long) On Error Resume Next Dim ctl As Control, strDesc As String Dim varSource As Variant, varvalue As Variant, varType As Variant, varName As Variant Dim varVisible As Variant strDesc = frm.Name With frm For Each ctl In frm.Controls varName = ctl.Name varType = ctl.ControlType Select Case varType Case acTextBox varSource = ctl.ControlSource varvalue = ctl.OldValue varVisible = ctl.Visible If Not IsNull(varSource) And Len(varSource) > 0 And _ Not IsNull(varvalue) And Len(varvalue) > 0 And varVisible = True Then Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, lngPID, conFlagsForms) End If Case acComboBox varSource = ctl.ControlSource varvalue = ctl.OldValue If Not IsNull(varSource) And Len(varSource) > 0 Then Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, lngPID, conFlagsForms) End If Case acCheckBox varSource = ctl.ControlSource varvalue = ctl.OldValue If varvalue = True Then Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, lngPID, conFlagsForms) End If Case acOptionGroup varSource = ctl.ControlSource varvalue = ctl.OldValue Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, lngPID, conFlagsForms) Case acSubform Case acLabel Case acBoundObjectFrame Case acPage Case acPageBreak Case acCommandButton Case acCustomControl Case acRectangle Case acImage Case acTabCtl Case acLine Case acToggleButton Case acObjectFrame Case acListBox Case acOptionButton Case Else MsgBox "NewType found in RebuildPersonsFalgsSystemControls:", varType, varName End Select Next ctl End With End Function From jwcolby at colbyconsulting.com Mon Feb 9 08:12:52 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 09 Feb 2009 09:12:52 -0500 Subject: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue display text? In-Reply-To: References: <8DB591BFA68245058EB73BC4445B40F0@HAL9005> <228EF9C11C704D7CA9FEC26B36CA238E@dsunit1> <498F2BA6.17869.B0A723C@stuart.lexacorp.com.pg> <49903A63.21281.971843@stuart.lexacorp.com.pg> Message-ID: <499039E4.9060903@colbyconsulting.com> Guys, Using the tag value to store stuff is generally not a good solution, and never was (well, perhaps before classes). The disadvantages of the tag speak for itself, ONE location to store how much stuff? Packing, unpacking variables that you want to store there, overwriting data from the previous programmer, and the list goes on. Look, MS very kindly gave us Classes and WithEvents. Classes and Withevents is EASY. Classes and Withevents prepares you for programming in other platforms such as dotnet. Classes and withevents provide you with extremely powerful methods of handling repetitive programing. Classes provide you with encapsulation of code and data. If you are a programmer, all of these things should matter to you. If you can program Code Behind Form, if you can do things like the example code that Max so kindly provided, then classes are a tiny step that will increase your skill and ability an order of magnitude. AccessD has many developers using Classes and Withevents. Perhaps they can speak up with their opinions on the subject. If you want to learn how to do what Stuart was asking about using a single pair of classes (a form class and a combo class), speak up and I will start a thread on the subject. I will teach you how to do this stuff, step by step, and in just a few emails you too can be using classes and withevents. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Hi Stuart, > Here are two routines which you may care to look at. The first is to store > the value into the .TAG property of the control. > The second just parses the controls. > Might be of interes, might not, don't know, submitted as is - chuck it if no > good. > Regards > Max > > Public Function pubFunUpdateTagData(frm As Form) > On Error Resume Next > ' this puts the data into the tag before any changes are made > > Dim ctl As Control, z As Variant > For Each ctl In frm.Controls > With ctl > Select Case .ControlType > Case acTextBox ' this can hold numbers, strings and dates etc > Select Case varType(frm(ctl.Name)) > Case 2, 3, 4, 5, 6 ' int,long,single,double,currency > frm(ctl.Name).Tag = Val(frm(ctl.Name)) > Case 7 > frm(ctl.Name).Tag = CStr(frm(ctl.Name)) > Case 8 > frm(ctl.Name).Tag = frm(ctl.Name) > End Select > Case acCheckBox > frm(ctl.Name).Tag = frm(ctl.Name) > Case acComboBox > Select Case frm(ctl.Name).RowSourceType > Case "Table/Query" > frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(1)) > 'MsgBox frm(ctl.Name).Tag > Case "Value List" > frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(0, 0)) > Case Else > End Select > Case acListBox > frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(1), "") > Case acOptionGroup > frm(ctl.Name).Tag = Nz(frm(ctl.Name), 0) > End Select > End With > Next ctl > > exithere: > Exit Function > errhandler: > MsgBox "Error in MCM_PeopleChanges.pubFunUpdateTagData: " & Err.Number & > vbCrLf & Err.Description > Resume exithere > End Function > > Private Function RebuildPersonsFlagsFormsControls(frm As Form, lngPID As > Long) > On Error Resume Next > Dim ctl As Control, strDesc As String > Dim varSource As Variant, varvalue As Variant, varType As Variant, varName > As Variant > Dim varVisible As Variant > strDesc = frm.Name > With frm > For Each ctl In frm.Controls > varName = ctl.Name > varType = ctl.ControlType > Select Case varType > Case acTextBox > varSource = ctl.ControlSource > varvalue = ctl.OldValue > varVisible = ctl.Visible > If Not IsNull(varSource) And Len(varSource) > 0 And _ > Not IsNull(varvalue) And Len(varvalue) > 0 And varVisible = True > Then > Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, > lngPID, conFlagsForms) > End If > Case acComboBox > varSource = ctl.ControlSource > varvalue = ctl.OldValue > If Not IsNull(varSource) And Len(varSource) > 0 Then > Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, > lngPID, conFlagsForms) > End If > Case acCheckBox > varSource = ctl.ControlSource > varvalue = ctl.OldValue > If varvalue = True Then > Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, > lngPID, conFlagsForms) > End If > Case acOptionGroup > varSource = ctl.ControlSource > varvalue = ctl.OldValue > Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, lngPID, > conFlagsForms) > Case acSubform > Case acLabel > Case acBoundObjectFrame > Case acPage > Case acPageBreak > Case acCommandButton > Case acCustomControl > Case acRectangle > Case acImage > Case acTabCtl > Case acLine > Case acToggleButton > Case acObjectFrame > Case acListBox > Case acOptionButton > Case Else > MsgBox "NewType found in RebuildPersonsFalgsSystemControls:", > varType, varName > End Select > Next ctl > End With > End Function From dwaters at usinternet.com Mon Feb 9 09:06:15 2009 From: dwaters at usinternet.com (Dan Waters) Date: Mon, 9 Feb 2009 09:06:15 -0600 Subject: [AccessD] Citrix and Access In-Reply-To: <068ABE2F0E6941529A382BF5E1E9B11D@XPS> References: <9CBB659C05524E078CB7C9BC75F88867@danwaters><29f585dd0902061244g657ce9afsa77493509fceb269@mail.gmail.com> <068ABE2F0E6941529A382BF5E1E9B11D@XPS> Message-ID: <12881D1FC2474C5FBD58CFE07E61C22A@danwaters> Hi Jim, Hi Mark, This is just the type of thing I was thinking I'd need to get resolved. I am working with my customer's IT guy who seems quite comfortable with Citrix, so that's good. I'll specifically ask him about mapping a unique path on the server to a drive letter for their terminal services profile. I agree with avoiding the sharing of references. My system now uses an AutoUpdater.mdb file that I wrote to ensure that each user automatically pulls the latest files from the server each time they open the application, so all references do go to files on the C drive. The FE.mdb, Library.mdb, TempTables.mdb, sound files, and one 3rd party dll file (VBA Global Error Handler from EverythingAccess.com), are checked for Last Modified Date and pulled to the client before the app is opened. There are continuous requests for modifications, so the FE.mdb and Library.mdb are updated frequently. This autoupdating is at least one scenario that we'll need to work through carefully. Another is that my app pulls a recordset from the mdw file on the server to see how many people are logged in. If they have 8 licenses, user 9 just gets a message that the app is 'full', and they are then logged out. Right now the max number of concurrent users is only 8, this may double or so in a couple of years. Thanks! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman Sent: Sunday, February 08, 2009 4:34 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Citrix and Access Dan, Probably the biggest issue when running under Citrix is that the "C" drive is the same for everyone. That's a bit of a problem where you want everyone to have their own FE (which you would typically would install on their C drive). But there is an easy workaround for that; just map a unique path on the server to a drive letter for their terminal services profile (something like X) and place the FE there. A little more problematic however is references. If you open up an FE, you'll find all your references still pointing to C. For the most part, if your just using the typical references, this is not an issue. Those references can be shared with no problem. But if your using a library reference (a reference to a MDA) or some type of 3rd party component, then you might have issues with multiple users all sharing that reference. This is in fact the reason that some of the Wizards in Office are not available under TS; they simply won't work when shared. Unfortunately there is not easy work around for this. You have few choices. You can map the same drive letter for everyone (remote user or not) and write your app against that or you can distribute two different versions of the app (one that runs against C and one that runs against your mapped drive letter). I've been lucky enough to only run up against this once, but when you do it's a pain in the butt. Other then that, Access works wonderfully under TS/Citrix with JET or SQL Server. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: Friday, February 06, 2009 4:05 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Citrix and Access Hi Arthur, Anything you can think of that might have been restrictive or need to know? I'll be switching out many users from running on their PC to using a Citrix window. Glad to hear about the response time! Was your FE linked to SQL 2000 or were you using an OLEDB Provider? Thanks, Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Arthur Fuller Sent: Friday, February 06, 2009 2:45 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Citrix and Access I have lots of experience running an Access app on Terminal Services, and even with 70 users it was faster for me to develop on the remote TS box than on my local machine at home. I was completely floored. Assuming a fast pipe on both ends, I think you will be very pleased with the response time. (To be fair, our Access back end was SQL 2000.) hth, Arthur -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jimdettman at verizon.net Mon Feb 9 09:16:49 2009 From: jimdettman at verizon.net (Jim Dettman) Date: Mon, 09 Feb 2009 10:16:49 -0500 Subject: [AccessD] Citrix and Access In-Reply-To: <12881D1FC2474C5FBD58CFE07E61C22A@danwaters> References: <9CBB659C05524E078CB7C9BC75F88867@danwaters><29f585dd0902061244g657ce9afsa77493509fceb269@mail.gmail.com> <068ABE2F0E6941529A382BF5E1E9B11D@XPS> <12881D1FC2474C5FBD58CFE07E61C22A@danwaters> Message-ID: <4B3A6DAE149D4145964C4CA38FD08E04@XPS> Dan, Actually, the global error handler may be more of an issue if it's using any kind of temp storage to do anything. That's what you need to watch out for; places where you assumed only one user would be in there at one time. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: Monday, February 09, 2009 10:06 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Citrix and Access Hi Jim, Hi Mark, This is just the type of thing I was thinking I'd need to get resolved. I am working with my customer's IT guy who seems quite comfortable with Citrix, so that's good. I'll specifically ask him about mapping a unique path on the server to a drive letter for their terminal services profile. I agree with avoiding the sharing of references. My system now uses an AutoUpdater.mdb file that I wrote to ensure that each user automatically pulls the latest files from the server each time they open the application, so all references do go to files on the C drive. The FE.mdb, Library.mdb, TempTables.mdb, sound files, and one 3rd party dll file (VBA Global Error Handler from EverythingAccess.com), are checked for Last Modified Date and pulled to the client before the app is opened. There are continuous requests for modifications, so the FE.mdb and Library.mdb are updated frequently. This autoupdating is at least one scenario that we'll need to work through carefully. Another is that my app pulls a recordset from the mdw file on the server to see how many people are logged in. If they have 8 licenses, user 9 just gets a message that the app is 'full', and they are then logged out. Right now the max number of concurrent users is only 8, this may double or so in a couple of years. Thanks! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman Sent: Sunday, February 08, 2009 4:34 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Citrix and Access Dan, Probably the biggest issue when running under Citrix is that the "C" drive is the same for everyone. That's a bit of a problem where you want everyone to have their own FE (which you would typically would install on their C drive). But there is an easy workaround for that; just map a unique path on the server to a drive letter for their terminal services profile (something like X) and place the FE there. A little more problematic however is references. If you open up an FE, you'll find all your references still pointing to C. For the most part, if your just using the typical references, this is not an issue. Those references can be shared with no problem. But if your using a library reference (a reference to a MDA) or some type of 3rd party component, then you might have issues with multiple users all sharing that reference. This is in fact the reason that some of the Wizards in Office are not available under TS; they simply won't work when shared. Unfortunately there is not easy work around for this. You have few choices. You can map the same drive letter for everyone (remote user or not) and write your app against that or you can distribute two different versions of the app (one that runs against C and one that runs against your mapped drive letter). I've been lucky enough to only run up against this once, but when you do it's a pain in the butt. Other then that, Access works wonderfully under TS/Citrix with JET or SQL Server. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: Friday, February 06, 2009 4:05 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Citrix and Access Hi Arthur, Anything you can think of that might have been restrictive or need to know? I'll be switching out many users from running on their PC to using a Citrix window. Glad to hear about the response time! Was your FE linked to SQL 2000 or were you using an OLEDB Provider? Thanks, Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Arthur Fuller Sent: Friday, February 06, 2009 2:45 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Citrix and Access I have lots of experience running an Access app on Terminal Services, and even with 70 users it was faster for me to develop on the remote TS box than on my local machine at home. I was completely floored. Assuming a fast pipe on both ends, I think you will be very pleased with the response time. (To be fair, our Access back end was SQL 2000.) hth, Arthur -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jimdettman at verizon.net Mon Feb 9 09:15:01 2009 From: jimdettman at verizon.net (Jim Dettman) Date: Mon, 09 Feb 2009 10:15:01 -0500 Subject: [AccessD] Citrix and Access In-Reply-To: <12881D1FC2474C5FBD58CFE07E61C22A@danwaters> References: <9CBB659C05524E078CB7C9BC75F88867@danwaters><29f585dd0902061244g657ce9afsa77493509fceb269@mail.gmail.com> <068ABE2F0E6941529A382BF5E1E9B11D@XPS> <12881D1FC2474C5FBD58CFE07E61C22A@danwaters> Message-ID: <2A4319B3F9A1422285AF4D672D2C68F4@XPS> Dan, Sounds like your Library.MDB would be an issue. If it's just pure code, you might get away with it, just keep in mind that all users will be sharing it unless you take extra steps. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: Monday, February 09, 2009 10:06 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Citrix and Access Hi Jim, Hi Mark, This is just the type of thing I was thinking I'd need to get resolved. I am working with my customer's IT guy who seems quite comfortable with Citrix, so that's good. I'll specifically ask him about mapping a unique path on the server to a drive letter for their terminal services profile. I agree with avoiding the sharing of references. My system now uses an AutoUpdater.mdb file that I wrote to ensure that each user automatically pulls the latest files from the server each time they open the application, so all references do go to files on the C drive. The FE.mdb, Library.mdb, TempTables.mdb, sound files, and one 3rd party dll file (VBA Global Error Handler from EverythingAccess.com), are checked for Last Modified Date and pulled to the client before the app is opened. There are continuous requests for modifications, so the FE.mdb and Library.mdb are updated frequently. This autoupdating is at least one scenario that we'll need to work through carefully. Another is that my app pulls a recordset from the mdw file on the server to see how many people are logged in. If they have 8 licenses, user 9 just gets a message that the app is 'full', and they are then logged out. Right now the max number of concurrent users is only 8, this may double or so in a couple of years. Thanks! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman Sent: Sunday, February 08, 2009 4:34 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Citrix and Access Dan, Probably the biggest issue when running under Citrix is that the "C" drive is the same for everyone. That's a bit of a problem where you want everyone to have their own FE (which you would typically would install on their C drive). But there is an easy workaround for that; just map a unique path on the server to a drive letter for their terminal services profile (something like X) and place the FE there. A little more problematic however is references. If you open up an FE, you'll find all your references still pointing to C. For the most part, if your just using the typical references, this is not an issue. Those references can be shared with no problem. But if your using a library reference (a reference to a MDA) or some type of 3rd party component, then you might have issues with multiple users all sharing that reference. This is in fact the reason that some of the Wizards in Office are not available under TS; they simply won't work when shared. Unfortunately there is not easy work around for this. You have few choices. You can map the same drive letter for everyone (remote user or not) and write your app against that or you can distribute two different versions of the app (one that runs against C and one that runs against your mapped drive letter). I've been lucky enough to only run up against this once, but when you do it's a pain in the butt. Other then that, Access works wonderfully under TS/Citrix with JET or SQL Server. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: Friday, February 06, 2009 4:05 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Citrix and Access Hi Arthur, Anything you can think of that might have been restrictive or need to know? I'll be switching out many users from running on their PC to using a Citrix window. Glad to hear about the response time! Was your FE linked to SQL 2000 or were you using an OLEDB Provider? Thanks, Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Arthur Fuller Sent: Friday, February 06, 2009 2:45 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Citrix and Access I have lots of experience running an Access app on Terminal Services, and even with 70 users it was faster for me to develop on the remote TS box than on my local machine at home. I was completely floored. Assuming a fast pipe on both ends, I think you will be very pleased with the response time. (To be fair, our Access back end was SQL 2000.) hth, Arthur -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Feb 9 09:39:08 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 09 Feb 2009 10:39:08 -0500 Subject: [AccessD] Classes and Events Message-ID: <49904E1C.4080701@colbyconsulting.com> A QUICK introduction to classes and events. CLASSES: * The Code Behind Forms module in a form is a class module. * A class is a module, but a module is not a class. * A class has properties and behaviors that a module does not. * A class is actually instantiated when a set statement is executed. In other words, an INSTANCE of the class is loaded into memory, and stays in memory until it is specifically unloaded. * Like a module, a class can contain data (variables) and code. However the variables in a module can only contain ONE value at a time. * A class can be loaded into memory as many times as you want (limited only by the size of your memory) and EACH INSTANCE of a class can contain its own value in its variables. * All instances of a class SHARE code, but do not share variables. In other words, the code is only loaded into memory one time, but the variables are loaded once per class instance loaded. * The class (and every object, including forms and controls) unloads from memory when the last variable holding a pointer to the object is set to nothing. *A class has two built-in Events that fire, one as a class instance loads (Class_Initialize), and the other as the class instance unloads (Class_Terminate). Think of a class as a place to store information and code about some thing in the real world. Perhaps you have a clsPerson. That class has a bunch of variables called FirstName, LastName, SSN, ColorHair, ColorEyes, Gender, Birthdate etc. Load an INSTANCE of that class and fill in the data about John Colby, load another instance and fill in the data about Mary Colby etc. You might then have a piece of code that takes the birthdate and calculates the current age from that. The data and the code are all stored together in the class. EVENTS: Events can be thought of kind of like a radio transmission. The radio station transmits a signal, but they have no idea whether anyone is listening. In the case of events, this is called ?Raising (or sourcing) and event?. If someone is listening to that radio signal, then the person listening can do whatever they want with the signal they are receiving. They can do nothing at all, they can use it as a signal to launch an attack on an enemy, they can enjoy music, they can? The important thing to understand here is that what the listener does is up to the listener. In the case of events, receiving the signal is called ?sinking? the event. Notice that the person broadcasting the signal doesn?t know or care whether anyone is listening, nor do they know or care what the listener (if they even exist) does with the signal. When you open a form, the form is constantly raising events. It raises OnOpen, OnClose, OnCurrent, BeforeUpdate, AfterUpdate, MouseMove etc etc. The events are raised whether or not anyone is listening. The form neither knows nor cares whether anyone is listening to (sinking) those events, it is simply raising these events so that if anyone is listening to (sinking) the events, they can do whatever they want when the events fire. When you place a control on the form, the control raises events under certain circumstances. When the control gets the focus it raises an OnFocus event, when it loses the focus it raises a LostFocus event, it raises a BeforeUpdate, AfterUpdate etc. Of course these events depend on what the user does, in other words they don?t happen unless the user manipulates the control in the correct manner, enters data for example. But notice that while the control always raises the event, it neither knows nor cares whether anyone is listening, nor does it know or care what the listener does with the event if anyone is listening (sinking the event). This is a critical thing to understand, that the object raising an event does not know nor care about the listener, nor what the listener does. The reason that this is critical is because it allows you to design an interface between objects which is totally asynchronous or disconnected. Have you ever built a subform and referenced a control on the parent form? Have you ever tried to open that subform by itself? It complains that it cannot find the control on the parent. The subform is has a ?connected? interface to the parent, without the parent it cannot do its thing correctly. The event ?Raise/Sink? interface eliminates that dependence. The object raising the event does not depend on having a receiver of the event in order to function correctly. The receiver of events does not depend on the broadcaster existing in order to function, although of course it cannot do whatever it would do with the events if they are not being broadcast. But each side can be loaded and code can execute without the other side being loaded, without compile errors etc. The last thing to know is that regular modules cannot sink events, but a class can. A regular module cannot RAISE an event, but a class can. Classes are modules, but modules are not classes. This is just a teaser to see if anyone is interested. If yes continue lecture else end if. -- John W. Colby www.ColbyConsulting.com From krosenstiel at comcast.net Mon Feb 9 09:39:28 2009 From: krosenstiel at comcast.net (krosenstiel at comcast.net) Date: Mon, 9 Feb 2009 15:39:28 +0000 (UTC) Subject: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue display text? In-Reply-To: <499039E4.9060903@colbyconsulting.com> Message-ID: <383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> I'd be interested in this. Doubt I'll understand it, but I'd be interested. Karen Rosenstiel Seattle WA USA ----- Original Message ----- From: "jwcolby" To: "Access Developers discussion and problem solving" Sent: Monday, February 9, 2009 6:12:52 AM GMT -08:00 US/Canada Pacific Subject: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue display text? Guys, Using the tag value to store stuff is generally not a good solution, and never was (well, perhaps before classes). The disadvantages of the tag speak for itself, ONE location to store how much stuff? Packing, unpacking variables that you want to store there, overwriting data from the previous programmer, and the list goes on. Look, MS very kindly gave us Classes and WithEvents. Classes and Withevents is EASY. Classes and Withevents prepares you for programming in other platforms such as dotnet. Classes and withevents provide you with extremely powerful methods of handling repetitive programing. Classes provide you with encapsulation of code and data. If you are a programmer, all of these things should matter to you. If you can program Code Behind Form, if you can do things like the example code that Max so kindly provided, then classes are a tiny step that will increase your skill and ability an order of magnitude. AccessD has many developers using Classes and Withevents. Perhaps they can speak up with their opinions on the subject. If you want to learn how to do what Stuart was asking about using a single pair of classes (a form class and a combo class), speak up and I will start a thread on the subject. I will teach you how to do this stuff, step by step, and in just a few emails you too can be using classes and withevents. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Hi Stuart, > Here are two routines which you may care to look at. The first is to store > the value into the .TAG property of the control. > The second just parses the controls. > Might be of interes, might not, don't know, submitted as is - chuck it if no > good. > Regards > Max > > Public Function pubFunUpdateTagData(frm As Form) > On Error Resume Next > ' this puts the data into the tag before any changes are made > > Dim ctl As Control, z As Variant > For Each ctl In frm.Controls > With ctl > Select Case .ControlType > Case acTextBox ' this can hold numbers, strings and dates etc > Select Case varType(frm(ctl.Name)) > Case 2, 3, 4, 5, 6 ' int,long,single,double,currency > frm(ctl.Name).Tag = Val(frm(ctl.Name)) > Case 7 > frm(ctl.Name).Tag = CStr(frm(ctl.Name)) > Case 8 > frm(ctl.Name).Tag = frm(ctl.Name) > End Select > Case acCheckBox > frm(ctl.Name).Tag = frm(ctl.Name) > Case acComboBox > Select Case frm(ctl.Name).RowSourceType > Case "Table/Query" > frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(1)) > 'MsgBox frm(ctl.Name).Tag > Case "Value List" > frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(0, 0)) > Case Else > End Select > Case acListBox > frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(1), "") > Case acOptionGroup > frm(ctl.Name).Tag = Nz(frm(ctl.Name), 0) > End Select > End With > Next ctl > > exithere: > Exit Function > errhandler: > MsgBox "Error in MCM_PeopleChanges.pubFunUpdateTagData: " & Err.Number & > vbCrLf & Err.Description > Resume exithere > End Function > > Private Function RebuildPersonsFlagsFormsControls(frm As Form, lngPID As > Long) > On Error Resume Next > Dim ctl As Control, strDesc As String > Dim varSource As Variant, varvalue As Variant, varType As Variant, varName > As Variant > Dim varVisible As Variant > strDesc = frm.Name > With frm > For Each ctl In frm.Controls > varName = ctl.Name > varType = ctl.ControlType > Select Case varType > Case acTextBox > varSource = ctl.ControlSource > varvalue = ctl.OldValue > varVisible = ctl.Visible > If Not IsNull(varSource) And Len(varSource) > 0 And _ > Not IsNull(varvalue) And Len(varvalue) > 0 And varVisible = True > Then > Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, > lngPID, conFlagsForms) > End If > Case acComboBox > varSource = ctl.ControlSource > varvalue = ctl.OldValue > If Not IsNull(varSource) And Len(varSource) > 0 Then > Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, > lngPID, conFlagsForms) > End If > Case acCheckBox > varSource = ctl.ControlSource > varvalue = ctl.OldValue > If varvalue = True Then > Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, > lngPID, conFlagsForms) > End If > Case acOptionGroup > varSource = ctl.ControlSource > varvalue = ctl.OldValue > Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, lngPID, > conFlagsForms) > Case acSubform > Case acLabel > Case acBoundObjectFrame > Case acPage > Case acPageBreak > Case acCommandButton > Case acCustomControl > Case acRectangle > Case acImage > Case acTabCtl > Case acLine > Case acToggleButton > Case acObjectFrame > Case acListBox > Case acOptionButton > Case Else > MsgBox "NewType found in RebuildPersonsFalgsSystemControls:", > varType, varName > End Select > Next ctl > End With > End Function -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Mon Feb 9 09:50:27 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 9 Feb 2009 15:50:27 +0000 Subject: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue display text? In-Reply-To: <383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> References: <499039E4.9060903@colbyconsulting.com> <383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> Message-ID: Ha! It was in the 1990's I wrote it . I dont use tags now, but they might be useful for some purposes - I can think of one but won't go into that now. The aim was to demonstrate easily, the use of control looping with the various control types and not the storage of variable values. I also use classes but I am not a devotee like you John. Sinking and Uping (or whatever the reverse of sinking is) or WithEvents is not something I have ever got into and have never ever had a need for this - I say that because I have not come across anything that I cannot do without using it/them. I would be interest to follow a thread though. Thanks Max On Mon, Feb 9, 2009 at 3:39 PM, wrote: > I'd be interested in this. Doubt I'll understand it, but I'd be interested. > > Karen Rosenstiel > Seattle WA USA > > ----- Original Message ----- > From: "jwcolby" > To: "Access Developers discussion and problem solving" < > accessd at databaseadvisors.com> > Sent: Monday, February 9, 2009 6:12:52 AM GMT -08:00 US/Canada Pacific > Subject: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue display > text? > > Guys, > > Using the tag value to store stuff is generally not a good solution, and > never was (well, perhaps > before classes). The disadvantages of the tag speak for itself, ONE > location to store how much > stuff? Packing, unpacking variables that you want to store there, > overwriting data from the > previous programmer, and the list goes on. > > Look, MS very kindly gave us Classes and WithEvents. > > Classes and Withevents is EASY. Classes and Withevents prepares you for > programming in other > platforms such as dotnet. Classes and withevents provide you with extremely > powerful methods of > handling repetitive programing. Classes provide you with encapsulation of > code and data. If you > are a programmer, all of these things should matter to you. > > If you can program Code Behind Form, if you can do things like the example > code that Max so kindly > provided, then classes are a tiny step that will increase your skill and > ability an order of > magnitude. AccessD has many developers using Classes and Withevents. > Perhaps they can speak up > with their opinions on the subject. > > If you want to learn how to do what Stuart was asking about using a single > pair of classes (a form > class and a combo class), speak up and I will start a thread on the > subject. I will teach you how > to do this stuff, step by step, and in just a few emails you too can be > using classes and withevents. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: > > Hi Stuart, > > Here are two routines which you may care to look at. The first is to > store > > the value into the .TAG property of the control. > > The second just parses the controls. > > Might be of interes, might not, don't know, submitted as is - chuck it if > no > > good. > > Regards > > Max > > > > Public Function pubFunUpdateTagData(frm As Form) > > On Error Resume Next > > ' this puts the data into the tag before any changes are made > > > > Dim ctl As Control, z As Variant > > For Each ctl In frm.Controls > > With ctl > > Select Case .ControlType > > Case acTextBox ' this can hold numbers, strings and dates etc > > Select Case varType(frm(ctl.Name)) > > Case 2, 3, 4, 5, 6 ' int,long,single,double,currency > > frm(ctl.Name).Tag = Val(frm(ctl.Name)) > > Case 7 > > frm(ctl.Name).Tag = CStr(frm(ctl.Name)) > > Case 8 > > frm(ctl.Name).Tag = frm(ctl.Name) > > End Select > > Case acCheckBox > > frm(ctl.Name).Tag = frm(ctl.Name) > > Case acComboBox > > Select Case frm(ctl.Name).RowSourceType > > Case "Table/Query" > > frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(1)) > > 'MsgBox frm(ctl.Name).Tag > > Case "Value List" > > frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(0, 0)) > > Case Else > > End Select > > Case acListBox > > frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(1), "") > > Case acOptionGroup > > frm(ctl.Name).Tag = Nz(frm(ctl.Name), 0) > > End Select > > End With > > Next ctl > > > > exithere: > > Exit Function > > errhandler: > > MsgBox "Error in MCM_PeopleChanges.pubFunUpdateTagData: " & Err.Number & > > vbCrLf & Err.Description > > Resume exithere > > End Function > > > > Private Function RebuildPersonsFlagsFormsControls(frm As Form, lngPID As > > Long) > > On Error Resume Next > > Dim ctl As Control, strDesc As String > > Dim varSource As Variant, varvalue As Variant, varType As Variant, > varName > > As Variant > > Dim varVisible As Variant > > strDesc = frm.Name > > With frm > > For Each ctl In frm.Controls > > varName = ctl.Name > > varType = ctl.ControlType > > Select Case varType > > Case acTextBox > > varSource = ctl.ControlSource > > varvalue = ctl.OldValue > > varVisible = ctl.Visible > > If Not IsNull(varSource) And Len(varSource) > 0 And _ > > Not IsNull(varvalue) And Len(varvalue) > 0 And varVisible = True > > Then > > Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, > > lngPID, conFlagsForms) > > End If > > Case acComboBox > > varSource = ctl.ControlSource > > varvalue = ctl.OldValue > > If Not IsNull(varSource) And Len(varSource) > 0 Then > > Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, > > lngPID, conFlagsForms) > > End If > > Case acCheckBox > > varSource = ctl.ControlSource > > varvalue = ctl.OldValue > > If varvalue = True Then > > Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, > > lngPID, conFlagsForms) > > End If > > Case acOptionGroup > > varSource = ctl.ControlSource > > varvalue = ctl.OldValue > > Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, lngPID, > > conFlagsForms) > > Case acSubform > > Case acLabel > > Case acBoundObjectFrame > > Case acPage > > Case acPageBreak > > Case acCommandButton > > Case acCustomControl > > Case acRectangle > > Case acImage > > Case acTabCtl > > Case acLine > > Case acToggleButton > > Case acObjectFrame > > Case acListBox > > Case acOptionButton > > Case Else > > MsgBox "NewType found in RebuildPersonsFalgsSystemControls:", > > varType, varName > > End Select > > Next ctl > > End With > > End Function > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From bhjohnson at verizon.net Mon Feb 9 09:54:09 2009 From: bhjohnson at verizon.net (Bruce H. Johnson) Date: Mon, 09 Feb 2009 07:54:09 -0800 Subject: [AccessD] Classes and Events In-Reply-To: <49904E1C.4080701@colbyconsulting.com> References: <49904E1C.4080701@colbyconsulting.com> Message-ID: <782B7660AEC3470E93C01C45D07BEB7F@Halii> Yes. Keep it coming. Bruce H. Johnson Sylmar, CA -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Monday, February 09, 2009 7:39 AM To: Access Developers discussion and problem solving Subject: [AccessD] Classes and Events A QUICK introduction to classes and events. From fuller.artful at gmail.com Mon Feb 9 10:01:20 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Mon, 9 Feb 2009 11:01:20 -0500 Subject: [AccessD] Classes and Events In-Reply-To: <782B7660AEC3470E93C01C45D07BEB7F@Halii> References: <49904E1C.4080701@colbyconsulting.com> <782B7660AEC3470E93C01C45D07BEB7F@Halii> Message-ID: <29f585dd0902090801o5877b764yeb355e997c402872@mail.gmail.com> Me too. On Mon, Feb 9, 2009 at 10:54 AM, Bruce H. Johnson wrote: > Yes. Keep it coming. > > > Bruce H. Johnson > Sylmar, CA > > > From cfoust at infostatsystems.com Mon Feb 9 10:01:49 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Mon, 9 Feb 2009 08:01:49 -0800 Subject: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue displaytext? In-Reply-To: References: <499039E4.9060903@colbyconsulting.com><383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> Message-ID: It's Sinking and RAISING, not uping. LOL Using classes isn't the only way to do things, it's just the efficient way. Instead of writing the same code over and over, you embed that in a class and use the public interface of the class to handle its operations. If you bind a, oh, let's say ... A combobox ... To a class then the class can specify the combobox's behavior, appearance, and the way it handles itself. Want an oldvalue for a combobox? Put some code and a public property into the class and voila, you have a combobox with an oldvalue. More importantly, you have that whenever you bind a combobox to that class. I know a lot of people who never say the point in classes, but it's a bit like religion. Once you convert, you want to persuade everyone else how wonderful your approach is! Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Monday, February 09, 2009 7:50 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue displaytext? Ha! It was in the 1990's I wrote it . I dont use tags now, but they might be useful for some purposes - I can think of one but won't go into that now. The aim was to demonstrate easily, the use of control looping with the various control types and not the storage of variable values. I also use classes but I am not a devotee like you John. Sinking and Uping (or whatever the reverse of sinking is) or WithEvents is not something I have ever got into and have never ever had a need for this - I say that because I have not come across anything that I cannot do without using it/them. I would be interest to follow a thread though. Thanks Max On Mon, Feb 9, 2009 at 3:39 PM, wrote: > I'd be interested in this. Doubt I'll understand it, but I'd be interested. > > Karen Rosenstiel > Seattle WA USA > > ----- Original Message ----- > From: "jwcolby" > To: "Access Developers discussion and problem solving" < > accessd at databaseadvisors.com> > Sent: Monday, February 9, 2009 6:12:52 AM GMT -08:00 US/Canada Pacific > Subject: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue > display text? > > Guys, > > Using the tag value to store stuff is generally not a good solution, > and never was (well, perhaps before classes). The disadvantages of the > tag speak for itself, ONE location to store how much stuff? Packing, > unpacking variables that you want to store there, overwriting data > from the previous programmer, and the list goes on. > > Look, MS very kindly gave us Classes and WithEvents. > > Classes and Withevents is EASY. Classes and Withevents prepares you > for programming in other platforms such as dotnet. Classes and > withevents provide you with extremely powerful methods of handling > repetitive programing. Classes provide you with encapsulation of code > and data. If you are a programmer, all of these things should matter > to you. > > If you can program Code Behind Form, if you can do things like the > example code that Max so kindly provided, then classes are a tiny step > that will increase your skill and ability an order of magnitude. > AccessD has many developers using Classes and Withevents. > Perhaps they can speak up > with their opinions on the subject. > > If you want to learn how to do what Stuart was asking about using a > single pair of classes (a form class and a combo class), speak up and > I will start a thread on the subject. I will teach you how to do this > stuff, step by step, and in just a few emails you too can be using > classes and withevents. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: > > Hi Stuart, > > Here are two routines which you may care to look at. The first is to > store > > the value into the .TAG property of the control. > > The second just parses the controls. > > Might be of interes, might not, don't know, submitted as is - chuck > > it if > no > > good. > > Regards > > Max > > > > Public Function pubFunUpdateTagData(frm As Form) On Error Resume > > Next ' this puts the data into the tag before any changes are made > > > > Dim ctl As Control, z As Variant > > For Each ctl In frm.Controls > > With ctl > > Select Case .ControlType > > Case acTextBox ' this can hold numbers, strings and dates etc Select > > Case varType(frm(ctl.Name)) Case 2, 3, 4, 5, 6 ' > > int,long,single,double,currency frm(ctl.Name).Tag = > > Val(frm(ctl.Name)) Case 7 frm(ctl.Name).Tag = CStr(frm(ctl.Name)) > > Case 8 frm(ctl.Name).Tag = frm(ctl.Name) End Select Case acCheckBox > > frm(ctl.Name).Tag = frm(ctl.Name) Case acComboBox Select Case > > frm(ctl.Name).RowSourceType Case "Table/Query" > > frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(1)) 'MsgBox > > frm(ctl.Name).Tag Case "Value List" > > frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(0, 0)) Case Else End > > Select Case acListBox frm(ctl.Name).Tag = > > Nz(frm(ctl.Name).Column(1), "") Case acOptionGroup frm(ctl.Name).Tag > > = Nz(frm(ctl.Name), 0) End Select End With Next ctl > > > > exithere: > > Exit Function > > errhandler: > > MsgBox "Error in MCM_PeopleChanges.pubFunUpdateTagData: " & > > Err.Number & vbCrLf & Err.Description Resume exithere End Function > > > > Private Function RebuildPersonsFlagsFormsControls(frm As Form, > > lngPID As > > Long) > > On Error Resume Next > > Dim ctl As Control, strDesc As String Dim varSource As Variant, > > varvalue As Variant, varType As Variant, > varName > > As Variant > > Dim varVisible As Variant > > strDesc = frm.Name > > With frm > > For Each ctl In frm.Controls > > varName = ctl.Name > > varType = ctl.ControlType > > Select Case varType > > Case acTextBox > > varSource = ctl.ControlSource > > varvalue = ctl.OldValue > > varVisible = ctl.Visible > > If Not IsNull(varSource) And Len(varSource) > 0 And _ Not > > IsNull(varvalue) And Len(varvalue) > 0 And varVisible = True Then > > Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, lngPID, > > conFlagsForms) End If Case acComboBox varSource = ctl.ControlSource > > varvalue = ctl.OldValue If Not IsNull(varSource) And Len(varSource) > > > 0 Then Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, > > lngPID, conFlagsForms) End If Case acCheckBox varSource = > > ctl.ControlSource varvalue = ctl.OldValue If varvalue = True Then > > Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, lngPID, > > conFlagsForms) End If Case acOptionGroup varSource = > > ctl.ControlSource varvalue = ctl.OldValue Call mcmSetFlag(strDesc & > > ":" & varSource & ":" & varvalue, lngPID, > > conFlagsForms) > > Case acSubform > > Case acLabel > > Case acBoundObjectFrame > > Case acPage > > Case acPageBreak > > Case acCommandButton > > Case acCustomControl > > Case acRectangle > > Case acImage > > Case acTabCtl > > Case acLine > > Case acToggleButton > > Case acObjectFrame > > Case acListBox > > Case acOptionButton > > Case Else > > MsgBox "NewType found in RebuildPersonsFalgsSystemControls:", > > varType, varName > > End Select > > Next ctl > > End With > > End Function > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From markamatte at hotmail.com Mon Feb 9 10:05:11 2009 From: markamatte at hotmail.com (Mark A Matte) Date: Mon, 9 Feb 2009 16:05:11 +0000 Subject: [AccessD] Import Bad data? In-Reply-To: References: <499039E4.9060903@colbyconsulting.com> <383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> Message-ID: Hello All, I'm not expecting an answer I'll like...but I'll try. I'm importing a large number of records from Informix to Access via odbc. There is a large text/memo field...that apparently has some characters access does not like. I do not get an error message...access just says "an error has occurred...do you want to tell MS"...then closes. I'm trying to think of a way to detect/program around this. So far...its a very manual process. I loop through 2 days worth at a time...that way I don't have to start over from the beginning everytime. When it crashes...I pull in just the PKs for that date range...loop through them...imort the text field 1 record at a time...store in temp table...when it crashes...I compare the PKs to the temp table...the next PK not in the temp is the offender. This is very manual and time consuming...any ideas/suggestions? Thanks, Mark A. Matte _________________________________________________________________ Windows Live?: E-mail. Chat. Share. Get more ways to connect. http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_HM_AE_Faster_022009 From mikedorism at verizon.net Mon Feb 9 10:04:50 2009 From: mikedorism at verizon.net (Doris Manning) Date: Mon, 09 Feb 2009 11:04:50 -0500 Subject: [AccessD] Classes and Events In-Reply-To: <49904E1C.4080701@colbyconsulting.com> References: <49904E1C.4080701@colbyconsulting.com> Message-ID: <0A770289946E41F08EF2E795639FF705@Kermit> Yes, please continue lecture. I do more these days with .Net but the content you have here is appropriate there too. Doris Manning Database Administrator Hargrove Inc. From phpons at gmail.com Mon Feb 9 10:05:35 2009 From: phpons at gmail.com (philippe pons) Date: Mon, 9 Feb 2009 17:05:35 +0100 Subject: [AccessD] Calling an AfterUpdate evnte proc. of a combo Message-ID: <57144ced0902090805i3a633553u25ab3dd959b09182@mail.gmail.com> Hi all, I have a small proc. to which I pass a reference to a combo box. This proc has to synchronize the combo on the first item and run the AfterUpdate event proc. Private Sub syncCboTest(ByRef cbo As ComboBox) ' syn de la cbo de s?lection du chapitre cbo.SetFocus cbo = cbo.ItemData(0) ' Call cboSelChap_AfterUpdate Call cbo_AfterUpdate '<== this won't work! End Sub The question: How would you call the AfterUpdate event of a combobox that is represented by it's reference?? something like: cbo_AfterUpdate! If it is even possible! Best regards, Philippe Pons From garykjos at gmail.com Mon Feb 9 10:24:11 2009 From: garykjos at gmail.com (Gary Kjos) Date: Mon, 9 Feb 2009 10:24:11 -0600 Subject: [AccessD] Import Bad data? In-Reply-To: References: <499039E4.9060903@colbyconsulting.com> <383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> Message-ID: You could Export to a Text file and then read through that with vba text handling code to parse through and scrub the offending characters and then save the corrected file and import that. I've done that when someone provided me with several huge exported data files that didn't have the correct combination of CR & LF at the end of records and so it fouled up a direct import for me. Longtime AccessD contributor Seth Galitzer has some code samples on his website for "FILE I/O in VB" that you can download and have a look at. http://seth.galitzer.net/node/11 Once you get the file open parsing through the text and either ignoring characters or replacing them with something else isn't too tough. It's been a long time since I've done it but I could MAYBE hunt up my code if you are really stumped by that. GK On 2/9/09, Mark A Matte wrote: > > Hello All, > > I'm not expecting an answer I'll like...but I'll try. > > I'm importing a large number of records from Informix to Access via odbc. There is a large text/memo field...that apparently has some characters access does not like. I do not get an error message...access just says "an error has occurred...do you want to tell MS"...then closes. > > I'm trying to think of a way to detect/program around this. So far...its a very manual process. I loop through 2 days worth at a time...that way I don't have to start over from the beginning everytime. When it crashes...I pull in just the PKs for that date range...loop through them...imort the text field 1 record at a time...store in temp table...when it crashes...I compare the PKs to the temp table...the next PK not in the temp is the offender. > > This is very manual and time consuming...any ideas/suggestions? > > Thanks, > > Mark A. Matte > > > _________________________________________________________________ > Windows Live?: E-mail. Chat. Share. Get more ways to connect. > http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_HM_AE_Faster_022009 > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- Gary Kjos garykjos at gmail.com From rockysmolin at bchacc.com Mon Feb 9 10:30:34 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Mon, 9 Feb 2009 08:30:34 -0800 Subject: [AccessD] Import Bad data? In-Reply-To: References: <499039E4.9060903@colbyconsulting.com><383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> Message-ID: And once it's been exported to text and he's looping through the text file looking for the bad guys, couldn't he just add a bit of DAO code, sort the text fields into their proper fields in the record and write the record out to the table? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gary Kjos Sent: Monday, February 09, 2009 8:24 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Import Bad data? You could Export to a Text file and then read through that with vba text handling code to parse through and scrub the offending characters and then save the corrected file and import that. I've done that when someone provided me with several huge exported data files that didn't have the correct combination of CR & LF at the end of records and so it fouled up a direct import for me. Longtime AccessD contributor Seth Galitzer has some code samples on his website for "FILE I/O in VB" that you can download and have a look at. http://seth.galitzer.net/node/11 Once you get the file open parsing through the text and either ignoring characters or replacing them with something else isn't too tough. It's been a long time since I've done it but I could MAYBE hunt up my code if you are really stumped by that. GK On 2/9/09, Mark A Matte wrote: > > Hello All, > > I'm not expecting an answer I'll like...but I'll try. > > I'm importing a large number of records from Informix to Access via odbc. There is a large text/memo field...that apparently has some characters access does not like. I do not get an error message...access just says "an error has occurred...do you want to tell MS"...then closes. > > I'm trying to think of a way to detect/program around this. So far...its a very manual process. I loop through 2 days worth at a time...that way I don't have to start over from the beginning everytime. When it crashes...I pull in just the PKs for that date range...loop through them...imort the text field 1 record at a time...store in temp table...when it crashes...I compare the PKs to the temp table...the next PK not in the temp is the offender. > > This is very manual and time consuming...any ideas/suggestions? > > Thanks, > > Mark A. Matte > > > _________________________________________________________________ > Windows LiveT: E-mail. Chat. Share. Get more ways to connect. > http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_HM_AE_Faster_0 > 22009 > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- Gary Kjos garykjos at gmail.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From andy at minstersystems.co.uk Mon Feb 9 10:33:14 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Mon, 9 Feb 2009 16:33:14 +0000 Subject: [AccessD] Calling an AfterUpdate evnte proc. of a combo Message-ID: <200902091633.n19GXJJL010690@databaseadvisors.com> Hi Philippe Yes you can, and you just run it as a sub, so yourcbo_AfterUpdate should work. Where are you calling it from though? If from outside the form the cbo's on then you'll need to change the Private Sub yourcbo_AfterUpdate statement to Public Sub. -- Andy Lacey --------- Original Message -------- From: "Access Developers discussion and problem solving" To: "AccessD at databaseadvisors.com" Subject: [AccessD] Calling an AfterUpdate evnte proc. of a combo Date: 09/02/09 16:11 Hi all, I have a small proc. to which I pass a reference to a combo box. This proc has to synchronize the combo on the first item and run the AfterUpdate event proc. Private Sub syncCboTest(ByRef cbo As ComboBox) ' syn de la cbo de s???ction du chapitre cbo.SetFocus cbo = cbo.ItemData(0) ' Call cboSelChap_AfterUpdate Call cbo_AfterUpdate '<= this won't work! End Sub The question: How would you call the AfterUpdate event of a combobox that is represented by it's reference?? something like: cbo_AfterUpdate! If it is even possible! Best regards, Philippe Pons -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ________________________________________________ Message sent using UebiMiau 2.7.2 From joeo at appoli.com Mon Feb 9 10:34:17 2009 From: joeo at appoli.com (Joe O'Connell) Date: Mon, 9 Feb 2009 11:34:17 -0500 Subject: [AccessD] Citrix and Access In-Reply-To: <12881D1FC2474C5FBD58CFE07E61C22A@danwaters> References: <9CBB659C05524E078CB7C9BC75F88867@danwaters><29f585dd0902061244g657ce9afsa77493509fceb269@mail.gmail.com><068ABE2F0E6941529A382BF5E1E9B11D@XPS> <12881D1FC2474C5FBD58CFE07E61C22A@danwaters> Message-ID: <1CF20DB644BE124083B31638E5D5C02313E985@exch2.Onappsad.net> Dan, I have worked with Access on a Citrix server for more than 10 years with no major problems. I am in complete agreement with everything that Jim and Mark have given you, they have provided excellent advice and suggestions. For some applications another feature of Citrix that is useful is the ability to publish the application. Users logon anonymously and your Access application can start automatically. When the Access application closes, the user is automatically logged off. Since the users cannot get to a desktop, they are locked out of everything except the one application which you make available to them. This also maximizes use of the Citrix licenses since you can control how long users are logged on, and log them off automatically if they are not actively using your application. Joe O'Connell -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: Monday, February 09, 2009 10:06 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Citrix and Access Hi Jim, Hi Mark, This is just the type of thing I was thinking I'd need to get resolved. I am working with my customer's IT guy who seems quite comfortable with Citrix, so that's good. I'll specifically ask him about mapping a unique path on the server to a drive letter for their terminal services profile. I agree with avoiding the sharing of references. My system now uses an AutoUpdater.mdb file that I wrote to ensure that each user automatically pulls the latest files from the server each time they open the application, so all references do go to files on the C drive. The FE.mdb, Library.mdb, TempTables.mdb, sound files, and one 3rd party dll file (VBA Global Error Handler from EverythingAccess.com), are checked for Last Modified Date and pulled to the client before the app is opened. There are continuous requests for modifications, so the FE.mdb and Library.mdb are updated frequently. This autoupdating is at least one scenario that we'll need to work through carefully. Another is that my app pulls a recordset from the mdw file on the server to see how many people are logged in. If they have 8 licenses, user 9 just gets a message that the app is 'full', and they are then logged out. Right now the max number of concurrent users is only 8, this may double or so in a couple of years. Thanks! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman Sent: Sunday, February 08, 2009 4:34 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Citrix and Access Dan, Probably the biggest issue when running under Citrix is that the "C" drive is the same for everyone. That's a bit of a problem where you want everyone to have their own FE (which you would typically would install on their C drive). But there is an easy workaround for that; just map a unique path on the server to a drive letter for their terminal services profile (something like X) and place the FE there. A little more problematic however is references. If you open up an FE, you'll find all your references still pointing to C. For the most part, if your just using the typical references, this is not an issue. Those references can be shared with no problem. But if your using a library reference (a reference to a MDA) or some type of 3rd party component, then you might have issues with multiple users all sharing that reference. This is in fact the reason that some of the Wizards in Office are not available under TS; they simply won't work when shared. Unfortunately there is not easy work around for this. You have few choices. You can map the same drive letter for everyone (remote user or not) and write your app against that or you can distribute two different versions of the app (one that runs against C and one that runs against your mapped drive letter). I've been lucky enough to only run up against this once, but when you do it's a pain in the butt. Other then that, Access works wonderfully under TS/Citrix with JET or SQL Server. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: Friday, February 06, 2009 4:05 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Citrix and Access Hi Arthur, Anything you can think of that might have been restrictive or need to know? I'll be switching out many users from running on their PC to using a Citrix window. Glad to hear about the response time! Was your FE linked to SQL 2000 or were you using an OLEDB Provider? Thanks, Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Arthur Fuller Sent: Friday, February 06, 2009 2:45 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Citrix and Access I have lots of experience running an Access app on Terminal Services, and even with 70 users it was faster for me to develop on the remote TS box than on my local machine at home. I was completely floored. Assuming a fast pipe on both ends, I think you will be very pleased with the response time. (To be fair, our Access back end was SQL 2000.) hth, Arthur -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Feb 9 10:41:04 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 09 Feb 2009 11:41:04 -0500 Subject: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue display text? In-Reply-To: References: <499039E4.9060903@colbyconsulting.com> <383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> Message-ID: <49905CA0.6070901@colbyconsulting.com> Max >Sinking and Uping (or whatever the reverse of sinking is) or WithEvents is not something I have ever got into and have never ever had a need for this Then you have never used Code Behind Forms because that is EXACTLY what you are doing when you write code behind a form, SINKING events and writing code to do something. The only difference is that Access hides the fact that you are doing it. And it was not my intent to single you out or insult you with the "so 1990s", but I thought I saw someone else mention tags. I just wanted to make it clear that classes provide a place to do stuff that is infinitely superior to tags. I used tags... before I discovered classes. I have never used one since. Well... that is not quite true, I use the subform control tag to this day (and I feel SOOOOOooo guilty ;-), but that is the ONLY tag I use. If you are a programmer, then you know that encapsulation is a good thing. If you use a function, you are encapsulating code, and often variables. If you use a module, you are encapsulating code (functions) and variables. Encapsulation simply means keeping together the things that belong together. Classes are just "the next level" of encapsulation. Classes allow you to encapsulate a "system", and load the variables as well as the code to manipulate those variables... AND the event sinks as well if you need them. Events simply allow you to move the sinking of events out of the form's class into a class for the object that you are sinking events for, whether that is a form or controls. It is "encapsulating" the variables, the code, and the events that cause the code to run, into a class specifically for that object. If you think about it, the class behind a form "belongs" to the form, it does not "belong" to the controls on the form. And yet the "average" programmer sinks all of the events for all the controls on his form in the form's class. If you have a complex SYSTEM for controls that means that you can have pages and pages of code in the form, that really doesn't belong to the form itself, it belongs to the controls on the form. Encapsulation moves that code out of the form class into a class for the control or controls that make up the "system" I understand "have never ever had a need for this", since I designed systems for about 6 or 7 years before my good friend Shamil finally managed to teach me events. The things I designed worked, but they were less than optimum, though of course I did not know that. In many cases classes and events make programs just incredibly easier. Let me give you one example of a "system" and how and why you would move such a system out into a class. This is just to get you thinking, but is a real life example. I wrote a call center for a Disability Insurance Claims processor. They had a set of rules, handed down to them by the insurance industry. A claim can be several of the following: Workman's compensation Auto Related Illness Accident/Injury Maternity But they cannot be ALL of those things! Remember that these catagories are designed by the industry and used everywhere. I do not get a choice to dispute the logic. If Workman's comp then Maternity = false If Maternity then Workman's comp = false If Auto Related then Accident = true If Accident then Illness = False If Illness then Accident = false If Maternity then Illness = true If Maternity then Accident = false As you can see, this is not just "if a check box is clicked then..." there are a WHOLE bunch of rules that interact. I have to set and clear other check boxes based on just a single check box being checked. A class allows me to ENCAPSULATE the code that does this, and it allows me to SINK the events from 5 different check boxes and automatically execute the correct code. Could I embed this directly in the form? Sure! Does it belong there? Of course not, it belongs in a class that deals with the SYSTEM of setting and clearing these checkboxes. If I need these check boxes in another form (and I have them in three different forms) then I just dim a variable for this class and load it, passing in the 5 check boxes. Voila, I am done. If I need to correct a bug I do so in the ONE class, not in X different forms. If you have never had to handle a SYSTEM of rules like this then you have never done very complex programming. I bet you have, but you just never knew how to use a class to encapsulate the variables, code and event sinks all in one place. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Ha! It was in the 1990's I wrote it . I dont use tags now, but they > might be useful for some purposes - I can think of one but won't go into > that now. > > The aim was to demonstrate easily, the use of control looping with the > various control types and not the storage of variable values. > > I also use classes but I am not a devotee like you John. Sinking and Uping > (or whatever the reverse of sinking is) or WithEvents is not something I > have ever got into and have never ever had a need for this - I say that > because I have not come across anything that I cannot do without using > it/them. > > I would be interest to follow a thread though. > > Thanks > Max From markamatte at hotmail.com Mon Feb 9 10:42:25 2009 From: markamatte at hotmail.com (Mark A Matte) Date: Mon, 9 Feb 2009 16:42:25 +0000 Subject: [AccessD] Import Bad data? In-Reply-To: References: <499039E4.9060903@colbyconsulting.com> <383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> Message-ID: I can't even pull this record in with a select statement...as a query or in vba as a recordset? I'm trying to avoid having the dba export to a text file...as they are not fans of this process to begin with. Thanks, Mark ---------------------------------------- > Date: Mon, 9 Feb 2009 10:24:11 -0600 > From: garykjos at gmail.com > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Import Bad data? > > You could Export to a Text file and then read through that with vba > text handling code to parse through and scrub the offending characters > and then save the corrected file and import that. I've done that when > someone provided me with several huge exported data files that didn't > have the correct combination of CR & LF at the end of records and so > it fouled up a direct import for me. > > Longtime AccessD contributor Seth Galitzer has some code samples on > his website for "FILE I/O in VB" that you can download and have a look > at. > > http://seth.galitzer.net/node/11 > > Once you get the file open parsing through the text and either > ignoring characters or replacing them with something else isn't too > tough. It's been a long time since I've done it but I could MAYBE hunt > up my code if you are really stumped by that. > > GK > > On 2/9/09, Mark A Matte wrote: >> >> Hello All, >> >> I'm not expecting an answer I'll like...but I'll try. >> >> I'm importing a large number of records from Informix to Access via odbc. There is a large text/memo field...that apparently has some characters access does not like. I do not get an error message...access just says "an error has occurred...do you want to tell MS"...then closes. >> >> I'm trying to think of a way to detect/program around this. So far...its a very manual process. I loop through 2 days worth at a time...that way I don't have to start over from the beginning everytime. When it crashes...I pull in just the PKs for that date range...loop through them...imort the text field 1 record at a time...store in temp table...when it crashes...I compare the PKs to the temp table...the next PK not in the temp is the offender. >> >> This is very manual and time consuming...any ideas/suggestions? >> >> Thanks, >> >> Mark A. Matte >> >> >> _________________________________________________________________ >> Windows Live?: E-mail. Chat. Share. Get more ways to connect. >> http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_HM_AE_Faster_022009 >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > > -- > Gary Kjos > garykjos at gmail.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com _________________________________________________________________ Windows Live?: E-mail. Chat. Share. Get more ways to connect. http://windowslive.com/explore?ocid=TXT_TAGLM_WL_t2_allup_explore_022009 From markamatte at hotmail.com Mon Feb 9 10:44:08 2009 From: markamatte at hotmail.com (Mark A Matte) Date: Mon, 9 Feb 2009 16:44:08 +0000 Subject: [AccessD] Import Bad data? In-Reply-To: References: <499039E4.9060903@colbyconsulting.com><383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> Message-ID: I actually have a tool(this group help me build) that will let me edit/replace/search on a large text file...I've worked with 4 and 5 gig text files...just can't get to text yet? Thanks, Mark ---------------------------------------- > From: rockysmolin at bchacc.com > To: accessd at databaseadvisors.com > Date: Mon, 9 Feb 2009 08:30:34 -0800 > Subject: Re: [AccessD] Import Bad data? > > And once it's been exported to text and he's looping through the text file > looking for the bad guys, couldn't he just add a bit of DAO code, sort the > text fields into their proper fields in the record and write the record out > to the table? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gary Kjos > Sent: Monday, February 09, 2009 8:24 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Import Bad data? > > You could Export to a Text file and then read through that with vba text > handling code to parse through and scrub the offending characters and then > save the corrected file and import that. I've done that when someone > provided me with several huge exported data files that didn't have the > correct combination of CR & LF at the end of records and so it fouled up a > direct import for me. > > Longtime AccessD contributor Seth Galitzer has some code samples on his > website for "FILE I/O in VB" that you can download and have a look at. > > http://seth.galitzer.net/node/11 > > Once you get the file open parsing through the text and either ignoring > characters or replacing them with something else isn't too tough. It's been > a long time since I've done it but I could MAYBE hunt up my code if you are > really stumped by that. > > GK > > On 2/9/09, Mark A Matte wrote: >> >> Hello All, >> >> I'm not expecting an answer I'll like...but I'll try. >> >> I'm importing a large number of records from Informix to Access via odbc. > There is a large text/memo field...that apparently has some characters > access does not like. I do not get an error message...access just says "an > error has occurred...do you want to tell MS"...then closes. >> >> I'm trying to think of a way to detect/program around this. So far...its > a very manual process. I loop through 2 days worth at a time...that way I > don't have to start over from the beginning everytime. When it crashes...I > pull in just the PKs for that date range...loop through them...imort the > text field 1 record at a time...store in temp table...when it crashes...I > compare the PKs to the temp table...the next PK not in the temp is the > offender. >> >> This is very manual and time consuming...any ideas/suggestions? >> >> Thanks, >> >> Mark A. Matte >> >> >> _________________________________________________________________ >> Windows LiveT: E-mail. Chat. Share. Get more ways to connect. >> http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_HM_AE_Faster_0 >> 22009 >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > > -- > Gary Kjos > garykjos at gmail.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com _________________________________________________________________ Windows Live?: E-mail. Chat. Share. Get more ways to connect. http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_HM_AE_Faster_022009 From jwcolby at colbyconsulting.com Mon Feb 9 10:49:30 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 09 Feb 2009 11:49:30 -0500 Subject: [AccessD] Calling an AfterUpdate evnte proc. of a combo In-Reply-To: <57144ced0902090805i3a633553u25ab3dd959b09182@mail.gmail.com> References: <57144ced0902090805i3a633553u25ab3dd959b09182@mail.gmail.com> Message-ID: <49905E9A.2060502@colbyconsulting.com> This is possible, IF the AfterUpdate event exists within the scope of the calling subroutine and is actually called cbo_AfterUpdate. If you have a cboPerson and cboState and cboCity then the event to call would be cboPerson_AfterUpdate, cboState_AfterUpdate, cboCity_AfterUpdate. You see what I am saying? My guess is the cbo is not CALLED cbo back where it exists. You are trying to use a function to make something generic but the NAME of the objects AfterUpdate is not generic, and very likely the code cannot be seen from this function, the afterupdate sub is in the form's class and this function is where? In a module? Not the same scope. So no, you probably cannot do what you are trying to do. Now... if you had a class for your combo... ;-) John W. Colby www.ColbyConsulting.com philippe pons wrote: > Hi all, > > I have a small proc. to which I pass a reference to a combo box. > This proc has to synchronize the combo on the first item > and run the AfterUpdate event proc. > > Private Sub syncCboTest(ByRef cbo As ComboBox) > ' syn de la cbo de s?lection du chapitre > cbo.SetFocus > cbo = cbo.ItemData(0) > ' Call cboSelChap_AfterUpdate > Call cbo_AfterUpdate '<== this won't work! > End Sub > > The question: > > How would you call the AfterUpdate event of a combobox that is represented > by it's reference?? > something like: cbo_AfterUpdate! > > If it is even possible! > > Best regards, > > Philippe Pons From jwcolby at colbyconsulting.com Mon Feb 9 10:57:02 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 09 Feb 2009 11:57:02 -0500 Subject: [AccessD] Questions about Classes and Events. In-Reply-To: <383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> References: <383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> Message-ID: <4990605E.80702@colbyconsulting.com> Karen, Did you understand the Classes and Events email? If not ask questions now before we move on. John W. Colby www.ColbyConsulting.com krosenstiel at comcast.net wrote: > I'd be interested in this. Doubt I'll understand it, but I'd be interested. > > Karen Rosenstiel > Seattle WA USA From dwaters at usinternet.com Mon Feb 9 10:58:22 2009 From: dwaters at usinternet.com (Dan Waters) Date: Mon, 9 Feb 2009 10:58:22 -0600 Subject: [AccessD] Citrix and Access In-Reply-To: <1CF20DB644BE124083B31638E5D5C02313E985@exch2.Onappsad.net> References: <9CBB659C05524E078CB7C9BC75F88867@danwaters><29f585dd0902061244g657ce9afsa77493509fceb269@mail.gmail.com><068ABE2F0E6941529A382BF5E1E9B11D@XPS><12881D1FC2474C5FBD58CFE07E61C22A@danwaters> <1CF20DB644BE124083B31638E5D5C02313E985@exch2.Onappsad.net> Message-ID: <57CE5A2F66BB4454B06EF876DB0A1652@danwaters> Thanks Joe - good stuff to learn! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Joe O'Connell Sent: Monday, February 09, 2009 10:34 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Citrix and Access Dan, I have worked with Access on a Citrix server for more than 10 years with no major problems. I am in complete agreement with everything that Jim and Mark have given you, they have provided excellent advice and suggestions. For some applications another feature of Citrix that is useful is the ability to publish the application. Users logon anonymously and your Access application can start automatically. When the Access application closes, the user is automatically logged off. Since the users cannot get to a desktop, they are locked out of everything except the one application which you make available to them. This also maximizes use of the Citrix licenses since you can control how long users are logged on, and log them off automatically if they are not actively using your application. Joe O'Connell -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: Monday, February 09, 2009 10:06 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Citrix and Access Hi Jim, Hi Mark, This is just the type of thing I was thinking I'd need to get resolved. I am working with my customer's IT guy who seems quite comfortable with Citrix, so that's good. I'll specifically ask him about mapping a unique path on the server to a drive letter for their terminal services profile. I agree with avoiding the sharing of references. My system now uses an AutoUpdater.mdb file that I wrote to ensure that each user automatically pulls the latest files from the server each time they open the application, so all references do go to files on the C drive. The FE.mdb, Library.mdb, TempTables.mdb, sound files, and one 3rd party dll file (VBA Global Error Handler from EverythingAccess.com), are checked for Last Modified Date and pulled to the client before the app is opened. There are continuous requests for modifications, so the FE.mdb and Library.mdb are updated frequently. This autoupdating is at least one scenario that we'll need to work through carefully. Another is that my app pulls a recordset from the mdw file on the server to see how many people are logged in. If they have 8 licenses, user 9 just gets a message that the app is 'full', and they are then logged out. Right now the max number of concurrent users is only 8, this may double or so in a couple of years. Thanks! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman Sent: Sunday, February 08, 2009 4:34 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Citrix and Access Dan, Probably the biggest issue when running under Citrix is that the "C" drive is the same for everyone. That's a bit of a problem where you want everyone to have their own FE (which you would typically would install on their C drive). But there is an easy workaround for that; just map a unique path on the server to a drive letter for their terminal services profile (something like X) and place the FE there. A little more problematic however is references. If you open up an FE, you'll find all your references still pointing to C. For the most part, if your just using the typical references, this is not an issue. Those references can be shared with no problem. But if your using a library reference (a reference to a MDA) or some type of 3rd party component, then you might have issues with multiple users all sharing that reference. This is in fact the reason that some of the Wizards in Office are not available under TS; they simply won't work when shared. Unfortunately there is not easy work around for this. You have few choices. You can map the same drive letter for everyone (remote user or not) and write your app against that or you can distribute two different versions of the app (one that runs against C and one that runs against your mapped drive letter). I've been lucky enough to only run up against this once, but when you do it's a pain in the butt. Other then that, Access works wonderfully under TS/Citrix with JET or SQL Server. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: Friday, February 06, 2009 4:05 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Citrix and Access Hi Arthur, Anything you can think of that might have been restrictive or need to know? I'll be switching out many users from running on their PC to using a Citrix window. Glad to hear about the response time! Was your FE linked to SQL 2000 or were you using an OLEDB Provider? Thanks, Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Arthur Fuller Sent: Friday, February 06, 2009 2:45 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Citrix and Access I have lots of experience running an Access app on Terminal Services, and even with 70 users it was faster for me to develop on the remote TS box than on my local machine at home. I was completely floored. Assuming a fast pipe on both ends, I think you will be very pleased with the response time. (To be fair, our Access back end was SQL 2000.) hth, Arthur -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From erbachs at gmail.com Mon Feb 9 11:04:30 2009 From: erbachs at gmail.com (Steve Erbach) Date: Mon, 9 Feb 2009 11:04:30 -0600 Subject: [AccessD] Classes and Events In-Reply-To: <49904E1C.4080701@colbyconsulting.com> References: <49904E1C.4080701@colbyconsulting.com> Message-ID: <39cb22f30902090904g2c7441c0k5404846586083344@mail.gmail.com> John, Keep broadcasting. I'm waiting for the key phrase that will set off the attack. Regards, Steve Erbach Neenah, WI http://www.NeenahPolitics.com http://www.TheTownCrank.com On Mon, Feb 9, 2009 at 9:39 AM, jwcolby wrote: > A QUICK introduction to classes and events. > > > If someone is listening to that radio signal, then the person listening can do whatever they want > with the signal they are receiving. They can do nothing at all, they can use it as a signal to > launch an attack on an enemy, they can enjoy music, they can? The important thing to understand > here is that what the listener does is up to the listener. From garykjos at gmail.com Mon Feb 9 11:06:25 2009 From: garykjos at gmail.com (Gary Kjos) Date: Mon, 9 Feb 2009 11:06:25 -0600 Subject: [AccessD] Import Bad data? In-Reply-To: References: <499039E4.9060903@colbyconsulting.com> <383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> Message-ID: Sure. GK On 2/9/09, Rocky Smolin at Beach Access Software wrote: > And once it's been exported to text and he's looping through the text file > looking for the bad guys, couldn't he just add a bit of DAO code, sort the > text fields into their proper fields in the record and write the record out > to the table? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gary Kjos > Sent: Monday, February 09, 2009 8:24 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Import Bad data? > > You could Export to a Text file and then read through that with vba text > handling code to parse through and scrub the offending characters and then > save the corrected file and import that. I've done that when someone > provided me with several huge exported data files that didn't have the > correct combination of CR & LF at the end of records and so it fouled up a > direct import for me. > > Longtime AccessD contributor Seth Galitzer has some code samples on his > website for "FILE I/O in VB" that you can download and have a look at. > > http://seth.galitzer.net/node/11 > > Once you get the file open parsing through the text and either ignoring > characters or replacing them with something else isn't too tough. It's been > a long time since I've done it but I could MAYBE hunt up my code if you are > really stumped by that. > > GK > > On 2/9/09, Mark A Matte wrote: > > > > Hello All, > > > > I'm not expecting an answer I'll like...but I'll try. > > > > I'm importing a large number of records from Informix to Access via odbc. > There is a large text/memo field...that apparently has some characters > access does not like. I do not get an error message...access just says "an > error has occurred...do you want to tell MS"...then closes. > > > > I'm trying to think of a way to detect/program around this. So far...its > a very manual process. I loop through 2 days worth at a time...that way I > don't have to start over from the beginning everytime. When it crashes...I > pull in just the PKs for that date range...loop through them...imort the > text field 1 record at a time...store in temp table...when it crashes...I > compare the PKs to the temp table...the next PK not in the temp is the > offender. > > > > This is very manual and time consuming...any ideas/suggestions? > > > > Thanks, > > > > Mark A. Matte > > > > > > _________________________________________________________________ > > Windows LiveT: E-mail. Chat. Share. Get more ways to connect. > > http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_HM_AE_Faster_0 > > 22009 > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > > -- > Gary Kjos > garykjos at gmail.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- Gary Kjos garykjos at gmail.com From jwcolby at colbyconsulting.com Mon Feb 9 11:14:43 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 09 Feb 2009 12:14:43 -0500 Subject: [AccessD] Classes and Events In-Reply-To: <39cb22f30902090904g2c7441c0k5404846586083344@mail.gmail.com> References: <49904E1C.4080701@colbyconsulting.com> <39cb22f30902090904g2c7441c0k5404846586083344@mail.gmail.com> Message-ID: <49906483.1040506@colbyconsulting.com> ROTFL. Attack. KILL. Invade. John W. Colby www.ColbyConsulting.com Steve Erbach wrote: > John, > > Keep broadcasting. I'm waiting for the key phrase that will set off the attack. > > Regards, > > Steve Erbach > Neenah, WI > http://www.NeenahPolitics.com > http://www.TheTownCrank.com > > > On Mon, Feb 9, 2009 at 9:39 AM, jwcolby wrote: >> A QUICK introduction to classes and events. >> >> >> If someone is listening to that radio signal, then the person listening can do whatever they want >> with the signal they are receiving. They can do nothing at all, they can use it as a signal to >> launch an attack on an enemy, they can enjoy music, they can? The important thing to understand >> here is that what the listener does is up to the listener. > From max.wanadoo at gmail.com Mon Feb 9 11:27:13 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 9 Feb 2009 17:27:13 -0000 Subject: [AccessD] Classes and WithEvengts was RE: Tags are so 1990s - was Re: Combobox.oldvalue displaytext? In-Reply-To: References: <499039E4.9060903@colbyconsulting.com><383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> Message-ID: <49906776.1781420a.194e.0523@mx.google.com> Oh, no upping then. Must be thinking of swans (Bet you don't get that connection Charlotte - to do with the British Monarch owning all swans). The problem I have with classes is that (going on the ones I have created, say for example an Outlook Class to expose Outlook Properties) is that to use it I have to declare a container for the pointer, then I have to set the container to point to the class and then I can use the class properties and try to remember what done what. So, I always found it easier to just go directly to the properties themselves. Now then John - whoa back a bit - I can almost see you coming down the connection cable when you read that. I do appreciate that classes have other uses, especially when a UDF is created and also for security/enforcement of business rules. One rule changed in one place. And so on... So, I will follow your class with interest. Thanks Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: 09 February 2009 16:02 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue displaytext? It's Sinking and RAISING, not uping. LOL Using classes isn't the only way to do things, it's just the efficient way. Instead of writing the same code over and over, you embed that in a class and use the public interface of the class to handle its operations. If you bind a, oh, let's say ... A combobox ... To a class then the class can specify the combobox's behavior, appearance, and the way it handles itself. Want an oldvalue for a combobox? Put some code and a public property into the class and voila, you have a combobox with an oldvalue. More importantly, you have that whenever you bind a combobox to that class. I know a lot of people who never say the point in classes, but it's a bit like religion. Once you convert, you want to persuade everyone else how wonderful your approach is! Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Monday, February 09, 2009 7:50 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue displaytext? Ha! It was in the 1990's I wrote it . I dont use tags now, but they might be useful for some purposes - I can think of one but won't go into that now. The aim was to demonstrate easily, the use of control looping with the various control types and not the storage of variable values. I also use classes but I am not a devotee like you John. Sinking and Uping (or whatever the reverse of sinking is) or WithEvents is not something I have ever got into and have never ever had a need for this - I say that because I have not come across anything that I cannot do without using it/them. I would be interest to follow a thread though. Thanks Max On Mon, Feb 9, 2009 at 3:39 PM, wrote: > I'd be interested in this. Doubt I'll understand it, but I'd be interested. > > Karen Rosenstiel > Seattle WA USA > > ----- Original Message ----- > From: "jwcolby" > To: "Access Developers discussion and problem solving" < > accessd at databaseadvisors.com> > Sent: Monday, February 9, 2009 6:12:52 AM GMT -08:00 US/Canada Pacific > Subject: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue > display text? > > Guys, > > Using the tag value to store stuff is generally not a good solution, > and never was (well, perhaps before classes). The disadvantages of the > tag speak for itself, ONE location to store how much stuff? Packing, > unpacking variables that you want to store there, overwriting data > from the previous programmer, and the list goes on. > > Look, MS very kindly gave us Classes and WithEvents. > > Classes and Withevents is EASY. Classes and Withevents prepares you > for programming in other platforms such as dotnet. Classes and > withevents provide you with extremely powerful methods of handling > repetitive programing. Classes provide you with encapsulation of code > and data. If you are a programmer, all of these things should matter > to you. > > If you can program Code Behind Form, if you can do things like the > example code that Max so kindly provided, then classes are a tiny step > that will increase your skill and ability an order of magnitude. > AccessD has many developers using Classes and Withevents. > Perhaps they can speak up > with their opinions on the subject. > > If you want to learn how to do what Stuart was asking about using a > single pair of classes (a form class and a combo class), speak up and > I will start a thread on the subject. I will teach you how to do this > stuff, step by step, and in just a few emails you too can be using > classes and withevents. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: > > Hi Stuart, > > Here are two routines which you may care to look at. The first is to > store > > the value into the .TAG property of the control. > > The second just parses the controls. > > Might be of interes, might not, don't know, submitted as is - chuck > > it if > no > > good. > > Regards > > Max > > > > Public Function pubFunUpdateTagData(frm As Form) On Error Resume > > Next ' this puts the data into the tag before any changes are made > > > > Dim ctl As Control, z As Variant > > For Each ctl In frm.Controls > > With ctl > > Select Case .ControlType > > Case acTextBox ' this can hold numbers, strings and dates etc Select > > Case varType(frm(ctl.Name)) Case 2, 3, 4, 5, 6 ' > > int,long,single,double,currency frm(ctl.Name).Tag = > > Val(frm(ctl.Name)) Case 7 frm(ctl.Name).Tag = CStr(frm(ctl.Name)) > > Case 8 frm(ctl.Name).Tag = frm(ctl.Name) End Select Case acCheckBox > > frm(ctl.Name).Tag = frm(ctl.Name) Case acComboBox Select Case > > frm(ctl.Name).RowSourceType Case "Table/Query" > > frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(1)) 'MsgBox > > frm(ctl.Name).Tag Case "Value List" > > frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(0, 0)) Case Else End > > Select Case acListBox frm(ctl.Name).Tag = > > Nz(frm(ctl.Name).Column(1), "") Case acOptionGroup frm(ctl.Name).Tag > > = Nz(frm(ctl.Name), 0) End Select End With Next ctl > > > > exithere: > > Exit Function > > errhandler: > > MsgBox "Error in MCM_PeopleChanges.pubFunUpdateTagData: " & > > Err.Number & vbCrLf & Err.Description Resume exithere End Function > > > > Private Function RebuildPersonsFlagsFormsControls(frm As Form, > > lngPID As > > Long) > > On Error Resume Next > > Dim ctl As Control, strDesc As String Dim varSource As Variant, > > varvalue As Variant, varType As Variant, > varName > > As Variant > > Dim varVisible As Variant > > strDesc = frm.Name > > With frm > > For Each ctl In frm.Controls > > varName = ctl.Name > > varType = ctl.ControlType > > Select Case varType > > Case acTextBox > > varSource = ctl.ControlSource > > varvalue = ctl.OldValue > > varVisible = ctl.Visible > > If Not IsNull(varSource) And Len(varSource) > 0 And _ Not > > IsNull(varvalue) And Len(varvalue) > 0 And varVisible = True Then > > Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, lngPID, > > conFlagsForms) End If Case acComboBox varSource = ctl.ControlSource > > varvalue = ctl.OldValue If Not IsNull(varSource) And Len(varSource) > > > 0 Then Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, > > lngPID, conFlagsForms) End If Case acCheckBox varSource = > > ctl.ControlSource varvalue = ctl.OldValue If varvalue = True Then > > Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, lngPID, > > conFlagsForms) End If Case acOptionGroup varSource = > > ctl.ControlSource varvalue = ctl.OldValue Call mcmSetFlag(strDesc & > > ":" & varSource & ":" & varvalue, lngPID, > > conFlagsForms) > > Case acSubform > > Case acLabel > > Case acBoundObjectFrame > > Case acPage > > Case acPageBreak > > Case acCommandButton > > Case acCustomControl > > Case acRectangle > > Case acImage > > Case acTabCtl > > Case acLine > > Case acToggleButton > > Case acObjectFrame > > Case acListBox > > Case acOptionButton > > Case Else > > MsgBox "NewType found in RebuildPersonsFalgsSystemControls:", > > varType, varName > > End Select > > Next ctl > > End With > > End Function > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From phpons at gmail.com Mon Feb 9 11:30:11 2009 From: phpons at gmail.com (philippe pons) Date: Mon, 9 Feb 2009 18:30:11 +0100 Subject: [AccessD] Calling an AfterUpdate evnte proc. of a combo In-Reply-To: <200902091633.n19GXJJL010690@databaseadvisors.com> References: <200902091633.n19GXJJL010690@databaseadvisors.com> Message-ID: <57144ced0902090930k65b59be0ofafd0cf9c344b497@mail.gmail.com> Hi Andy, should the name of the cbo be cboSelChap, I can call cboSelChap_AfterUpdate. but if I pass this cbo to a procedure, like call myProc(me.cboSelChap) I think I can't do the following: Sub myProc(ByRef cbo as ComboBox) Call cbo_AfterUpdate This won't work, and I try to find the correct syntax, if any. I need to have only one pric that handles several combo. Thansk's for your answer, Phiippe 2009/2/9 Andy Lacey > Hi Philippe > > Yes you can, and you just run it as a sub, so yourcbo_AfterUpdate should > work. Where are you calling it from though? If from outside the form the > cbo's on then you'll need to change the > > Private Sub yourcbo_AfterUpdate > > statement to Public Sub. > > -- > Andy Lacey > > > > > --------- Original Message -------- > From: "Access Developers discussion and problem solving" > > To: "AccessD at databaseadvisors.com" > Subject: [AccessD] Calling an AfterUpdate evnte proc. of a combo > Date: 09/02/09 16:11 > > > Hi all, > > I have a small proc. to which I pass a reference to a combo box. > This proc has to synchronize the combo on the first item > and run the AfterUpdate event proc. > > Private Sub syncCboTest(ByRef cbo As ComboBox) > ' syn de la cbo de s???ction du chapitre > cbo.SetFocus > cbo = cbo.ItemData(0) > ' Call cboSelChap_AfterUpdate > Call cbo_AfterUpdate '<= this won't work! > End Sub > > The question: > > How would you call the AfterUpdate event of a combobox that is represented > by it's reference?? > something like: cbo_AfterUpdate! > > If it is even possible! > > Best regards, > > Philippe Pons > -- AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > ________________________________________________ > Message sent using UebiMiau 2.7.2 > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From phpons at gmail.com Mon Feb 9 11:35:38 2009 From: phpons at gmail.com (philippe pons) Date: Mon, 9 Feb 2009 18:35:38 +0100 Subject: [AccessD] Calling an AfterUpdate evnte proc. of a combo In-Reply-To: <49905E9A.2060502@colbyconsulting.com> References: <57144ced0902090805i3a633553u25ab3dd959b09182@mail.gmail.com> <49905E9A.2060502@colbyconsulting.com> Message-ID: <57144ced0902090935v7a78b442o56ab0e48a2af1d7b@mail.gmail.com> Hi John, yes, I know you're a class and withevents guru! I'll try this way, but if I remenber well your explanations of the withevents statement, I recall it allows a class to SINK the event of a control, but can it CALL an event of tis control, not sure! Thank's for your help, Philippe 2009/2/9 jwcolby > This is possible, IF the AfterUpdate event exists within the scope of the > calling subroutine and is > actually called cbo_AfterUpdate. > > If you have a cboPerson and cboState and cboCity then the event to call > would be > cboPerson_AfterUpdate, cboState_AfterUpdate, cboCity_AfterUpdate. You see > what I am saying? > > My guess is the cbo is not CALLED cbo back where it exists. You are trying > to use a function to > make something generic but the NAME of the objects AfterUpdate is not > generic, and very likely the > code cannot be seen from this function, the afterupdate sub is in the > form's class and this function > is where? In a module? Not the same scope. > > So no, you probably cannot do what you are trying to do. > > Now... if you had a class for your combo... > > ;-) > > John W. Colby > www.ColbyConsulting.com > > > philippe pons wrote: > > Hi all, > > > > I have a small proc. to which I pass a reference to a combo box. > > This proc has to synchronize the combo on the first item > > and run the AfterUpdate event proc. > > > > Private Sub syncCboTest(ByRef cbo As ComboBox) > > ' syn de la cbo de s?lection du chapitre > > cbo.SetFocus > > cbo = cbo.ItemData(0) > > ' Call cboSelChap_AfterUpdate > > Call cbo_AfterUpdate '<== this won't work! > > End Sub > > > > The question: > > > > How would you call the AfterUpdate event of a combobox that is > represented > > by it's reference?? > > something like: cbo_AfterUpdate! > > > > If it is even possible! > > > > Best regards, > > > > Philippe Pons > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From max.wanadoo at gmail.com Mon Feb 9 11:36:12 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 9 Feb 2009 17:36:12 -0000 Subject: [AccessD] Classes and Events In-Reply-To: <49906483.1040506@colbyconsulting.com> References: <49904E1C.4080701@colbyconsulting.com> <39cb22f30902090904g2c7441c0k5404846586083344@mail.gmail.com> <49906483.1040506@colbyconsulting.com> Message-ID: <49906990.1e8d420a.646a.199f@mx.google.com> No! It was Tora! Tora! Tora! We are talking radio signals John/Steve. Keep smiling baby.... Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 09 February 2009 17:15 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Classes and Events ROTFL. Attack. KILL. Invade. John W. Colby www.ColbyConsulting.com Steve Erbach wrote: > John, > > Keep broadcasting. I'm waiting for the key phrase that will set off the attack. > > Regards, > > Steve Erbach > Neenah, WI > http://www.NeenahPolitics.com > http://www.TheTownCrank.com > > > On Mon, Feb 9, 2009 at 9:39 AM, jwcolby wrote: >> A QUICK introduction to classes and events. >> >> >> If someone is listening to that radio signal, then the person listening can do whatever they want >> with the signal they are receiving. They can do nothing at all, they can use it as a signal to >> launch an attack on an enemy, they can enjoy music, they can. The important thing to understand >> here is that what the listener does is up to the listener. > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From phpons at gmail.com Mon Feb 9 11:39:59 2009 From: phpons at gmail.com (philippe pons) Date: Mon, 9 Feb 2009 18:39:59 +0100 Subject: [AccessD] Classes and Events In-Reply-To: <49904E1C.4080701@colbyconsulting.com> References: <49904E1C.4080701@colbyconsulting.com> Message-ID: <57144ced0902090939na8aba3fkf2ca6b3aaeb8bc25@mail.gmail.com> Hop, this is interesting: A regular module cannot RAISE an event, but a class can So following a previous post, a question arises: How would you raise a combo box event with a class? TIA, Philippe 2009/2/9 jwcolby > A QUICK introduction to classes and events. > > > CLASSES: > > * The Code Behind Forms module in a form is a class module. > * A class is a module, but a module is not a class. > * A class has properties and behaviors that a module does not. > * A class is actually instantiated when a set statement is executed. In > other words, an INSTANCE of > the class is loaded into memory, and stays in memory until it is > specifically unloaded. > * Like a module, a class can contain data (variables) and code. However > the variables in a module > can only contain ONE value at a time. > * A class can be loaded into memory as many times as you want (limited only > by the size of your > memory) and EACH INSTANCE of a class can contain its own value in its > variables. > * All instances of a class SHARE code, but do not share variables. In > other words, the code is only > loaded into memory one time, but the variables are loaded once per class > instance loaded. > * The class (and every object, including forms and controls) unloads from > memory when the last > variable holding a pointer to the object is set to nothing. > *A class has two built-in Events that fire, one as a class instance loads > (Class_Initialize), and > the other as the class instance unloads (Class_Terminate). > > Think of a class as a place to store information and code about some thing > in the real world. > Perhaps you have a clsPerson. That class has a bunch of variables called > FirstName, LastName, SSN, > ColorHair, ColorEyes, Gender, Birthdate etc. Load an INSTANCE of that > class and fill in the data > about John Colby, load another instance and fill in the data about Mary > Colby etc. You might then > have a piece of code that takes the birthdate and calculates the current > age from that. The data > and the code are all stored together in the class. > > EVENTS: > > Events can be thought of kind of like a radio transmission. The radio > station transmits a signal, > but they have no idea whether anyone is listening. In the case of events, > this is called "Raising > (or sourcing) and event". > > If someone is listening to that radio signal, then the person listening can > do whatever they want > with the signal they are receiving. They can do nothing at all, they can > use it as a signal to > launch an attack on an enemy, they can enjoy music, they can? The > important thing to understand > here is that what the listener does is up to the listener. > > In the case of events, receiving the signal is called "sinking" the event. > > Notice that the person broadcasting the signal doesn't know or care whether > anyone is listening, nor > do they know or care what the listener (if they even exist) does with the > signal. > > When you open a form, the form is constantly raising events. It raises > OnOpen, OnClose, OnCurrent, > BeforeUpdate, AfterUpdate, MouseMove etc etc. The events are raised > whether or not anyone is > listening. The form neither knows nor cares whether anyone is listening to > (sinking) those events, > it is simply raising these events so that if anyone is listening to > (sinking) the events, they can > do whatever they want when the events fire. > > When you place a control on the form, the control raises events under > certain circumstances. When > the control gets the focus it raises an OnFocus event, when it loses the > focus it raises a LostFocus > event, it raises a BeforeUpdate, AfterUpdate etc. Of course these events > depend on what the user > does, in other words they don't happen unless the user manipulates the > control in the correct > manner, enters data for example. But notice that while the control always > raises the event, it > neither knows nor cares whether anyone is listening, nor does it know or > care what the listener does > with the event if anyone is listening (sinking the event). > > This is a critical thing to understand, that the object raising an event > does not know nor care > about the listener, nor what the listener does. The reason that this is > critical is because it > allows you to design an interface between objects which is totally > asynchronous or disconnected. > Have you ever built a subform and referenced a control on the parent form? > Have you ever tried to > open that subform by itself? It complains that it cannot find the control > on the parent. The > subform is has a "connected" interface to the parent, without the parent it > cannot do its thing > correctly. The event "Raise/Sink" interface eliminates that dependence. > The object raising the > event does not depend on having a receiver of the event in order to > function correctly. The > receiver of events does not depend on the broadcaster existing in order to > function, although of > course it cannot do whatever it would do with the events if they are not > being broadcast. But each > side can be loaded and code can execute without the other side being > loaded, without compile errors etc. > > The last thing to know is that regular modules cannot sink events, but a > class can. A regular > module cannot RAISE an event, but a class can. Classes are modules, but > modules are not classes. > > This is just a teaser to see if anyone is interested. > > If yes continue lecture else end if. > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From cfoust at infostatsystems.com Mon Feb 9 11:39:11 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Mon, 9 Feb 2009 09:39:11 -0800 Subject: [AccessD] Calling an AfterUpdate evnte proc. of a combo In-Reply-To: <57144ced0902090930k65b59be0ofafd0cf9c344b497@mail.gmail.com> References: <200902091633.n19GXJJL010690@databaseadvisors.com> <57144ced0902090930k65b59be0ofafd0cf9c344b497@mail.gmail.com> Message-ID: You'll need to have a public AfterUpdate event in the combobox before you could call it like that. A class is a better and more secure way of doing it. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of philippe pons Sent: Monday, February 09, 2009 9:30 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Calling an AfterUpdate evnte proc. of a combo Hi Andy, should the name of the cbo be cboSelChap, I can call cboSelChap_AfterUpdate. but if I pass this cbo to a procedure, like call myProc(me.cboSelChap) I think I can't do the following: Sub myProc(ByRef cbo as ComboBox) Call cbo_AfterUpdate This won't work, and I try to find the correct syntax, if any. I need to have only one pric that handles several combo. Thansk's for your answer, Phiippe 2009/2/9 Andy Lacey > Hi Philippe > > Yes you can, and you just run it as a sub, so yourcbo_AfterUpdate > should work. Where are you calling it from though? If from outside the > form the cbo's on then you'll need to change the > > Private Sub yourcbo_AfterUpdate > > statement to Public Sub. > > -- > Andy Lacey > > > > > --------- Original Message -------- > From: "Access Developers discussion and problem solving" > > To: "AccessD at databaseadvisors.com" > Subject: [AccessD] Calling an AfterUpdate evnte proc. of a combo > Date: 09/02/09 16:11 > > > Hi all, > > I have a small proc. to which I pass a reference to a combo box. > This proc has to synchronize the combo on the first item and run the > AfterUpdate event proc. > > Private Sub syncCboTest(ByRef cbo As ComboBox) ' syn de la cbo de > s???ction du chapitre cbo.SetFocus cbo = cbo.ItemData(0) ' Call > cboSelChap_AfterUpdate Call cbo_AfterUpdate '<= this won't work! > End Sub > > The question: > > How would you call the AfterUpdate event of a combobox that is > represented by it's reference?? > something like: cbo_AfterUpdate! > > If it is even possible! > > Best regards, > > Philippe Pons > -- AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > ________________________________________________ > Message sent using UebiMiau 2.7.2 > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Mon Feb 9 11:41:41 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Mon, 9 Feb 2009 09:41:41 -0800 Subject: [AccessD] Classes and WithEvengts was RE: Tags are so 1990s - wasRe: Combobox.oldvalue displaytext? In-Reply-To: <49906776.1781420a.194e.0523@mx.google.com> References: <499039E4.9060903@colbyconsulting.com><383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> <49906776.1781420a.194e.0523@mx.google.com> Message-ID: I'd say you haven't given classes a fair try, Max. Outlook is NOT a good object to practice on! LOL Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Monday, February 09, 2009 9:27 AM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Classes and WithEvengts was RE: Tags are so 1990s - wasRe: Combobox.oldvalue displaytext? Oh, no upping then. Must be thinking of swans (Bet you don't get that connection Charlotte - to do with the British Monarch owning all swans). The problem I have with classes is that (going on the ones I have created, say for example an Outlook Class to expose Outlook Properties) is that to use it I have to declare a container for the pointer, then I have to set the container to point to the class and then I can use the class properties and try to remember what done what. So, I always found it easier to just go directly to the properties themselves. Now then John - whoa back a bit - I can almost see you coming down the connection cable when you read that. I do appreciate that classes have other uses, especially when a UDF is created and also for security/enforcement of business rules. One rule changed in one place. And so on... So, I will follow your class with interest. Thanks Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: 09 February 2009 16:02 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue displaytext? It's Sinking and RAISING, not uping. LOL Using classes isn't the only way to do things, it's just the efficient way. Instead of writing the same code over and over, you embed that in a class and use the public interface of the class to handle its operations. If you bind a, oh, let's say ... A combobox ... To a class then the class can specify the combobox's behavior, appearance, and the way it handles itself. Want an oldvalue for a combobox? Put some code and a public property into the class and voila, you have a combobox with an oldvalue. More importantly, you have that whenever you bind a combobox to that class. I know a lot of people who never say the point in classes, but it's a bit like religion. Once you convert, you want to persuade everyone else how wonderful your approach is! Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Monday, February 09, 2009 7:50 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue displaytext? Ha! It was in the 1990's I wrote it . I dont use tags now, but they might be useful for some purposes - I can think of one but won't go into that now. The aim was to demonstrate easily, the use of control looping with the various control types and not the storage of variable values. I also use classes but I am not a devotee like you John. Sinking and Uping (or whatever the reverse of sinking is) or WithEvents is not something I have ever got into and have never ever had a need for this - I say that because I have not come across anything that I cannot do without using it/them. I would be interest to follow a thread though. Thanks Max On Mon, Feb 9, 2009 at 3:39 PM, wrote: > I'd be interested in this. Doubt I'll understand it, but I'd be interested. > > Karen Rosenstiel > Seattle WA USA > > ----- Original Message ----- > From: "jwcolby" > To: "Access Developers discussion and problem solving" < > accessd at databaseadvisors.com> > Sent: Monday, February 9, 2009 6:12:52 AM GMT -08:00 US/Canada Pacific > Subject: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue > display text? > > Guys, > > Using the tag value to store stuff is generally not a good solution, > and never was (well, perhaps before classes). The disadvantages of the > tag speak for itself, ONE location to store how much stuff? Packing, > unpacking variables that you want to store there, overwriting data > from the previous programmer, and the list goes on. > > Look, MS very kindly gave us Classes and WithEvents. > > Classes and Withevents is EASY. Classes and Withevents prepares you > for programming in other platforms such as dotnet. Classes and > withevents provide you with extremely powerful methods of handling > repetitive programing. Classes provide you with encapsulation of code > and data. If you are a programmer, all of these things should matter > to you. > > If you can program Code Behind Form, if you can do things like the > example code that Max so kindly provided, then classes are a tiny step > that will increase your skill and ability an order of magnitude. > AccessD has many developers using Classes and Withevents. > Perhaps they can speak up > with their opinions on the subject. > > If you want to learn how to do what Stuart was asking about using a > single pair of classes (a form class and a combo class), speak up and > I will start a thread on the subject. I will teach you how to do this > stuff, step by step, and in just a few emails you too can be using > classes and withevents. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: > > Hi Stuart, > > Here are two routines which you may care to look at. The first is to > store > > the value into the .TAG property of the control. > > The second just parses the controls. > > Might be of interes, might not, don't know, submitted as is - chuck > > it if > no > > good. > > Regards > > Max > > > > Public Function pubFunUpdateTagData(frm As Form) On Error Resume > > Next ' this puts the data into the tag before any changes are made > > > > Dim ctl As Control, z As Variant > > For Each ctl In frm.Controls > > With ctl > > Select Case .ControlType > > Case acTextBox ' this can hold numbers, strings and dates etc Select > > Case varType(frm(ctl.Name)) Case 2, 3, 4, 5, 6 ' > > int,long,single,double,currency frm(ctl.Name).Tag = > > Val(frm(ctl.Name)) Case 7 frm(ctl.Name).Tag = CStr(frm(ctl.Name)) > > Case 8 frm(ctl.Name).Tag = frm(ctl.Name) End Select Case acCheckBox > > frm(ctl.Name).Tag = frm(ctl.Name) Case acComboBox Select Case > > frm(ctl.Name).RowSourceType Case "Table/Query" > > frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(1)) 'MsgBox > > frm(ctl.Name).Tag Case "Value List" > > frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(0, 0)) Case Else End > > Select Case acListBox frm(ctl.Name).Tag = > > Nz(frm(ctl.Name).Column(1), "") Case acOptionGroup frm(ctl.Name).Tag > > = Nz(frm(ctl.Name), 0) End Select End With Next ctl > > > > exithere: > > Exit Function > > errhandler: > > MsgBox "Error in MCM_PeopleChanges.pubFunUpdateTagData: " & > > Err.Number & vbCrLf & Err.Description Resume exithere End Function > > > > Private Function RebuildPersonsFlagsFormsControls(frm As Form, > > lngPID As > > Long) > > On Error Resume Next > > Dim ctl As Control, strDesc As String Dim varSource As Variant, > > varvalue As Variant, varType As Variant, > varName > > As Variant > > Dim varVisible As Variant > > strDesc = frm.Name > > With frm > > For Each ctl In frm.Controls > > varName = ctl.Name > > varType = ctl.ControlType > > Select Case varType > > Case acTextBox > > varSource = ctl.ControlSource > > varvalue = ctl.OldValue > > varVisible = ctl.Visible > > If Not IsNull(varSource) And Len(varSource) > 0 And _ Not > > IsNull(varvalue) And Len(varvalue) > 0 And varVisible = True Then > > Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, lngPID, > > conFlagsForms) End If Case acComboBox varSource = ctl.ControlSource > > varvalue = ctl.OldValue If Not IsNull(varSource) And Len(varSource) > > > 0 Then Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, > > lngPID, conFlagsForms) End If Case acCheckBox varSource = > > ctl.ControlSource varvalue = ctl.OldValue If varvalue = True Then > > Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, lngPID, > > conFlagsForms) End If Case acOptionGroup varSource = > > ctl.ControlSource varvalue = ctl.OldValue Call mcmSetFlag(strDesc & > > ":" & varSource & ":" & varvalue, lngPID, > > conFlagsForms) > > Case acSubform > > Case acLabel > > Case acBoundObjectFrame > > Case acPage > > Case acPageBreak > > Case acCommandButton > > Case acCustomControl > > Case acRectangle > > Case acImage > > Case acTabCtl > > Case acLine > > Case acToggleButton > > Case acObjectFrame > > Case acListBox > > Case acOptionButton > > Case Else > > MsgBox "NewType found in RebuildPersonsFalgsSystemControls:", > > varType, varName > > End Select > > Next ctl > > End With > > End Function > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Feb 9 11:46:40 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 09 Feb 2009 12:46:40 -0500 Subject: [AccessD] Calling an AfterUpdate evnte proc. of a combo In-Reply-To: <57144ced0902090935v7a78b442o56ab0e48a2af1d7b@mail.gmail.com> References: <57144ced0902090805i3a633553u25ab3dd959b09182@mail.gmail.com> <49905E9A.2060502@colbyconsulting.com> <57144ced0902090935v7a78b442o56ab0e48a2af1d7b@mail.gmail.com> Message-ID: <49906C00.7060608@colbyconsulting.com> Philippe, If you go the class route, then you place the AfterUpdate event of the combo in the class itself. Because the AfterUpdate event for THIS SPECIFIC Combo exists in the class itself, then the name never changes(!) and it is within the scope of the class. Where are you calling SyncCboTest() from? I will be doing a combo class in the lecture that I am doing so stay tuned. John W. Colby www.ColbyConsulting.com philippe pons wrote: > Hi John, > > yes, I know you're a class and withevents guru! > I'll try this way, but if I remenber well your explanations of the > withevents statement, I recall > it allows a class to SINK the event of a control, but can it CALL an event > of tis control, not sure! > > Thank's for your help, > > Philippe > > 2009/2/9 jwcolby > >> This is possible, IF the AfterUpdate event exists within the scope of the >> calling subroutine and is >> actually called cbo_AfterUpdate. >> >> If you have a cboPerson and cboState and cboCity then the event to call >> would be >> cboPerson_AfterUpdate, cboState_AfterUpdate, cboCity_AfterUpdate. You see >> what I am saying? >> >> My guess is the cbo is not CALLED cbo back where it exists. You are trying >> to use a function to >> make something generic but the NAME of the objects AfterUpdate is not >> generic, and very likely the >> code cannot be seen from this function, the afterupdate sub is in the >> form's class and this function >> is where? In a module? Not the same scope. >> >> So no, you probably cannot do what you are trying to do. >> >> Now... if you had a class for your combo... >> >> ;-) >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> philippe pons wrote: >>> Hi all, >>> >>> I have a small proc. to which I pass a reference to a combo box. >>> This proc has to synchronize the combo on the first item >>> and run the AfterUpdate event proc. >>> >>> Private Sub syncCboTest(ByRef cbo As ComboBox) >>> ' syn de la cbo de s?lection du chapitre >>> cbo.SetFocus >>> cbo = cbo.ItemData(0) >>> ' Call cboSelChap_AfterUpdate >>> Call cbo_AfterUpdate '<== this won't work! >>> End Sub >>> >>> The question: >>> >>> How would you call the AfterUpdate event of a combobox that is >> represented >>> by it's reference?? >>> something like: cbo_AfterUpdate! >>> >>> If it is even possible! >>> >>> Best regards, >>> >>> Philippe Pons >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> From jwcolby at colbyconsulting.com Mon Feb 9 11:50:32 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 09 Feb 2009 12:50:32 -0500 Subject: [AccessD] Classes and Events In-Reply-To: <57144ced0902090939na8aba3fkf2ca6b3aaeb8bc25@mail.gmail.com> References: <49904E1C.4080701@colbyconsulting.com> <57144ced0902090939na8aba3fkf2ca6b3aaeb8bc25@mail.gmail.com> Message-ID: <49906CE8.2000906@colbyconsulting.com> Philippe, Understand that only a combo can RAISE a combo event, only a command button can RAISE a command button event. To RAISE an event means that an OBJECT "broadcasts" an event that it knows how to RAISE. You can SINK the combo event in a class, IF you have dimensioned a combo variable "WithEvents", and IF you have captured a pointer to said combo in the class. Stay tuned, you shall see how it is done. John W. Colby www.ColbyConsulting.com philippe pons wrote: > Hop, this is interesting: > A regular module cannot RAISE an event, but a class can > > So following a previous post, a question arises: > How would you raise a combo box event with a class? > > TIA, > > Philippe > > 2009/2/9 jwcolby > >> A QUICK introduction to classes and events. >> >> >> CLASSES: >> >> * The Code Behind Forms module in a form is a class module. >> * A class is a module, but a module is not a class. >> * A class has properties and behaviors that a module does not. >> * A class is actually instantiated when a set statement is executed. In >> other words, an INSTANCE of >> the class is loaded into memory, and stays in memory until it is >> specifically unloaded. >> * Like a module, a class can contain data (variables) and code. However >> the variables in a module >> can only contain ONE value at a time. >> * A class can be loaded into memory as many times as you want (limited only >> by the size of your >> memory) and EACH INSTANCE of a class can contain its own value in its >> variables. >> * All instances of a class SHARE code, but do not share variables. In >> other words, the code is only >> loaded into memory one time, but the variables are loaded once per class >> instance loaded. >> * The class (and every object, including forms and controls) unloads from >> memory when the last >> variable holding a pointer to the object is set to nothing. >> *A class has two built-in Events that fire, one as a class instance loads >> (Class_Initialize), and >> the other as the class instance unloads (Class_Terminate). >> >> Think of a class as a place to store information and code about some thing >> in the real world. >> Perhaps you have a clsPerson. That class has a bunch of variables called >> FirstName, LastName, SSN, >> ColorHair, ColorEyes, Gender, Birthdate etc. Load an INSTANCE of that >> class and fill in the data >> about John Colby, load another instance and fill in the data about Mary >> Colby etc. You might then >> have a piece of code that takes the birthdate and calculates the current >> age from that. The data >> and the code are all stored together in the class. >> >> EVENTS: >> >> Events can be thought of kind of like a radio transmission. The radio >> station transmits a signal, >> but they have no idea whether anyone is listening. In the case of events, >> this is called "Raising >> (or sourcing) and event". >> >> If someone is listening to that radio signal, then the person listening can >> do whatever they want >> with the signal they are receiving. They can do nothing at all, they can >> use it as a signal to >> launch an attack on an enemy, they can enjoy music, they can? The >> important thing to understand >> here is that what the listener does is up to the listener. >> >> In the case of events, receiving the signal is called "sinking" the event. >> >> Notice that the person broadcasting the signal doesn't know or care whether >> anyone is listening, nor >> do they know or care what the listener (if they even exist) does with the >> signal. >> >> When you open a form, the form is constantly raising events. It raises >> OnOpen, OnClose, OnCurrent, >> BeforeUpdate, AfterUpdate, MouseMove etc etc. The events are raised >> whether or not anyone is >> listening. The form neither knows nor cares whether anyone is listening to >> (sinking) those events, >> it is simply raising these events so that if anyone is listening to >> (sinking) the events, they can >> do whatever they want when the events fire. >> >> When you place a control on the form, the control raises events under >> certain circumstances. When >> the control gets the focus it raises an OnFocus event, when it loses the >> focus it raises a LostFocus >> event, it raises a BeforeUpdate, AfterUpdate etc. Of course these events >> depend on what the user >> does, in other words they don't happen unless the user manipulates the >> control in the correct >> manner, enters data for example. But notice that while the control always >> raises the event, it >> neither knows nor cares whether anyone is listening, nor does it know or >> care what the listener does >> with the event if anyone is listening (sinking the event). >> >> This is a critical thing to understand, that the object raising an event >> does not know nor care >> about the listener, nor what the listener does. The reason that this is >> critical is because it >> allows you to design an interface between objects which is totally >> asynchronous or disconnected. >> Have you ever built a subform and referenced a control on the parent form? >> Have you ever tried to >> open that subform by itself? It complains that it cannot find the control >> on the parent. The >> subform is has a "connected" interface to the parent, without the parent it >> cannot do its thing >> correctly. The event "Raise/Sink" interface eliminates that dependence. >> The object raising the >> event does not depend on having a receiver of the event in order to >> function correctly. The >> receiver of events does not depend on the broadcaster existing in order to >> function, although of >> course it cannot do whatever it would do with the events if they are not >> being broadcast. But each >> side can be loaded and code can execute without the other side being >> loaded, without compile errors etc. >> >> The last thing to know is that regular modules cannot sink events, but a >> class can. A regular >> module cannot RAISE an event, but a class can. Classes are modules, but >> modules are not classes. >> >> This is just a teaser to see if anyone is interested. >> >> If yes continue lecture else end if. >> >> -- >> John W. Colby >> www.ColbyConsulting.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> From max.wanadoo at gmail.com Mon Feb 9 11:52:01 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 9 Feb 2009 17:52:01 -0000 Subject: [AccessD] Classes and WithEvengts was RE: Tags are so 1990s - wasRe: Combobox.oldvalue displaytext? In-Reply-To: References: <499039E4.9060903@colbyconsulting.com><383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> <49906776.1781420a.194e.0523@mx.google.com> Message-ID: <49906d46.1781420a.194e.1548@mx.google.com> Agreed Charlotte, but there are others. But, I will follow this thread with great interest. Thanks Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: 09 February 2009 17:42 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Classes and WithEvengts was RE: Tags are so 1990s - wasRe: Combobox.oldvalue displaytext? I'd say you haven't given classes a fair try, Max. Outlook is NOT a good object to practice on! LOL Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Monday, February 09, 2009 9:27 AM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Classes and WithEvengts was RE: Tags are so 1990s - wasRe: Combobox.oldvalue displaytext? Oh, no upping then. Must be thinking of swans (Bet you don't get that connection Charlotte - to do with the British Monarch owning all swans). The problem I have with classes is that (going on the ones I have created, say for example an Outlook Class to expose Outlook Properties) is that to use it I have to declare a container for the pointer, then I have to set the container to point to the class and then I can use the class properties and try to remember what done what. So, I always found it easier to just go directly to the properties themselves. Now then John - whoa back a bit - I can almost see you coming down the connection cable when you read that. I do appreciate that classes have other uses, especially when a UDF is created and also for security/enforcement of business rules. One rule changed in one place. And so on... So, I will follow your class with interest. Thanks Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: 09 February 2009 16:02 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue displaytext? It's Sinking and RAISING, not uping. LOL Using classes isn't the only way to do things, it's just the efficient way. Instead of writing the same code over and over, you embed that in a class and use the public interface of the class to handle its operations. If you bind a, oh, let's say ... A combobox ... To a class then the class can specify the combobox's behavior, appearance, and the way it handles itself. Want an oldvalue for a combobox? Put some code and a public property into the class and voila, you have a combobox with an oldvalue. More importantly, you have that whenever you bind a combobox to that class. I know a lot of people who never say the point in classes, but it's a bit like religion. Once you convert, you want to persuade everyone else how wonderful your approach is! Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Monday, February 09, 2009 7:50 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue displaytext? Ha! It was in the 1990's I wrote it . I dont use tags now, but they might be useful for some purposes - I can think of one but won't go into that now. The aim was to demonstrate easily, the use of control looping with the various control types and not the storage of variable values. I also use classes but I am not a devotee like you John. Sinking and Uping (or whatever the reverse of sinking is) or WithEvents is not something I have ever got into and have never ever had a need for this - I say that because I have not come across anything that I cannot do without using it/them. I would be interest to follow a thread though. Thanks Max On Mon, Feb 9, 2009 at 3:39 PM, wrote: > I'd be interested in this. Doubt I'll understand it, but I'd be interested. > > Karen Rosenstiel > Seattle WA USA > > ----- Original Message ----- > From: "jwcolby" > To: "Access Developers discussion and problem solving" < > accessd at databaseadvisors.com> > Sent: Monday, February 9, 2009 6:12:52 AM GMT -08:00 US/Canada Pacific > Subject: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue > display text? > > Guys, > > Using the tag value to store stuff is generally not a good solution, > and never was (well, perhaps before classes). The disadvantages of the > tag speak for itself, ONE location to store how much stuff? Packing, > unpacking variables that you want to store there, overwriting data > from the previous programmer, and the list goes on. > > Look, MS very kindly gave us Classes and WithEvents. > > Classes and Withevents is EASY. Classes and Withevents prepares you > for programming in other platforms such as dotnet. Classes and > withevents provide you with extremely powerful methods of handling > repetitive programing. Classes provide you with encapsulation of code > and data. If you are a programmer, all of these things should matter > to you. > > If you can program Code Behind Form, if you can do things like the > example code that Max so kindly provided, then classes are a tiny step > that will increase your skill and ability an order of magnitude. > AccessD has many developers using Classes and Withevents. > Perhaps they can speak up > with their opinions on the subject. > > If you want to learn how to do what Stuart was asking about using a > single pair of classes (a form class and a combo class), speak up and > I will start a thread on the subject. I will teach you how to do this > stuff, step by step, and in just a few emails you too can be using > classes and withevents. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: > > Hi Stuart, > > Here are two routines which you may care to look at. The first is to > store > > the value into the .TAG property of the control. > > The second just parses the controls. > > Might be of interes, might not, don't know, submitted as is - chuck > > it if > no > > good. > > Regards > > Max > > > > Public Function pubFunUpdateTagData(frm As Form) On Error Resume > > Next ' this puts the data into the tag before any changes are made > > > > Dim ctl As Control, z As Variant > > For Each ctl In frm.Controls > > With ctl > > Select Case .ControlType > > Case acTextBox ' this can hold numbers, strings and dates etc Select > > Case varType(frm(ctl.Name)) Case 2, 3, 4, 5, 6 ' > > int,long,single,double,currency frm(ctl.Name).Tag = > > Val(frm(ctl.Name)) Case 7 frm(ctl.Name).Tag = CStr(frm(ctl.Name)) > > Case 8 frm(ctl.Name).Tag = frm(ctl.Name) End Select Case acCheckBox > > frm(ctl.Name).Tag = frm(ctl.Name) Case acComboBox Select Case > > frm(ctl.Name).RowSourceType Case "Table/Query" > > frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(1)) 'MsgBox > > frm(ctl.Name).Tag Case "Value List" > > frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(0, 0)) Case Else End > > Select Case acListBox frm(ctl.Name).Tag = > > Nz(frm(ctl.Name).Column(1), "") Case acOptionGroup frm(ctl.Name).Tag > > = Nz(frm(ctl.Name), 0) End Select End With Next ctl > > > > exithere: > > Exit Function > > errhandler: > > MsgBox "Error in MCM_PeopleChanges.pubFunUpdateTagData: " & > > Err.Number & vbCrLf & Err.Description Resume exithere End Function > > > > Private Function RebuildPersonsFlagsFormsControls(frm As Form, > > lngPID As > > Long) > > On Error Resume Next > > Dim ctl As Control, strDesc As String Dim varSource As Variant, > > varvalue As Variant, varType As Variant, > varName > > As Variant > > Dim varVisible As Variant > > strDesc = frm.Name > > With frm > > For Each ctl In frm.Controls > > varName = ctl.Name > > varType = ctl.ControlType > > Select Case varType > > Case acTextBox > > varSource = ctl.ControlSource > > varvalue = ctl.OldValue > > varVisible = ctl.Visible > > If Not IsNull(varSource) And Len(varSource) > 0 And _ Not > > IsNull(varvalue) And Len(varvalue) > 0 And varVisible = True Then > > Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, lngPID, > > conFlagsForms) End If Case acComboBox varSource = ctl.ControlSource > > varvalue = ctl.OldValue If Not IsNull(varSource) And Len(varSource) > > > 0 Then Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, > > lngPID, conFlagsForms) End If Case acCheckBox varSource = > > ctl.ControlSource varvalue = ctl.OldValue If varvalue = True Then > > Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, lngPID, > > conFlagsForms) End If Case acOptionGroup varSource = > > ctl.ControlSource varvalue = ctl.OldValue Call mcmSetFlag(strDesc & > > ":" & varSource & ":" & varvalue, lngPID, > > conFlagsForms) > > Case acSubform > > Case acLabel > > Case acBoundObjectFrame > > Case acPage > > Case acPageBreak > > Case acCommandButton > > Case acCustomControl > > Case acRectangle > > Case acImage > > Case acTabCtl > > Case acLine > > Case acToggleButton > > Case acObjectFrame > > Case acListBox > > Case acOptionButton > > Case Else > > MsgBox "NewType found in RebuildPersonsFalgsSystemControls:", > > varType, varName > > End Select > > Next ctl > > End With > > End Function > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Feb 9 11:56:52 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 09 Feb 2009 12:56:52 -0500 Subject: [AccessD] Classes and WithEvengts was RE: Tags are so 1990s - was Re: Combobox.oldvalue displaytext? In-Reply-To: <49906776.1781420a.194e.0523@mx.google.com> References: <499039E4.9060903@colbyconsulting.com><383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> <49906776.1781420a.194e.0523@mx.google.com> Message-ID: <49906E64.5000409@colbyconsulting.com> >I can almost see you coming down the connection cable when you read that. ROTFL. Naw. I am long since past the point of caring if any given individual uses this stuff. I just feel obliged to educate where I can. It really is soooo easy, but it does take a mind shift to decide to use them and take the little bit of time to actually do the exercises and play with the pieces to understand how it all works. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Oh, no upping then. Must be thinking of swans (Bet you don't get that > connection Charlotte - to do with the British Monarch owning all swans). > > The problem I have with classes is that (going on the ones I have created, > say for example an Outlook Class to expose Outlook Properties) is that to > use it I have to declare a container for the pointer, then I have to set > the container to point to the class and then I can use the class properties > and try to remember what done what. So, I always found it easier to just go > directly to the properties themselves. > > Now then John - whoa back a bit - I can almost see you coming down the > connection cable when you read that. I do appreciate that classes have > other uses, especially when a UDF is created and also for > security/enforcement of business rules. One rule changed in one place. And > so on... > > So, I will follow your class with interest. > > Thanks > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust > Sent: 09 February 2009 16:02 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue > displaytext? > > It's Sinking and RAISING, not uping. LOL Using classes isn't the only > way to do things, it's just the efficient way. Instead of writing the > same code over and over, you embed that in a class and use the public > interface of the class to handle its operations. If you bind a, oh, > let's say ... A combobox ... To a class then the class can specify the > combobox's behavior, appearance, and the way it handles itself. Want an > oldvalue for a combobox? Put some code and a public property into the > class and voila, you have a combobox with an oldvalue. More > importantly, you have that whenever you bind a combobox to that class. > > I know a lot of people who never say the point in classes, but it's a > bit like religion. Once you convert, you want to persuade everyone else > how wonderful your approach is! > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Monday, February 09, 2009 7:50 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue > displaytext? > > Ha! It was in the 1990's I wrote it . I dont use tags now, but they > might be useful for some purposes - I can think of one but won't go into > that now. > > The aim was to demonstrate easily, the use of control looping with the > various control types and not the storage of variable values. > > I also use classes but I am not a devotee like you John. Sinking and > Uping (or whatever the reverse of sinking is) or WithEvents is not > something I have ever got into and have never ever had a need for this - > I say that because I have not come across anything that I cannot do > without using it/them. > > I would be interest to follow a thread though. > > Thanks > Max > > > On Mon, Feb 9, 2009 at 3:39 PM, wrote: > >> I'd be interested in this. Doubt I'll understand it, but I'd be > interested. >> Karen Rosenstiel >> Seattle WA USA >> >> ----- Original Message ----- >> From: "jwcolby" >> To: "Access Developers discussion and problem solving" < >> accessd at databaseadvisors.com> >> Sent: Monday, February 9, 2009 6:12:52 AM GMT -08:00 US/Canada Pacific >> Subject: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue >> display text? >> >> Guys, >> >> Using the tag value to store stuff is generally not a good solution, >> and never was (well, perhaps before classes). The disadvantages of the > >> tag speak for itself, ONE location to store how much stuff? Packing, >> unpacking variables that you want to store there, overwriting data >> from the previous programmer, and the list goes on. >> >> Look, MS very kindly gave us Classes and WithEvents. >> >> Classes and Withevents is EASY. Classes and Withevents prepares you >> for programming in other platforms such as dotnet. Classes and >> withevents provide you with extremely powerful methods of handling >> repetitive programing. Classes provide you with encapsulation of code >> and data. If you are a programmer, all of these things should matter >> to you. >> >> If you can program Code Behind Form, if you can do things like the >> example code that Max so kindly provided, then classes are a tiny step > >> that will increase your skill and ability an order of magnitude. >> AccessD has many developers using Classes and Withevents. >> Perhaps they can speak up >> with their opinions on the subject. >> >> If you want to learn how to do what Stuart was asking about using a >> single pair of classes (a form class and a combo class), speak up and >> I will start a thread on the subject. I will teach you how to do this >> stuff, step by step, and in just a few emails you too can be using >> classes and withevents. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> Hi Stuart, >>> Here are two routines which you may care to look at. The first is to >> store >>> the value into the .TAG property of the control. >>> The second just parses the controls. >>> Might be of interes, might not, don't know, submitted as is - chuck >>> it if >> no >>> good. >>> Regards >>> Max >>> >>> Public Function pubFunUpdateTagData(frm As Form) On Error Resume >>> Next ' this puts the data into the tag before any changes are made >>> >>> Dim ctl As Control, z As Variant >>> For Each ctl In frm.Controls >>> With ctl >>> Select Case .ControlType >>> Case acTextBox ' this can hold numbers, strings and dates etc Select > >>> Case varType(frm(ctl.Name)) Case 2, 3, 4, 5, 6 ' >>> int,long,single,double,currency frm(ctl.Name).Tag = >>> Val(frm(ctl.Name)) Case 7 frm(ctl.Name).Tag = CStr(frm(ctl.Name)) >>> Case 8 frm(ctl.Name).Tag = frm(ctl.Name) End Select Case acCheckBox >>> frm(ctl.Name).Tag = frm(ctl.Name) Case acComboBox Select Case >>> frm(ctl.Name).RowSourceType Case "Table/Query" >>> frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(1)) 'MsgBox >>> frm(ctl.Name).Tag Case "Value List" >>> frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(0, 0)) Case Else End >>> Select Case acListBox frm(ctl.Name).Tag = >>> Nz(frm(ctl.Name).Column(1), "") Case acOptionGroup frm(ctl.Name).Tag > >>> = Nz(frm(ctl.Name), 0) End Select End With Next ctl >>> >>> exithere: >>> Exit Function >>> errhandler: >>> MsgBox "Error in MCM_PeopleChanges.pubFunUpdateTagData: " & >>> Err.Number & vbCrLf & Err.Description Resume exithere End Function >>> >>> Private Function RebuildPersonsFlagsFormsControls(frm As Form, >>> lngPID As >>> Long) >>> On Error Resume Next >>> Dim ctl As Control, strDesc As String Dim varSource As Variant, >>> varvalue As Variant, varType As Variant, >> varName >>> As Variant >>> Dim varVisible As Variant >>> strDesc = frm.Name >>> With frm >>> For Each ctl In frm.Controls >>> varName = ctl.Name >>> varType = ctl.ControlType >>> Select Case varType >>> Case acTextBox >>> varSource = ctl.ControlSource >>> varvalue = ctl.OldValue >>> varVisible = ctl.Visible >>> If Not IsNull(varSource) And Len(varSource) > 0 And _ Not >>> IsNull(varvalue) And Len(varvalue) > 0 And varVisible = True Then >>> Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, lngPID, >>> conFlagsForms) End If Case acComboBox varSource = ctl.ControlSource >>> varvalue = ctl.OldValue If Not IsNull(varSource) And Len(varSource) >>>> 0 Then Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, > >>> lngPID, conFlagsForms) End If Case acCheckBox varSource = >>> ctl.ControlSource varvalue = ctl.OldValue If varvalue = True Then >>> Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, lngPID, >>> conFlagsForms) End If Case acOptionGroup varSource = >>> ctl.ControlSource varvalue = ctl.OldValue Call mcmSetFlag(strDesc & >>> ":" & varSource & ":" & varvalue, lngPID, >>> conFlagsForms) >>> Case acSubform >>> Case acLabel >>> Case acBoundObjectFrame >>> Case acPage >>> Case acPageBreak >>> Case acCommandButton >>> Case acCustomControl >>> Case acRectangle >>> Case acImage >>> Case acTabCtl >>> Case acLine >>> Case acToggleButton >>> Case acObjectFrame >>> Case acListBox >>> Case acOptionButton >>> Case Else >>> MsgBox "NewType found in RebuildPersonsFalgsSystemControls:", >>> varType, varName >>> End Select >>> Next ctl >>> End With >>> End Function >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Mon Feb 9 11:57:51 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 09 Feb 2009 12:57:51 -0500 Subject: [AccessD] Classes and WithEvengts was RE: Tags are so 1990s - wasRe: Combobox.oldvalue displaytext? In-Reply-To: References: <499039E4.9060903@colbyconsulting.com><383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> <49906776.1781420a.194e.0523@mx.google.com> Message-ID: <49906E9F.7080304@colbyconsulting.com> >Outlook is NOT a good object to practice on! That is true! John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > I'd say you haven't given classes a fair try, Max. Outlook is NOT a > good object to practice on! LOL > > Charlotte Foust > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Monday, February 09, 2009 9:27 AM > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Classes and WithEvengts was RE: Tags are so 1990s - > wasRe: Combobox.oldvalue displaytext? > > Oh, no upping then. Must be thinking of swans (Bet you don't get that > connection Charlotte - to do with the British Monarch owning all swans). > > The problem I have with classes is that (going on the ones I have > created, say for example an Outlook Class to expose Outlook Properties) > is that to use it I have to declare a container for the pointer, then > I have to set the container to point to the class and then I can use the > class properties and try to remember what done what. So, I always found > it easier to just go directly to the properties themselves. > > Now then John - whoa back a bit - I can almost see you coming down the > connection cable when you read that. I do appreciate that classes have > other uses, especially when a UDF is created and also for > security/enforcement of business rules. One rule changed in one place. > And so on... > > So, I will follow your class with interest. > > Thanks > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte > Foust > Sent: 09 February 2009 16:02 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue > displaytext? > > It's Sinking and RAISING, not uping. LOL Using classes isn't the only > way to do things, it's just the efficient way. Instead of writing the > same code over and over, you embed that in a class and use the public > interface of the class to handle its operations. If you bind a, oh, > let's say ... A combobox ... To a class then the class can specify the > combobox's behavior, appearance, and the way it handles itself. Want an > oldvalue for a combobox? Put some code and a public property into the > class and voila, you have a combobox with an oldvalue. More > importantly, you have that whenever you bind a combobox to that class. > > I know a lot of people who never say the point in classes, but it's a > bit like religion. Once you convert, you want to persuade everyone else > how wonderful your approach is! > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Monday, February 09, 2009 7:50 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue > displaytext? > > Ha! It was in the 1990's I wrote it . I dont use tags now, but they > might be useful for some purposes - I can think of one but won't go into > that now. > > The aim was to demonstrate easily, the use of control looping with the > various control types and not the storage of variable values. > > I also use classes but I am not a devotee like you John. Sinking and > Uping (or whatever the reverse of sinking is) or WithEvents is not > something I have ever got into and have never ever had a need for this - > I say that because I have not come across anything that I cannot do > without using it/them. > > I would be interest to follow a thread though. > > Thanks > Max > > > On Mon, Feb 9, 2009 at 3:39 PM, wrote: > >> I'd be interested in this. Doubt I'll understand it, but I'd be > interested. >> Karen Rosenstiel >> Seattle WA USA >> >> ----- Original Message ----- >> From: "jwcolby" >> To: "Access Developers discussion and problem solving" < >> accessd at databaseadvisors.com> >> Sent: Monday, February 9, 2009 6:12:52 AM GMT -08:00 US/Canada Pacific >> Subject: [AccessD] Tags are so 1990s - was Re: Combobox.oldvalue >> display text? >> >> Guys, >> >> Using the tag value to store stuff is generally not a good solution, >> and never was (well, perhaps before classes). The disadvantages of the > >> tag speak for itself, ONE location to store how much stuff? Packing, >> unpacking variables that you want to store there, overwriting data >> from the previous programmer, and the list goes on. >> >> Look, MS very kindly gave us Classes and WithEvents. >> >> Classes and Withevents is EASY. Classes and Withevents prepares you >> for programming in other platforms such as dotnet. Classes and >> withevents provide you with extremely powerful methods of handling >> repetitive programing. Classes provide you with encapsulation of code >> and data. If you are a programmer, all of these things should matter >> to you. >> >> If you can program Code Behind Form, if you can do things like the >> example code that Max so kindly provided, then classes are a tiny step > >> that will increase your skill and ability an order of magnitude. >> AccessD has many developers using Classes and Withevents. >> Perhaps they can speak up >> with their opinions on the subject. >> >> If you want to learn how to do what Stuart was asking about using a >> single pair of classes (a form class and a combo class), speak up and >> I will start a thread on the subject. I will teach you how to do this >> stuff, step by step, and in just a few emails you too can be using >> classes and withevents. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> Hi Stuart, >>> Here are two routines which you may care to look at. The first is to >> store >>> the value into the .TAG property of the control. >>> The second just parses the controls. >>> Might be of interes, might not, don't know, submitted as is - chuck >>> it if >> no >>> good. >>> Regards >>> Max >>> >>> Public Function pubFunUpdateTagData(frm As Form) On Error Resume >>> Next ' this puts the data into the tag before any changes are made >>> >>> Dim ctl As Control, z As Variant >>> For Each ctl In frm.Controls >>> With ctl >>> Select Case .ControlType >>> Case acTextBox ' this can hold numbers, strings and dates etc Select > >>> Case varType(frm(ctl.Name)) Case 2, 3, 4, 5, 6 ' >>> int,long,single,double,currency frm(ctl.Name).Tag = >>> Val(frm(ctl.Name)) Case 7 frm(ctl.Name).Tag = CStr(frm(ctl.Name)) >>> Case 8 frm(ctl.Name).Tag = frm(ctl.Name) End Select Case acCheckBox >>> frm(ctl.Name).Tag = frm(ctl.Name) Case acComboBox Select Case >>> frm(ctl.Name).RowSourceType Case "Table/Query" >>> frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(1)) 'MsgBox >>> frm(ctl.Name).Tag Case "Value List" >>> frm(ctl.Name).Tag = Nz(frm(ctl.Name).Column(0, 0)) Case Else End >>> Select Case acListBox frm(ctl.Name).Tag = >>> Nz(frm(ctl.Name).Column(1), "") Case acOptionGroup frm(ctl.Name).Tag > >>> = Nz(frm(ctl.Name), 0) End Select End With Next ctl >>> >>> exithere: >>> Exit Function >>> errhandler: >>> MsgBox "Error in MCM_PeopleChanges.pubFunUpdateTagData: " & >>> Err.Number & vbCrLf & Err.Description Resume exithere End Function >>> >>> Private Function RebuildPersonsFlagsFormsControls(frm As Form, >>> lngPID As >>> Long) >>> On Error Resume Next >>> Dim ctl As Control, strDesc As String Dim varSource As Variant, >>> varvalue As Variant, varType As Variant, >> varName >>> As Variant >>> Dim varVisible As Variant >>> strDesc = frm.Name >>> With frm >>> For Each ctl In frm.Controls >>> varName = ctl.Name >>> varType = ctl.ControlType >>> Select Case varType >>> Case acTextBox >>> varSource = ctl.ControlSource >>> varvalue = ctl.OldValue >>> varVisible = ctl.Visible >>> If Not IsNull(varSource) And Len(varSource) > 0 And _ Not >>> IsNull(varvalue) And Len(varvalue) > 0 And varVisible = True Then >>> Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, lngPID, >>> conFlagsForms) End If Case acComboBox varSource = ctl.ControlSource >>> varvalue = ctl.OldValue If Not IsNull(varSource) And Len(varSource) >>>> 0 Then Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, > >>> lngPID, conFlagsForms) End If Case acCheckBox varSource = >>> ctl.ControlSource varvalue = ctl.OldValue If varvalue = True Then >>> Call mcmSetFlag(strDesc & ":" & varSource & ":" & varvalue, lngPID, >>> conFlagsForms) End If Case acOptionGroup varSource = >>> ctl.ControlSource varvalue = ctl.OldValue Call mcmSetFlag(strDesc & >>> ":" & varSource & ":" & varvalue, lngPID, >>> conFlagsForms) >>> Case acSubform >>> Case acLabel >>> Case acBoundObjectFrame >>> Case acPage >>> Case acPageBreak >>> Case acCommandButton >>> Case acCustomControl >>> Case acRectangle >>> Case acImage >>> Case acTabCtl >>> Case acLine >>> Case acToggleButton >>> Case acObjectFrame >>> Case acListBox >>> Case acOptionButton >>> Case Else >>> MsgBox "NewType found in RebuildPersonsFalgsSystemControls:", >>> varType, varName >>> End Select >>> Next ctl >>> End With >>> End Function >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Mon Feb 9 12:06:16 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 09 Feb 2009 13:06:16 -0500 Subject: [AccessD] CREATE CLASSES AND EVENTS DEMO DATABASE Message-ID: <49907098.2050406@colbyconsulting.com> * Create a blank database * Create a new form. Drag and drop one of each of the controls onto the form. Save the form. * On the menu click insert / Class module. * If you haven?t already done so, turn on ?require variable declaration?. Inside the editor, click Tools / Options / Editor (tab) and check the ?require variables declaration? box. * Immediately save the module, and name it clsFrm. * Type the following into the module (or cut and paste): Private WithEvents mfrm As Form Private Const cstrEvProc As String = "[Event Procedure]" The first line declares a private variable called mfrm and tells VBA that this class will SINK EVENTS for the form inside of this class. The second line declares a private constant cstrEvProc and places the text "[Event Procedure]" in the constant. * Next type the following into the module: Function mInit(lfrm As Form) Set mfrm = lfrm mfrm.BeforeUpdate = cstrEvProc End Function This creates a method of the class called mInit and passes in a form variable called lfrm. The set statements then saves the lfrm variable passed in into the mfrm variable that we created above. The next statement places the string "[Event Procedure]" into the BeforeUpdate property of the form mfrm. This requires an explanation. It turns out that if you have the actual text string "[Event Procedure]" (without the quotes) in any event property of any form or control, then that event will fire in the class. You can prove that to yourself by deleting this text in some property of some form or control in an existing project, cause that event to fire, and notice that the code no longer runs in your code behind form. Put that text string back and notice that the event code now runs in your code behind form. Pretty easy so far yes? To reiterate, we have declared a variable and a constant that are PRIVATE to the class, meaning that they can only be accessed from inside of the class. We created a method that we can use to pass in a reference or pointer to some form, we have saved that pointer to some form passed into this class instance to a variable in the top of our class, and we have placed the text "[Event Procedure]" into the BeforeUpdate event property of mfrm. At this point we have a form, with one of each control on the form. We also have a class which can be instantiated, and passed in a pointer to some form. The class can save the pointer to the form passed in and can activate the form to raise one specific event (BeforeUpdate). Do this much before we continue. This should take you just a few minutes to complete. -- John W. Colby www.ColbyConsulting.com From phpons at gmail.com Mon Feb 9 12:39:04 2009 From: phpons at gmail.com (philippe pons) Date: Mon, 9 Feb 2009 19:39:04 +0100 Subject: [AccessD] Calling an AfterUpdate evnte proc. of a combo In-Reply-To: <49906C00.7060608@colbyconsulting.com> References: <57144ced0902090805i3a633553u25ab3dd959b09182@mail.gmail.com> <49905E9A.2060502@colbyconsulting.com> <57144ced0902090935v7a78b442o56ab0e48a2af1d7b@mail.gmail.com> <49906C00.7060608@colbyconsulting.com> Message-ID: <57144ced0902091039q734067asf243a3ab724c1187@mail.gmail.com> the proc. is within the form where the combo resides. So I'm calling SyncCboTest from the form itself. Thank's for your help. NB: yes, I stay tuned!!!! 2009/2/9 jwcolby > Philippe, > > If you go the class route, then you place the AfterUpdate event of the > combo in the class itself. > Because the AfterUpdate event for THIS SPECIFIC Combo exists in the class > itself, then the name > never changes(!) and it is within the scope of the class. > > Where are you calling SyncCboTest() from? > > I will be doing a combo class in the lecture that I am doing so stay tuned. > > John W. Colby > www.ColbyConsulting.com > > > philippe pons wrote: > > Hi John, > > > > yes, I know you're a class and withevents guru! > > I'll try this way, but if I remenber well your explanations of the > > withevents statement, I recall > > it allows a class to SINK the event of a control, but can it CALL an > event > > of tis control, not sure! > > > > Thank's for your help, > > > > Philippe > > > > 2009/2/9 jwcolby > > > >> This is possible, IF the AfterUpdate event exists within the scope of > the > >> calling subroutine and is > >> actually called cbo_AfterUpdate. > >> > >> If you have a cboPerson and cboState and cboCity then the event to call > >> would be > >> cboPerson_AfterUpdate, cboState_AfterUpdate, cboCity_AfterUpdate. You > see > >> what I am saying? > >> > >> My guess is the cbo is not CALLED cbo back where it exists. You are > trying > >> to use a function to > >> make something generic but the NAME of the objects AfterUpdate is not > >> generic, and very likely the > >> code cannot be seen from this function, the afterupdate sub is in the > >> form's class and this function > >> is where? In a module? Not the same scope. > >> > >> So no, you probably cannot do what you are trying to do. > >> > >> Now... if you had a class for your combo... > >> > >> ;-) > >> > >> John W. Colby > >> www.ColbyConsulting.com > >> > >> > >> philippe pons wrote: > >>> Hi all, > >>> > >>> I have a small proc. to which I pass a reference to a combo box. > >>> This proc has to synchronize the combo on the first item > >>> and run the AfterUpdate event proc. > >>> > >>> Private Sub syncCboTest(ByRef cbo As ComboBox) > >>> ' syn de la cbo de s?lection du chapitre > >>> cbo.SetFocus > >>> cbo = cbo.ItemData(0) > >>> ' Call cboSelChap_AfterUpdate > >>> Call cbo_AfterUpdate '<== this won't work! > >>> End Sub > >>> > >>> The question: > >>> > >>> How would you call the AfterUpdate event of a combobox that is > >> represented > >>> by it's reference?? > >>> something like: cbo_AfterUpdate! > >>> > >>> If it is even possible! > >>> > >>> Best regards, > >>> > >>> Philippe Pons > >> -- > >> AccessD mailing list > >> AccessD at databaseadvisors.com > >> http://databaseadvisors.com/mailman/listinfo/accessd > >> Website: http://www.databaseadvisors.com > >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From DWUTKA at Marlow.com Mon Feb 9 12:40:12 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Mon, 9 Feb 2009 12:40:12 -0600 Subject: [AccessD] Classes and Events In-Reply-To: <49906CE8.2000906@colbyconsulting.com> References: <49904E1C.4080701@colbyconsulting.com><57144ced0902090939na8aba3fkf2ca6b3aaeb8bc25@mail.gmail.com> <49906CE8.2000906@colbyconsulting.com> Message-ID: To clarify (if you don't mind JC), a class module can only raise it's OWN events. IE, if you have 20 command buttons, clicking a command button will raise THAT command buttons 'OnClick' event. Now, from code, you can CALL 'MyCommandButton_OnClick' which will run the code you have on your form (which is handling the OnClick event of that command button, but it's not actually raising the event. If other class modules have that command buttons events sunk into them, only clicking the button (having the command button raise it's own event) will trigger them all. Now, to be even more specific, class modules usually have a way to trigger their events programmatically. For instance, the OnOpen event of a form, can be triggered by programmatically opening that form. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Monday, February 09, 2009 11:51 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Classes and Events Philippe, Understand that only a combo can RAISE a combo event, only a command button can RAISE a command button event. To RAISE an event means that an OBJECT "broadcasts" an event that it knows how to RAISE. You can SINK the combo event in a class, IF you have dimensioned a combo variable "WithEvents", and IF you have captured a pointer to said combo in the class. Stay tuned, you shall see how it is done. John W. Colby www.ColbyConsulting.com philippe pons wrote: > Hop, this is interesting: > A regular module cannot RAISE an event, but a class can > > So following a previous post, a question arises: > How would you raise a combo box event with a class? > > TIA, > > Philippe > > 2009/2/9 jwcolby > >> A QUICK introduction to classes and events. >> >> >> CLASSES: >> >> * The Code Behind Forms module in a form is a class module. >> * A class is a module, but a module is not a class. >> * A class has properties and behaviors that a module does not. >> * A class is actually instantiated when a set statement is executed. In >> other words, an INSTANCE of >> the class is loaded into memory, and stays in memory until it is >> specifically unloaded. >> * Like a module, a class can contain data (variables) and code. However >> the variables in a module >> can only contain ONE value at a time. >> * A class can be loaded into memory as many times as you want (limited only >> by the size of your >> memory) and EACH INSTANCE of a class can contain its own value in its >> variables. >> * All instances of a class SHARE code, but do not share variables. In >> other words, the code is only >> loaded into memory one time, but the variables are loaded once per class >> instance loaded. >> * The class (and every object, including forms and controls) unloads from >> memory when the last >> variable holding a pointer to the object is set to nothing. >> *A class has two built-in Events that fire, one as a class instance loads >> (Class_Initialize), and >> the other as the class instance unloads (Class_Terminate). >> >> Think of a class as a place to store information and code about some thing >> in the real world. >> Perhaps you have a clsPerson. That class has a bunch of variables called >> FirstName, LastName, SSN, >> ColorHair, ColorEyes, Gender, Birthdate etc. Load an INSTANCE of that >> class and fill in the data >> about John Colby, load another instance and fill in the data about Mary >> Colby etc. You might then >> have a piece of code that takes the birthdate and calculates the current >> age from that. The data >> and the code are all stored together in the class. >> >> EVENTS: >> >> Events can be thought of kind of like a radio transmission. The radio >> station transmits a signal, >> but they have no idea whether anyone is listening. In the case of events, >> this is called "Raising >> (or sourcing) and event". >> >> If someone is listening to that radio signal, then the person listening can >> do whatever they want >> with the signal they are receiving. They can do nothing at all, they can >> use it as a signal to >> launch an attack on an enemy, they can enjoy music, they can... The >> important thing to understand >> here is that what the listener does is up to the listener. >> >> In the case of events, receiving the signal is called "sinking" the event. >> >> Notice that the person broadcasting the signal doesn't know or care whether >> anyone is listening, nor >> do they know or care what the listener (if they even exist) does with the >> signal. >> >> When you open a form, the form is constantly raising events. It raises >> OnOpen, OnClose, OnCurrent, >> BeforeUpdate, AfterUpdate, MouseMove etc etc. The events are raised >> whether or not anyone is >> listening. The form neither knows nor cares whether anyone is listening to >> (sinking) those events, >> it is simply raising these events so that if anyone is listening to >> (sinking) the events, they can >> do whatever they want when the events fire. >> >> When you place a control on the form, the control raises events under >> certain circumstances. When >> the control gets the focus it raises an OnFocus event, when it loses the >> focus it raises a LostFocus >> event, it raises a BeforeUpdate, AfterUpdate etc. Of course these events >> depend on what the user >> does, in other words they don't happen unless the user manipulates the >> control in the correct >> manner, enters data for example. But notice that while the control always >> raises the event, it >> neither knows nor cares whether anyone is listening, nor does it know or >> care what the listener does >> with the event if anyone is listening (sinking the event). >> >> This is a critical thing to understand, that the object raising an event >> does not know nor care >> about the listener, nor what the listener does. The reason that this is >> critical is because it >> allows you to design an interface between objects which is totally >> asynchronous or disconnected. >> Have you ever built a subform and referenced a control on the parent form? >> Have you ever tried to >> open that subform by itself? It complains that it cannot find the control >> on the parent. The >> subform is has a "connected" interface to the parent, without the parent it >> cannot do its thing >> correctly. The event "Raise/Sink" interface eliminates that dependence. >> The object raising the >> event does not depend on having a receiver of the event in order to >> function correctly. The >> receiver of events does not depend on the broadcaster existing in order to >> function, although of >> course it cannot do whatever it would do with the events if they are not >> being broadcast. But each >> side can be loaded and code can execute without the other side being >> loaded, without compile errors etc. >> >> The last thing to know is that regular modules cannot sink events, but a >> class can. A regular >> module cannot RAISE an event, but a class can. Classes are modules, but >> modules are not classes. >> >> This is just a teaser to see if anyone is interested. >> >> If yes continue lecture else end if. >> >> -- >> John W. Colby >> www.ColbyConsulting.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwcolby at colbyconsulting.com Mon Feb 9 13:11:06 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 09 Feb 2009 14:11:06 -0500 Subject: [AccessD] Classes and Events In-Reply-To: References: <49904E1C.4080701@colbyconsulting.com><57144ced0902090939na8aba3fkf2ca6b3aaeb8bc25@mail.gmail.com> <49906CE8.2000906@colbyconsulting.com> Message-ID: <49907FCA.5070401@colbyconsulting.com> > To clarify (if you don't mind JC) Not at all Drew. This stuff is just different enough that having things said in a slightly different way may be just what is needed for it to "click" (pun intended). To expound a bit further on Drew's example, if you have 20 command buttons, and if each command button is going to need the same code, then you would instantiate the command button class 20 times, and each instance would handle ONE COMMAND button. The button's Click event would be sunk right inside of the class, the code to run would be right inside of the class etc. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > To clarify (if you don't mind JC), a class module can only raise it's > OWN events. IE, if you have 20 command buttons, clicking a command > button will raise THAT command buttons 'OnClick' event. Now, from code, > you can CALL 'MyCommandButton_OnClick' which will run the code you have > on your form (which is handling the OnClick event of that command > button, but it's not actually raising the event. If other class modules > have that command buttons events sunk into them, only clicking the > button (having the command button raise it's own event) will trigger > them all. > > Now, to be even more specific, class modules usually have a way to > trigger their events programmatically. For instance, the OnOpen event > of a form, can be triggered by programmatically opening that form. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Monday, February 09, 2009 11:51 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Classes and Events > > Philippe, > > Understand that only a combo can RAISE a combo event, only a command > button can RAISE a command > button event. To RAISE an event means that an OBJECT "broadcasts" an > event that it knows how to RAISE. > > You can SINK the combo event in a class, IF you have dimensioned a combo > variable "WithEvents", and > IF you have captured a pointer to said combo in the class. > > Stay tuned, you shall see how it is done. > > John W. Colby > www.ColbyConsulting.com > > > philippe pons wrote: >> Hop, this is interesting: >> A regular module cannot RAISE an event, but a class can >> >> So following a previous post, a question arises: >> How would you raise a combo box event with a class? >> >> TIA, >> >> Philippe >> >> 2009/2/9 jwcolby >> >>> A QUICK introduction to classes and events. >>> >>> >>> CLASSES: >>> >>> * The Code Behind Forms module in a form is a class module. >>> * A class is a module, but a module is not a class. >>> * A class has properties and behaviors that a module does not. >>> * A class is actually instantiated when a set statement is executed. > In >>> other words, an INSTANCE of >>> the class is loaded into memory, and stays in memory until it is >>> specifically unloaded. >>> * Like a module, a class can contain data (variables) and code. > However >>> the variables in a module >>> can only contain ONE value at a time. >>> * A class can be loaded into memory as many times as you want > (limited only >>> by the size of your >>> memory) and EACH INSTANCE of a class can contain its own value in its >>> variables. >>> * All instances of a class SHARE code, but do not share variables. > In >>> other words, the code is only >>> loaded into memory one time, but the variables are loaded once per > class >>> instance loaded. >>> * The class (and every object, including forms and controls) unloads > from >>> memory when the last >>> variable holding a pointer to the object is set to nothing. >>> *A class has two built-in Events that fire, one as a class instance > loads >>> (Class_Initialize), and >>> the other as the class instance unloads (Class_Terminate). >>> >>> Think of a class as a place to store information and code about some > thing >>> in the real world. >>> Perhaps you have a clsPerson. That class has a bunch of variables > called >>> FirstName, LastName, SSN, >>> ColorHair, ColorEyes, Gender, Birthdate etc. Load an INSTANCE of > that >>> class and fill in the data >>> about John Colby, load another instance and fill in the data about > Mary >>> Colby etc. You might then >>> have a piece of code that takes the birthdate and calculates the > current >>> age from that. The data >>> and the code are all stored together in the class. >>> >>> EVENTS: >>> >>> Events can be thought of kind of like a radio transmission. The > radio >>> station transmits a signal, >>> but they have no idea whether anyone is listening. In the case of > events, >>> this is called "Raising >>> (or sourcing) and event". >>> >>> If someone is listening to that radio signal, then the person > listening can >>> do whatever they want >>> with the signal they are receiving. They can do nothing at all, they > can >>> use it as a signal to >>> launch an attack on an enemy, they can enjoy music, they can... The >>> important thing to understand >>> here is that what the listener does is up to the listener. >>> >>> In the case of events, receiving the signal is called "sinking" the > event. >>> Notice that the person broadcasting the signal doesn't know or care > whether >>> anyone is listening, nor >>> do they know or care what the listener (if they even exist) does with > the >>> signal. >>> >>> When you open a form, the form is constantly raising events. It > raises >>> OnOpen, OnClose, OnCurrent, >>> BeforeUpdate, AfterUpdate, MouseMove etc etc. The events are raised >>> whether or not anyone is >>> listening. The form neither knows nor cares whether anyone is > listening to >>> (sinking) those events, >>> it is simply raising these events so that if anyone is listening to >>> (sinking) the events, they can >>> do whatever they want when the events fire. >>> >>> When you place a control on the form, the control raises events under >>> certain circumstances. When >>> the control gets the focus it raises an OnFocus event, when it loses > the >>> focus it raises a LostFocus >>> event, it raises a BeforeUpdate, AfterUpdate etc. Of course these > events >>> depend on what the user >>> does, in other words they don't happen unless the user manipulates > the >>> control in the correct >>> manner, enters data for example. But notice that while the control > always >>> raises the event, it >>> neither knows nor cares whether anyone is listening, nor does it know > or >>> care what the listener does >>> with the event if anyone is listening (sinking the event). >>> >>> This is a critical thing to understand, that the object raising an > event >>> does not know nor care >>> about the listener, nor what the listener does. The reason that > this is >>> critical is because it >>> allows you to design an interface between objects which is totally >>> asynchronous or disconnected. >>> Have you ever built a subform and referenced a control on the parent > form? >>> Have you ever tried to >>> open that subform by itself? It complains that it cannot find the > control >>> on the parent. The >>> subform is has a "connected" interface to the parent, without the > parent it >>> cannot do its thing >>> correctly. The event "Raise/Sink" interface eliminates that > dependence. >>> The object raising the >>> event does not depend on having a receiver of the event in order to >>> function correctly. The >>> receiver of events does not depend on the broadcaster existing in > order to >>> function, although of >>> course it cannot do whatever it would do with the events if they are > not >>> being broadcast. But each >>> side can be loaded and code can execute without the other side being >>> loaded, without compile errors etc. >>> >>> The last thing to know is that regular modules cannot sink events, > but a >>> class can. A regular >>> module cannot RAISE an event, but a class can. Classes are modules, > but >>> modules are not classes. >>> >>> This is just a teaser to see if anyone is interested. >>> >>> If yes continue lecture else end if. >>> >>> -- >>> John W. Colby >>> www.ColbyConsulting.com >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> From jwcolby at colbyconsulting.com Mon Feb 9 13:22:57 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 09 Feb 2009 14:22:57 -0500 Subject: [AccessD] LOAD THE FORM CLASS IN THE FORM Message-ID: <49908291.30901@colbyconsulting.com> This lecture will discuss how to get an instance of a class to load. Remember that (In VBA) unlike a module, a class can?t do anything until an instance of it is loaded. Also, unlike a module, you can load more than one instance of a class. For the purposes of this lecture we will cause the form that we designed earlier to load one instance of this class. ? Open frmDemoCtls in design view. ? Click the Code icon in the toolbar to open the editor for the form?s class module. ? In the form header type (or cut and paste) the following: Public fclsFrm As clsFrm Private Sub Form_Open(Cancel As Integer) Set fclsFrm = New clsFrm fclsFrm.mInit Me End Sub ? Save the form. WARNING!!! If you TYPED this in then the code will probably NOT RUN. Why? Because the OnOpen property of the form will not contain the string "[Event Procedure]". Remember that I said that the event property of an object MUST CONTAIN that exact string in order for the event sink to be executed in the object, the form in this case. If that is the case you can do one of two things: 1 Open the form in design view and DOUBLE CLICK the OnOpen event of the form. The fomr wizard will insert the string [Event Procedure] in the OnOpen property of the form. 2) Cut and paste the entire thing out and back in to the form class. Private Sub Form_Open(Cancel As Integer) Set fclsFrm = New clsFrm fclsFrm.mInit Me End Sub Somehow or another this forces the form wizard to place that text into the property. So... this code dimensions a variable fclsFrm. I use the fcls to denote a class in a form header, it is not required. You could use lclsFrm, mclsFrm or whatever you like. The Form_Open event will run when the form opens. The Set statement is where an instance of the clsFrm is loaded. The .Minit Me calls the mInit method of the class and passes in to the clsFrm instance a pointer to the containing form (Me). ? Place a breakpoint on the Set statement and open the form. ? Step through the code. You should see the set statement execute, then the .Minit will pull you into the class mInit method where the two statements inside of the class will execute. Pretty exciting eh? NOT! But we are breaking this stuff down into tiny steps so that you can see each piece and how easy each piece is. This lecture has set up the code in your form?s class to dimension a fclsFrm variable, then when you open the form, the Form_Open sub executes, loads a single instance of the class, and calls the mInit() method, passing in a pointer to itself (the containing form, ME). The class loaded, the pointer to the form was stored INSIDE of the class instance, a property of the form was loaded with a string, and the code stepped back out to the form?s code and finished running. In general, these three steps have to be performed any time you want to use a class. ? Dim an instance of the slass ? SET the variable to the class (load an instance) ? Call an mInit() method of the class to pass in parameters to the class to initialize itself. VERY occasionally you will not need to Init a class but that is extremely rare. -- John W. Colby www.ColbyConsulting.com From cfoust at infostatsystems.com Mon Feb 9 13:31:44 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Mon, 9 Feb 2009 11:31:44 -0800 Subject: [AccessD] Import Bad data? In-Reply-To: References: <499039E4.9060903@colbyconsulting.com><383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> Message-ID: Does the record contain a memo field, perhaps? If so, it sounds like it's been corrupted. One option is to import all the other fields but not the memo field into your database maintaining the table structure. Then do an append of the memo fields on the key joins between the two tables. You should be able to get everything except the bad fields. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Mark A Matte Sent: Monday, February 09, 2009 8:42 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Import Bad data? I can't even pull this record in with a select statement...as a query or in vba as a recordset? I'm trying to avoid having the dba export to a text file...as they are not fans of this process to begin with. Thanks, Mark ---------------------------------------- > Date: Mon, 9 Feb 2009 10:24:11 -0600 > From: garykjos at gmail.com > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Import Bad data? > > You could Export to a Text file and then read through that with vba > text handling code to parse through and scrub the offending characters > and then save the corrected file and import that. I've done that when > someone provided me with several huge exported data files that didn't > have the correct combination of CR & LF at the end of records and so > it fouled up a direct import for me. > > Longtime AccessD contributor Seth Galitzer has some code samples on > his website for "FILE I/O in VB" that you can download and have a look > at. > > http://seth.galitzer.net/node/11 > > Once you get the file open parsing through the text and either > ignoring characters or replacing them with something else isn't too > tough. It's been a long time since I've done it but I could MAYBE hunt > up my code if you are really stumped by that. > > GK > > On 2/9/09, Mark A Matte wrote: >> >> Hello All, >> >> I'm not expecting an answer I'll like...but I'll try. >> >> I'm importing a large number of records from Informix to Access via odbc. There is a large text/memo field...that apparently has some characters access does not like. I do not get an error message...access just says "an error has occurred...do you want to tell MS"...then closes. >> >> I'm trying to think of a way to detect/program around this. So far...its a very manual process. I loop through 2 days worth at a time...that way I don't have to start over from the beginning everytime. When it crashes...I pull in just the PKs for that date range...loop through them...imort the text field 1 record at a time...store in temp table...when it crashes...I compare the PKs to the temp table...the next PK not in the temp is the offender. >> >> This is very manual and time consuming...any ideas/suggestions? >> >> Thanks, >> >> Mark A. Matte >> >> >> _________________________________________________________________ >> Windows Live(tm): E-mail. Chat. Share. Get more ways to connect. >> http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_HM_AE_Faster_ >> 022009 >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > > -- > Gary Kjos > garykjos at gmail.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com _________________________________________________________________ Windows Live(tm): E-mail. Chat. Share. Get more ways to connect. http://windowslive.com/explore?ocid=TXT_TAGLM_WL_t2_allup_explore_022009 -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Donald.A.McGillivray at sprint.com Mon Feb 9 13:50:33 2009 From: Donald.A.McGillivray at sprint.com (McGillivray, Don [IT]) Date: Mon, 9 Feb 2009 13:50:33 -0600 Subject: [AccessD] LOAD THE FORM CLASS IN THE FORM In-Reply-To: <49908291.30901@colbyconsulting.com> References: <49908291.30901@colbyconsulting.com> Message-ID: <59F4C79E0A20B74990A3775EF2388A89422AE06E8A@PDAWM03C.ad.sprint.com> Hi, John First of all, thanks for stepping through this (once again) for us duffers out here. I've downloaded and read all your stuff about classes and sinking events, but never have taken the time to thoroughly understand them or quite get my head around how I might implement them in the stuff I do. This discussion looks to be a bit more elementary in approach, and I'm following it closely, hoping that something clicks this time. Now a bief question . . . Why declare the variable fclsFrm as "public" in the header of the form's module? Is this just a standard practice thing - declare things public unless there's a compelling reason not to, or something else? Thanks Don -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Monday, February 09, 2009 11:23 AM To: Access Developers discussion and problem solving Subject: [AccessD] LOAD THE FORM CLASS IN THE FORM This lecture will discuss how to get an instance of a class to load. Remember that (In VBA) unlike a module, a class can't do anything until an instance of it is loaded. Also, unlike a module, you can load more than one instance of a class. For the purposes of this lecture we will cause the form that we designed earlier to load one instance of this class. * Open frmDemoCtls in design view. * Click the Code icon in the toolbar to open the editor for the form's class module. * In the form header type (or cut and paste) the following: Public fclsFrm As clsFrm Private Sub Form_Open(Cancel As Integer) Set fclsFrm = New clsFrm fclsFrm.mInit Me End Sub * Save the form. WARNING!!! If you TYPED this in then the code will probably NOT RUN. Why? Because the OnOpen property of the form will not contain the string "[Event Procedure]". Remember that I said that the event property of an object MUST CONTAIN that exact string in order for the event sink to be executed in the object, the form in this case. If that is the case you can do one of two things: 1 Open the form in design view and DOUBLE CLICK the OnOpen event of the form. The fomr wizard will insert the string [Event Procedure] in the OnOpen property of the form. 2) Cut and paste the entire thing out and back in to the form class. Private Sub Form_Open(Cancel As Integer) Set fclsFrm = New clsFrm fclsFrm.mInit Me End Sub Somehow or another this forces the form wizard to place that text into the property. So... this code dimensions a variable fclsFrm. I use the fcls to denote a class in a form header, it is not required. You could use lclsFrm, mclsFrm or whatever you like. The Form_Open event will run when the form opens. The Set statement is where an instance of the clsFrm is loaded. The .Minit Me calls the mInit method of the class and passes in to the clsFrm instance a pointer to the containing form (Me). * Place a breakpoint on the Set statement and open the form. * Step through the code. You should see the set statement execute, then the .Minit will pull you into the class mInit method where the two statements inside of the class will execute. Pretty exciting eh? NOT! But we are breaking this stuff down into tiny steps so that you can see each piece and how easy each piece is. This lecture has set up the code in your form's class to dimension a fclsFrm variable, then when you open the form, the Form_Open sub executes, loads a single instance of the class, and calls the mInit() method, passing in a pointer to itself (the containing form, ME). The class loaded, the pointer to the form was stored INSIDE of the class instance, a property of the form was loaded with a string, and the code stepped back out to the form's code and finished running. In general, these three steps have to be performed any time you want to use a class. * Dim an instance of the slass * SET the variable to the class (load an instance) * Call an mInit() method of the class to pass in parameters to the class to initialize itself. VERY occasionally you will not need to Init a class but that is extremely rare. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com This e-mail may contain Sprint Nextel Company proprietary information intended for the sole use of the recipient(s). Any use by others is prohibited. If you are not the intended recipient, please contact the sender and delete all copies of the message. From jwcolby at colbyconsulting.com Mon Feb 9 14:28:00 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 09 Feb 2009 15:28:00 -0500 Subject: [AccessD] LOAD THE FORM CLASS IN THE FORM In-Reply-To: <59F4C79E0A20B74990A3775EF2388A89422AE06E8A@PDAWM03C.ad.sprint.com> References: <49908291.30901@colbyconsulting.com> <59F4C79E0A20B74990A3775EF2388A89422AE06E8A@PDAWM03C.ad.sprint.com> Message-ID: <499091D0.9030308@colbyconsulting.com> > Why declare the variable fclsFrm as "public" in the header of the form's module? Is this just a standard practice thing - declare things public unless there's a compelling reason not to, or something else? Good question Don. In fact "best practices" says to declare things private unless there is a good reason not to. A public variable can be referenced from outside of the object that contains it. It is occasionally useful to be able to reference the frmClass variable from other code. It doesn't happen often but it has happened enough that I just started declaring it public. So Forms!ThisForm.fclsFrm references the clsFrm instance that is in the form, and you can then reference methods and properties of fclsFrm. John W. Colby www.ColbyConsulting.com McGillivray, Don [IT] wrote: > Hi, John > > First of all, thanks for stepping through this (once again) for us duffers out here. I've downloaded and read all your stuff about classes and sinking events, but never have taken the time to thoroughly understand them or quite get my head around how I might implement them in the stuff I do. This discussion looks to be a bit more elementary in approach, and I'm following it closely, hoping that something clicks this time. > > Now a bief question . . . > > Why declare the variable fclsFrm as "public" in the header of the form's module? Is this just a standard practice thing - declare things public unless there's a compelling reason not to, or something else? > > Thanks > > Don > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Monday, February 09, 2009 11:23 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] LOAD THE FORM CLASS IN THE FORM > > > This lecture will discuss how to get an instance of a class to load. Remember that (In VBA) unlike > a module, a class can't do anything until an instance of it is loaded. Also, unlike a module, you > can load more than one instance of a class. For the purposes of this lecture we will cause the form > that we designed earlier to load one instance of this class. > > * Open frmDemoCtls in design view. > * Click the Code icon in the toolbar to open the editor for the form's class module. > * In the form header type (or cut and paste) the following: > > Public fclsFrm As clsFrm > > Private Sub Form_Open(Cancel As Integer) > Set fclsFrm = New clsFrm > fclsFrm.mInit Me > End Sub > > * Save the form. > > WARNING!!! If you TYPED this in then the code will probably NOT RUN. Why? Because the OnOpen > property of the form will not contain the string "[Event Procedure]". Remember that I said that the > event property of an object MUST CONTAIN that exact string in order for the event sink to be > executed in the object, the form in this case. If that is the case you can do one of two things: > > 1 Open the form in design view and DOUBLE CLICK the OnOpen event of the form. The fomr wizard will > insert the string [Event Procedure] in the OnOpen property of the form. > > 2) Cut and paste the entire thing out and back in to the form class. > > Private Sub Form_Open(Cancel As Integer) > Set fclsFrm = New clsFrm > fclsFrm.mInit Me > End Sub > > Somehow or another this forces the form wizard to place that text into the property. > > So... this code dimensions a variable fclsFrm. I use the fcls to denote a class in a form header, it > is not required. You could use lclsFrm, mclsFrm or whatever you like. > > The Form_Open event will run when the form opens. The Set statement is where an instance of the > clsFrm is loaded. The .Minit Me calls the mInit method of the class and passes in to the clsFrm > instance a pointer to the containing form (Me). > > * Place a breakpoint on the Set statement and open the form. > * Step through the code. You should see the set statement execute, then the .Minit will pull you > into the class mInit method where the two statements inside of the class will execute. > > Pretty exciting eh? NOT! > > But we are breaking this stuff down into tiny steps so that you can see each piece and how easy each > piece is. This lecture has set up the code in your form's class to dimension a fclsFrm variable, > then when you open the form, the Form_Open sub executes, loads a single instance of the class, and > calls the mInit() method, passing in a pointer to itself (the containing form, ME). The class > loaded, the pointer to the form was stored INSIDE of the class instance, a property of the form was > loaded with a string, and the code stepped back out to the form's code and finished running. > > In general, these three steps have to be performed any time you want to use a class. > > * Dim an instance of the slass > * SET the variable to the class (load an instance) > * Call an mInit() method of the class to pass in parameters to the class to initialize itself. VERY > occasionally you will not need to Init a class but that is extremely rare. > > > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > > This e-mail may contain Sprint Nextel Company proprietary information intended for the sole use of the recipient(s). Any use by others is prohibited. If you are not the intended recipient, please contact the sender and delete all copies of the message. > > From markamatte at hotmail.com Mon Feb 9 14:34:32 2009 From: markamatte at hotmail.com (Mark A Matte) Date: Mon, 9 Feb 2009 20:34:32 +0000 Subject: [AccessD] Import Bad data? In-Reply-To: References: <499039E4.9060903@colbyconsulting.com><383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> Message-ID: I don't think its corrupt. The DBA can export the records just fine...there is just some offending character(s) that Access absolutely is choking on. Anytime I try to bring in or reference that field of the record in question( a linked table)...Access dies. I was just trying to avoid having the dba do an export. I have a manual work around...just was curious if anyone had a suggestion about programming around such a catastophic failure(detect the failure and STOP or skip the record instead of crashing)...right now...I'm using the failure to isolate the records in question. Thanks, Mark ---------------------------------------- > Date: Mon, 9 Feb 2009 11:31:44 -0800 > From: cfoust at infostatsystems.com > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Import Bad data? > > Does the record contain a memo field, perhaps? If so, it sounds like > it's been corrupted. One option is to import all the other fields but > not the memo field into your database maintaining the table structure. > Then do an append of the memo fields on the key joins between the two > tables. You should be able to get everything except the bad fields. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Mark A Matte > Sent: Monday, February 09, 2009 8:42 AM > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Import Bad data? > > > I can't even pull this record in with a select statement...as a query or > in vba as a recordset? > > I'm trying to avoid having the dba export to a text file...as they are > not fans of this process to begin with. > > Thanks, > > Mark > > ---------------------------------------- >> Date: Mon, 9 Feb 2009 10:24:11 -0600 >> From: garykjos at gmail.com >> To: accessd at databaseadvisors.com >> Subject: Re: [AccessD] Import Bad data? >> >> You could Export to a Text file and then read through that with vba >> text handling code to parse through and scrub the offending characters > >> and then save the corrected file and import that. I've done that when >> someone provided me with several huge exported data files that didn't >> have the correct combination of CR & LF at the end of records and so >> it fouled up a direct import for me. >> >> Longtime AccessD contributor Seth Galitzer has some code samples on >> his website for "FILE I/O in VB" that you can download and have a look > >> at. >> >> http://seth.galitzer.net/node/11 >> >> Once you get the file open parsing through the text and either >> ignoring characters or replacing them with something else isn't too >> tough. It's been a long time since I've done it but I could MAYBE hunt > >> up my code if you are really stumped by that. >> >> GK >> >> On 2/9/09, Mark A Matte wrote: >>> >>> Hello All, >>> >>> I'm not expecting an answer I'll like...but I'll try. >>> >>> I'm importing a large number of records from Informix to Access via > odbc. There is a large text/memo field...that apparently has some > characters access does not like. I do not get an error message...access > just says "an error has occurred...do you want to tell MS"...then > closes. >>> >>> I'm trying to think of a way to detect/program around this. So > far...its a very manual process. I loop through 2 days worth at a > time...that way I don't have to start over from the beginning everytime. > When it crashes...I pull in just the PKs for that date range...loop > through them...imort the text field 1 record at a time...store in temp > table...when it crashes...I compare the PKs to the temp table...the next > PK not in the temp is the offender. >>> >>> This is very manual and time consuming...any ideas/suggestions? >>> >>> Thanks, >>> >>> Mark A. Matte >>> >>> >>> _________________________________________________________________ >>> Windows Live(tm): E-mail. Chat. Share. Get more ways to connect. >>> http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_HM_AE_Faster_ >>> 022009 >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >> >> >> -- >> Gary Kjos >> garykjos at gmail.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com > _________________________________________________________________ > Windows Live(tm): E-mail. Chat. Share. Get more ways to connect. > http://windowslive.com/explore?ocid=TXT_TAGLM_WL_t2_allup_explore_022009 > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com _________________________________________________________________ Windows Live?: E-mail. Chat. Share. Get more ways to connect. http://windowslive.com/howitworks?ocid=TXT_TAGLM_WL_t2_allup_howitworks_022009 From garykjos at gmail.com Mon Feb 9 14:50:23 2009 From: garykjos at gmail.com (Gary Kjos) Date: Mon, 9 Feb 2009 14:50:23 -0600 Subject: [AccessD] Import Bad data? In-Reply-To: References: <499039E4.9060903@colbyconsulting.com> <383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> Message-ID: Could it be the size of the contents? I do a lot of extracting from Oracle tables into Access and Oracle allows some larger values than Access does. If I hit one of those fields I blow up. Usually that is not based on the contents of the field though jsut the field type that doesn't translate from Oracle into Access. CLOB's and BLOB's I think is what Oracle calls them. GK On 2/9/09, Mark A Matte wrote: > > I don't think its corrupt. The DBA can export the records just fine...there is just some offending character(s) that Access absolutely is choking on. Anytime I try to bring in or reference that field of the record in question( a linked table)...Access dies. I was just trying to avoid having the dba do an export. I have a manual work around...just was curious if anyone had a suggestion about programming around such a catastophic failure(detect the failure and STOP or skip the record instead of crashing)...right now...I'm using the failure to isolate the records in question. > > Thanks, > > Mark > > ---------------------------------------- > > Date: Mon, 9 Feb 2009 11:31:44 -0800 > > From: cfoust at infostatsystems.com > > To: accessd at databaseadvisors.com > > Subject: Re: [AccessD] Import Bad data? > > > > Does the record contain a memo field, perhaps? If so, it sounds like > > it's been corrupted. One option is to import all the other fields but > > not the memo field into your database maintaining the table structure. > > Then do an append of the memo fields on the key joins between the two > > tables. You should be able to get everything except the bad fields. > > > > Charlotte Foust > > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Mark A Matte > > Sent: Monday, February 09, 2009 8:42 AM > > To: accessd at databaseadvisors.com > > Subject: Re: [AccessD] Import Bad data? > > > > > > I can't even pull this record in with a select statement...as a query or > > in vba as a recordset? > > > > I'm trying to avoid having the dba export to a text file...as they are > > not fans of this process to begin with. > > > > Thanks, > > > > Mark > > > > ---------------------------------------- > >> Date: Mon, 9 Feb 2009 10:24:11 -0600 > >> From: garykjos at gmail.com > >> To: accessd at databaseadvisors.com > >> Subject: Re: [AccessD] Import Bad data? > >> > >> You could Export to a Text file and then read through that with vba > >> text handling code to parse through and scrub the offending characters > > > >> and then save the corrected file and import that. I've done that when > >> someone provided me with several huge exported data files that didn't > >> have the correct combination of CR & LF at the end of records and so > >> it fouled up a direct import for me. > >> > >> Longtime AccessD contributor Seth Galitzer has some code samples on > >> his website for "FILE I/O in VB" that you can download and have a look > > > >> at. > >> > >> http://seth.galitzer.net/node/11 > >> > >> Once you get the file open parsing through the text and either > >> ignoring characters or replacing them with something else isn't too > >> tough. It's been a long time since I've done it but I could MAYBE hunt > > > >> up my code if you are really stumped by that. > >> > >> GK > >> > >> On 2/9/09, Mark A Matte wrote: > >>> > >>> Hello All, > >>> > >>> I'm not expecting an answer I'll like...but I'll try. > >>> > >>> I'm importing a large number of records from Informix to Access via > > odbc. There is a large text/memo field...that apparently has some > > characters access does not like. I do not get an error message...access > > just says "an error has occurred...do you want to tell MS"...then > > closes. > >>> > >>> I'm trying to think of a way to detect/program around this. So > > far...its a very manual process. I loop through 2 days worth at a > > time...that way I don't have to start over from the beginning everytime. > > When it crashes...I pull in just the PKs for that date range...loop > > through them...imort the text field 1 record at a time...store in temp > > table...when it crashes...I compare the PKs to the temp table...the next > > PK not in the temp is the offender. > >>> > >>> This is very manual and time consuming...any ideas/suggestions? > >>> > >>> Thanks, > >>> > >>> Mark A. Matte > >>> > >>> > >>> _________________________________________________________________ > >>> Windows Live(tm): E-mail. Chat. Share. Get more ways to connect. > >>> http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_HM_AE_Faster_ > >>> 022009 > >>> -- > >>> AccessD mailing list > >>> AccessD at databaseadvisors.com > >>> http://databaseadvisors.com/mailman/listinfo/accessd > >>> Website: http://www.databaseadvisors.com > >>> > >> > >> > >> -- > >> Gary Kjos > >> garykjos at gmail.com > >> > >> -- > >> AccessD mailing list > >> AccessD at databaseadvisors.com > >> http://databaseadvisors.com/mailman/listinfo/accessd > >> Website: http://www.databaseadvisors.com > > _________________________________________________________________ > > Windows Live(tm): E-mail. Chat. Share. Get more ways to connect. > > http://windowslive.com/explore?ocid=TXT_TAGLM_WL_t2_allup_explore_022009 > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > _________________________________________________________________ > Windows Live?: E-mail. Chat. Share. Get more ways to connect. > http://windowslive.com/howitworks?ocid=TXT_TAGLM_WL_t2_allup_howitworks_022009 > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- Gary Kjos garykjos at gmail.com From markamatte at hotmail.com Mon Feb 9 14:54:40 2009 From: markamatte at hotmail.com (Mark A Matte) Date: Mon, 9 Feb 2009 20:54:40 +0000 Subject: [AccessD] Import Bad data? In-Reply-To: References: <499039E4.9060903@colbyconsulting.com> <383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> Message-ID: Checked that one...size is not an issue. Thanks, Mark ---------------------------------------- > Date: Mon, 9 Feb 2009 14:50:23 -0600 > From: garykjos at gmail.com > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Import Bad data? > > Could it be the size of the contents? I do a lot of extracting from > Oracle tables into Access and Oracle allows some larger values than > Access does. If I hit one of those fields I blow up. Usually that is > not based on the contents of the field though jsut the field type that > doesn't translate from Oracle into Access. CLOB's and BLOB's I think > is what Oracle calls them. > > GK > > On 2/9/09, Mark A Matte wrote: >> >> I don't think its corrupt. The DBA can export the records just fine...there is just some offending character(s) that Access absolutely is choking on. Anytime I try to bring in or reference that field of the record in question( a linked table)...Access dies. I was just trying to avoid having the dba do an export. I have a manual work around...just was curious if anyone had a suggestion about programming around such a catastophic failure(detect the failure and STOP or skip the record instead of crashing)...right now...I'm using the failure to isolate the records in question. >> >> Thanks, >> >> Mark >> >> ---------------------------------------- >>> Date: Mon, 9 Feb 2009 11:31:44 -0800 >>> From: cfoust at infostatsystems.com >>> To: accessd at databaseadvisors.com >>> Subject: Re: [AccessD] Import Bad data? >>> >>> Does the record contain a memo field, perhaps? If so, it sounds like >>> it's been corrupted. One option is to import all the other fields but >>> not the memo field into your database maintaining the table structure. >>> Then do an append of the memo fields on the key joins between the two >>> tables. You should be able to get everything except the bad fields. >>> >>> Charlotte Foust >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Mark A Matte >>> Sent: Monday, February 09, 2009 8:42 AM >>> To: accessd at databaseadvisors.com >>> Subject: Re: [AccessD] Import Bad data? >>> >>> >>> I can't even pull this record in with a select statement...as a query or >>> in vba as a recordset? >>> >>> I'm trying to avoid having the dba export to a text file...as they are >>> not fans of this process to begin with. >>> >>> Thanks, >>> >>> Mark >>> >>> ---------------------------------------- >>>> Date: Mon, 9 Feb 2009 10:24:11 -0600 >>>> From: garykjos at gmail.com >>>> To: accessd at databaseadvisors.com >>>> Subject: Re: [AccessD] Import Bad data? >>>> >>>> You could Export to a Text file and then read through that with vba >>>> text handling code to parse through and scrub the offending characters >>> >>>> and then save the corrected file and import that. I've done that when >>>> someone provided me with several huge exported data files that didn't >>>> have the correct combination of CR & LF at the end of records and so >>>> it fouled up a direct import for me. >>>> >>>> Longtime AccessD contributor Seth Galitzer has some code samples on >>>> his website for "FILE I/O in VB" that you can download and have a look >>> >>>> at. >>>> >>>> http://seth.galitzer.net/node/11 >>>> >>>> Once you get the file open parsing through the text and either >>>> ignoring characters or replacing them with something else isn't too >>>> tough. It's been a long time since I've done it but I could MAYBE hunt >>> >>>> up my code if you are really stumped by that. >>>> >>>> GK >>>> >>>> On 2/9/09, Mark A Matte wrote: >>>>> >>>>> Hello All, >>>>> >>>>> I'm not expecting an answer I'll like...but I'll try. >>>>> >>>>> I'm importing a large number of records from Informix to Access via >>> odbc. There is a large text/memo field...that apparently has some >>> characters access does not like. I do not get an error message...access >>> just says "an error has occurred...do you want to tell MS"...then >>> closes. >>>>> >>>>> I'm trying to think of a way to detect/program around this. So >>> far...its a very manual process. I loop through 2 days worth at a >>> time...that way I don't have to start over from the beginning everytime. >>> When it crashes...I pull in just the PKs for that date range...loop >>> through them...imort the text field 1 record at a time...store in temp >>> table...when it crashes...I compare the PKs to the temp table...the next >>> PK not in the temp is the offender. >>>>> >>>>> This is very manual and time consuming...any ideas/suggestions? >>>>> >>>>> Thanks, >>>>> >>>>> Mark A. Matte >>>>> >>>>> >>>>> _________________________________________________________________ >>>>> Windows Live(tm): E-mail. Chat. Share. Get more ways to connect. >>>>> http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_HM_AE_Faster_ >>>>> 022009 >>>>> -- >>>>> AccessD mailing list >>>>> AccessD at databaseadvisors.com >>>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>>> Website: http://www.databaseadvisors.com >>>>> >>>> >>>> >>>> -- >>>> Gary Kjos >>>> garykjos at gmail.com >>>> >>>> -- >>>> AccessD mailing list >>>> AccessD at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>> Website: http://www.databaseadvisors.com >>> _________________________________________________________________ >>> Windows Live(tm): E-mail. Chat. Share. Get more ways to connect. >>> http://windowslive.com/explore?ocid=TXT_TAGLM_WL_t2_allup_explore_022009 >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >> _________________________________________________________________ >> Windows Live?: E-mail. Chat. Share. Get more ways to connect. >> http://windowslive.com/howitworks?ocid=TXT_TAGLM_WL_t2_allup_howitworks_022009 >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > > -- > Gary Kjos > garykjos at gmail.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com _________________________________________________________________ Windows Live?: Keep your life in sync. http://windowslive.com/explore?ocid=TXT_TAGLM_WL_t1_allup_explore_022009 From jwcolby at colbyconsulting.com Mon Feb 9 15:06:19 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 09 Feb 2009 16:06:19 -0500 Subject: [AccessD] Get event sinks working Message-ID: <49909ACB.4010304@colbyconsulting.com> Let?s do something USEFUL! OK are you READY? I can?t HEAR YOU (shouts like a rock star) So far we have learned a lot of stuff about classes and events but nothing very useful has been done yet. So let?s make something happen. ? Open clsFrm in the VB editor. ? Notice that just above the editable code there are two combo boxes. The left box displays OBJECTS that the class knows about, the right combo displays EVENTS of the currently selected object. ? In the LEFT combo select the mFrm object. Notice that the editor created a new event sink for us called mfrm_Load and placed the cursor in that event sink. It turns out that this event is useless to us since that Load event is the very first event to fire as a form loads, and thus has already come and gone by the time that we can get our class loaded. It also turns out that the Open event is also useless to us simply because we are loading the class in the Open event so it has already gone by by the time this class finishes loading. ? However with the mfrm object selected, drop down the right combo and select the BeforeUpdate event. Notice that the editor creates an event sink for us and places the cursor in it for us to start coding there. ? Place the following code in that event sink: Private Sub mfrm_BeforeUpdate(Cancel As Integer) MsgBox "Before Update: " & mfrm.Name End Sub ? In the menu, click debug / compile and notice that the LOAD event sink vanishes. The VB editor will very kindly remove unused but valid event sinks for us, and since we placed no code in that event sink, it is unused and thus removed by the editor. ? Before we go on, drop down the LEFT combo again and select the class object. Notice that a Class_Initialize() event stub was created. Place the following code in that event stub: Private Sub Class_Initialize() MsgBox "Initialize" End Sub ? Drop the right hand combo down again and select the Terminate event. Place the following code in that event stub. Private Sub Class_Terminate() MsgBox "Terminate" End Sub ? Save the class and open the form. The first thing that you should notice is that the events of the class fire, displaying the ?Initialize? message box. Remember I said that unlike regular modules, classes have two events that fire. We have created sinks in the class module to sink these events and so the message box will execute when we instantiate and the class. ? Close the form. But wait? what happened to that Terminate message box from the class? The answer is that the Class_Terminate event did not fire, and THAT means that the class never unloaded. Ooooops! The class never unloading means that the pointer to the class was never set to nothing back in the form. And THAT means that the form did not close properly!!! Remember I mentioned back in the beginning that an object only unloads when the last pointer to it is set to nothing? Well guess what, we have a pointer to the form in the class itself. This is called a circular reference. The form has a pointer to the clsFrm and clsFrm has a pointer to the form. Since each points to the other, (so far) neither pointer is set to nothing and so BOTH the form and the class remain in memory. That is a definite No-No! Can you say memory leak? In order to get around this, we need to sink the Close event in the clsFrm, and in that event sink we need to get rid of the pointer to the form. ? In the editor with clsFrm loaded, select the form object in the left hand combo. ? In the right hand combo select the Close event and the editor will create a close event stub for you. ? In that event stub place the following code: Private Sub mfrm_Close() Set mfrm = Nothing End Sub ? Now, back up in mInit() you need to add one more line of code: Function mInit(lfrm As Form) Set mfrm = lfrm mfrm.BeforeUpdate = cstrEvProc mfrm.OnClose = cstrEvProc End Function Notice the line just before End Function which places that cstrEvProc into the mfrm.OnClose property. As we discussed before, that ?hooks? the close event and allows this class to sink the event and thus run the close event of the form. ? Save the clsFrm and open and then close the form. This time the form should correctly close BECAUSE we set the reference to the form to nothing inside of the clsFrm instance. Because the form correctly closes, the pointer is set to nothing in the form?s class module, and NOW the msgbox in the clsFrm instance will fire, displaying the message box ?Terminate?. I understand that you will probably need to read over that and probably even ask questions about this ?circular reference? so I am going to stop here. In this lecture we created three event sinks in clsFrm. The mfrm_BeforeUpdate() we have not used yet but we created it. The Initialize() and Terminate() of clsFrm itself we have used. To this point we have just caused a message box to run and display the name of the event, nothing spectacular, but events are now being sunk in the clsFrm and code is running when events fire. We also discovered a circular reference, the form references the class and the class references the form. In order to correctly close the form we had to sink the close event of the form, and in that event sink we set the variable that points to the form back to nothing. Doing that ?released the last reference? to the form and allowed it to correctly close. When it closed, VBAs garbage collector set the fclsFrm variable in the form?s header to nothing, releasing the last pointer to fclsFrm and the fclsFrm instance closed. When it closed, the Terminate() event fired, displaying the ?Terminate? message box. We now have a class that stores a pointer to an object (the form), sinks events from the object (form) and causes code to run when those object (form) events run. We also have a form that loads and initializes an instance of that class. We have come a long way. -- John W. Colby www.ColbyConsulting.com From DWUTKA at Marlow.com Mon Feb 9 15:34:18 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Mon, 9 Feb 2009 15:34:18 -0600 Subject: [AccessD] Classes and Events In-Reply-To: <49907FCA.5070401@colbyconsulting.com> References: <49904E1C.4080701@colbyconsulting.com><57144ced0902090939na8aba3fkf2ca6b3aaeb8bc25@mail.gmail.com> <49906CE8.2000906@colbyconsulting.com> <49907FCA.5070401@colbyconsulting.com> Message-ID: I know what you mean about presenting things in a different light. Once I got into the groove with Classes and Collections I wondered why I didn't start using them from the get go! ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Monday, February 09, 2009 1:11 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Classes and Events > To clarify (if you don't mind JC) Not at all Drew. This stuff is just different enough that having things said in a slightly different way may be just what is needed for it to "click" (pun intended). To expound a bit further on Drew's example, if you have 20 command buttons, and if each command button is going to need the same code, then you would instantiate the command button class 20 times, and each instance would handle ONE COMMAND button. The button's Click event would be sunk right inside of the class, the code to run would be right inside of the class etc. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > To clarify (if you don't mind JC), a class module can only raise it's > OWN events. IE, if you have 20 command buttons, clicking a command > button will raise THAT command buttons 'OnClick' event. Now, from code, > you can CALL 'MyCommandButton_OnClick' which will run the code you have > on your form (which is handling the OnClick event of that command > button, but it's not actually raising the event. If other class modules > have that command buttons events sunk into them, only clicking the > button (having the command button raise it's own event) will trigger > them all. > > Now, to be even more specific, class modules usually have a way to > trigger their events programmatically. For instance, the OnOpen event > of a form, can be triggered by programmatically opening that form. > > Drew > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From JHewson at nciinc.com Mon Feb 9 15:42:52 2009 From: JHewson at nciinc.com (Hewson, Jim ) Date: Mon, 9 Feb 2009 15:42:52 -0600 Subject: [AccessD] CREATE CLASSES AND EVENTS DEMO DATABASE In-Reply-To: <49907098.2050406@colbyconsulting.com> References: <49907098.2050406@colbyconsulting.com> Message-ID: <7E02B06E41E5404589EDDDA2BAA1C5A83EC953@sanex101.nciinc.com> John, I'm using 2007 and it doesn't like the WithEvents in the clsFrm module. It states it's "Only valid in object module. Do I have it in the correct place? Jim -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Monday, February 09, 2009 12:06 PM To: Access Developers discussion and problem solving Subject: [AccessD] CREATE CLASSES AND EVENTS DEMO DATABASE * Create a blank database * Create a new form. Drag and drop one of each of the controls onto the form. Save the form. * On the menu click insert / Class module. * If you haven't already done so, turn on "require variable declaration". Inside the editor, click Tools / Options / Editor (tab) and check the "require variables declaration" box. * Immediately save the module, and name it clsFrm. * Type the following into the module (or cut and paste): Private WithEvents mfrm As Form Private Const cstrEvProc As String = "[Event Procedure]" The first line declares a private variable called mfrm and tells VBA that this class will SINK EVENTS for the form inside of this class. The second line declares a private constant cstrEvProc and places the text "[Event Procedure]" in the constant. * Next type the following into the module: Function mInit(lfrm As Form) Set mfrm = lfrm mfrm.BeforeUpdate = cstrEvProc End Function This creates a method of the class called mInit and passes in a form variable called lfrm. The set statements then saves the lfrm variable passed in into the mfrm variable that we created above. The next statement places the string "[Event Procedure]" into the BeforeUpdate property of the form mfrm. This requires an explanation. It turns out that if you have the actual text string "[Event Procedure]" (without the quotes) in any event property of any form or control, then that event will fire in the class. You can prove that to yourself by deleting this text in some property of some form or control in an existing project, cause that event to fire, and notice that the code no longer runs in your code behind form. Put that text string back and notice that the event code now runs in your code behind form. Pretty easy so far yes? To reiterate, we have declared a variable and a constant that are PRIVATE to the class, meaning that they can only be accessed from inside of the class. We created a method that we can use to pass in a reference or pointer to some form, we have saved that pointer to some form passed into this class instance to a variable in the top of our class, and we have placed the text "[Event Procedure]" into the BeforeUpdate event property of mfrm. At this point we have a form, with one of each control on the form. We also have a class which can be instantiated, and passed in a pointer to some form. The class can save the pointer to the form passed in and can activate the form to raise one specific event (BeforeUpdate). Do this much before we continue. This should take you just a few minutes to complete. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ################################################################################ If you have received this message in error, please contact the sender immediately and be aware that the use, copying, or dissemination of this information is prohibited. This email transmission contains information from NCI Information Systems, Inc. that may be considered privileged or confidential and is intended solely for the named recipient. ################################################################################ From jwcolby at colbyconsulting.com Mon Feb 9 15:50:19 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 09 Feb 2009 16:50:19 -0500 Subject: [AccessD] CREATE CLASSES AND EVENTS DEMO DATABASE In-Reply-To: <7E02B06E41E5404589EDDDA2BAA1C5A83EC953@sanex101.nciinc.com> References: <49907098.2050406@colbyconsulting.com> <7E02B06E41E5404589EDDDA2BAA1C5A83EC953@sanex101.nciinc.com> Message-ID: <4990A51B.1010105@colbyconsulting.com> Did you create a CLASS MODULE? Back where you clicked Insert on the tool bar, you have a choice of things to insert. If you click "Module" then a plain old module is created. Plain old modules cannot dim an object WithEvents. John W. Colby www.ColbyConsulting.com Hewson, Jim wrote: > John, > I'm using 2007 and it doesn't like the WithEvents in the clsFrm module. > It states it's "Only valid in object module. > Do I have it in the correct place? > > Jim > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Monday, February 09, 2009 12:06 PM > To: Access Developers discussion and problem solving > Subject: [AccessD] CREATE CLASSES AND EVENTS DEMO DATABASE > > > * Create a blank database > * Create a new form. Drag and drop one of each of the controls onto the > form. Save the form. > * On the menu click insert / Class module. > * If you haven't already done so, turn on "require variable > declaration". Inside the editor, click > Tools / Options / Editor (tab) and check the "require variables > declaration" box. > * Immediately save the module, and name it clsFrm. > > * Type the following into the module (or cut and paste): > > Private WithEvents mfrm As Form > Private Const cstrEvProc As String = "[Event Procedure]" > > The first line declares a private variable called mfrm and tells VBA > that this class will SINK > EVENTS for the form inside of this class. > > The second line declares a private constant cstrEvProc and places the > text "[Event Procedure]" in > the constant. > > * Next type the following into the module: > > Function mInit(lfrm As Form) > Set mfrm = lfrm > mfrm.BeforeUpdate = cstrEvProc > End Function > > This creates a method of the class called mInit and passes in a form > variable called lfrm. > > The set statements then saves the lfrm variable passed in into the mfrm > variable that we created > above. > > The next statement places the string "[Event Procedure]" into the > BeforeUpdate property of the form > mfrm. This requires an explanation. It turns out that if you have the > actual text string "[Event > Procedure]" (without the quotes) in any event property of any form or > control, then that event will > fire in the class. You can prove that to yourself by deleting this text > in some property of some > form or control in an existing project, cause that event to fire, and > notice that the code no longer > runs in your code behind form. Put that text string back and notice > that the event code now runs in > your code behind form. > > Pretty easy so far yes? To reiterate, we have declared a variable and a > constant that are PRIVATE > to the class, meaning that they can only be accessed from inside of the > class. We created a method > that we can use to pass in a reference or pointer to some form, we have > saved that pointer to some > form passed into this class instance to a variable in the top of our > class, and we have placed the > text "[Event Procedure]" into the BeforeUpdate event property of mfrm. > > At this point we have a form, with one of each control on the form. We > also have a class which can > be instantiated, and passed in a pointer to some form. The class can > save the pointer to the form > passed in and can activate the form to raise one specific event > (BeforeUpdate). > > Do this much before we continue. This should take you just a few > minutes to complete. > From JHewson at nciinc.com Mon Feb 9 16:01:25 2009 From: JHewson at nciinc.com (Hewson, Jim ) Date: Mon, 9 Feb 2009 16:01:25 -0600 Subject: [AccessD] CREATE CLASSES AND EVENTS DEMO DATABASE In-Reply-To: <4990A51B.1010105@colbyconsulting.com> References: <49907098.2050406@colbyconsulting.com><7E02B06E41E5404589EDDDA2BAA1C5A83EC953@sanex101.nciinc.com> <4990A51B.1010105@colbyconsulting.com> Message-ID: <7E02B06E41E5404589EDDDA2BAA1C5A83EC954@sanex101.nciinc.com> Duh! Thanks. Jim -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Monday, February 09, 2009 3:50 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] CREATE CLASSES AND EVENTS DEMO DATABASE Did you create a CLASS MODULE? Back where you clicked Insert on the tool bar, you have a choice of things to insert. If you click "Module" then a plain old module is created. Plain old modules cannot dim an object WithEvents. John W. Colby www.ColbyConsulting.com Hewson, Jim wrote: > John, > I'm using 2007 and it doesn't like the WithEvents in the clsFrm module. > It states it's "Only valid in object module. > Do I have it in the correct place? > > Jim > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Monday, February 09, 2009 12:06 PM > To: Access Developers discussion and problem solving > Subject: [AccessD] CREATE CLASSES AND EVENTS DEMO DATABASE > > > * Create a blank database > * Create a new form. Drag and drop one of each of the controls onto the > form. Save the form. > * On the menu click insert / Class module. > * If you haven't already done so, turn on "require variable > declaration". Inside the editor, click > Tools / Options / Editor (tab) and check the "require variables > declaration" box. > * Immediately save the module, and name it clsFrm. > > * Type the following into the module (or cut and paste): > > Private WithEvents mfrm As Form > Private Const cstrEvProc As String = "[Event Procedure]" > > The first line declares a private variable called mfrm and tells VBA > that this class will SINK > EVENTS for the form inside of this class. > > The second line declares a private constant cstrEvProc and places the > text "[Event Procedure]" in > the constant. > > * Next type the following into the module: > > Function mInit(lfrm As Form) > Set mfrm = lfrm > mfrm.BeforeUpdate = cstrEvProc > End Function > > This creates a method of the class called mInit and passes in a form > variable called lfrm. > > The set statements then saves the lfrm variable passed in into the mfrm > variable that we created > above. > > The next statement places the string "[Event Procedure]" into the > BeforeUpdate property of the form > mfrm. This requires an explanation. It turns out that if you have the > actual text string "[Event > Procedure]" (without the quotes) in any event property of any form or > control, then that event will > fire in the class. You can prove that to yourself by deleting this text > in some property of some > form or control in an existing project, cause that event to fire, and > notice that the code no longer > runs in your code behind form. Put that text string back and notice > that the event code now runs in > your code behind form. > > Pretty easy so far yes? To reiterate, we have declared a variable and a > constant that are PRIVATE > to the class, meaning that they can only be accessed from inside of the > class. We created a method > that we can use to pass in a reference or pointer to some form, we have > saved that pointer to some > form passed into this class instance to a variable in the top of our > class, and we have placed the > text "[Event Procedure]" into the BeforeUpdate event property of mfrm. > > At this point we have a form, with one of each control on the form. We > also have a class which can > be instantiated, and passed in a pointer to some form. The class can > save the pointer to the form > passed in and can activate the form to raise one specific event > (BeforeUpdate). > > Do this much before we continue. This should take you just a few > minutes to complete. > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ################################################################################ If you have received this message in error, please contact the sender immediately and be aware that the use, copying, or dissemination of this information is prohibited. This email transmission contains information from NCI Information Systems, Inc. that may be considered privileged or confidential and is intended solely for the named recipient. ################################################################################ From jwcolby at colbyconsulting.com Mon Feb 9 18:33:53 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 09 Feb 2009 19:33:53 -0500 Subject: [AccessD] Building a Control Scanner Message-ID: <4990CB71.4050600@colbyconsulting.com> I had intended to implement Stuart?s change log using his code however it is pretty specific to his application so we will (eventually) try to do the same thing with a more generic log. In order to set this up however I am going to build a control scanner and show you how that works. A form has a collection called the controls collection. In that collection will be a pointer to each control on the form. The basic structure of the control scanner is as follows: Private Function CtlScanner() Dim ctl As Control For Each ctl In mfrm.Controls Select Case ctl.ControlType Case acCheckBox Case acComboBox Case acCommandButton Case acListBox Case acOptionButton Case acOptionGroup Case acPage Case acSubform 'subform controls Case acTabCtl 'tab pages are handled in the tab control Case acTextBox 'Find all text boxes and load class to change backcolor Case acToggleButton End Select Next ctl End Function ? Cut and paste that into the clsFrm down at the bottom. Next we need to cause the control scanner to be called when mInit runs so add a new line to the mInit function as below: Function mInit(lfrm As Form) Set mfrm = lfrm mfrm.BeforeUpdate = cstrEvProc mfrm.OnClose = cstrEvProc CtlScanner End Function Now, when mInit executes it drops into CtlScanner and runs through all of the controls in the form?s Control collection. At the moment it doesn?t do anything but the scanner runs. If you place your cursor over the acCheckBox (or any of the constants) and hit Shift-F2, you will be taken to a list of the constants. Notice that I did not place every constant in the case statement, though you are free to do so. The ones I left out are not data aware controls, nor controls that you normally write code for. So these are the major players and you now have a way to find out that they exist in your form class and do something. That something will be to load a class and save a pointer to that class. In preparation for doing more with the form class we will add a private colCtls variable in the form header, and start to USE the Initialize and Terminate events of the class. ? In the header of the class insert the following line: Private colCtls As Collection ? Also replace the message box code in the Class_Initialize and Class_Terminate with code that initializes and cleans up a collection pointer for us: Private Sub Class_Initialize() Set colCtls = New Collection End Sub Private Sub Class_Terminate() Set colCtls = Nothing End Sub In this lecture we have created a method to iterate the form?s control collection. We have dimensioned a collection to hold a class for each control type sometime in the future, and we have modified the Initialize and Terminate events to set up and tear down that collection automatically as the class opens and closes. -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Mon Feb 9 19:33:16 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 09 Feb 2009 20:33:16 -0500 Subject: [AccessD] Building a control class Message-ID: <4990D95C.1030709@colbyconsulting.com> In this lecture we will build a class to hold a control. The problem is that while we can build a class for a generic control, we can?t sink events from generic controls because VBA has no idea what kinds of event any class might raise. Thus the class has to be for a specific type of control, for example a combo box or a text box. ? From the database window, click Insert / Class. ? Immediately save the new class as clsCtlCbo ? Place the following code in the header of the class Private WithEvents mctlCbo As ComboBox Private Const cstrEvProc As String = "[Event Procedure]" This should be starting to look familiar. The first line dimensions a variable for a combo control, and dimensions it WithEvents, which means that this class will sink events for the control stored in that variable. cstrEvProc is already familiar and is the text which when placed in an event property ?hooks? that event and causes the control to Raise that event. ? In the left combo box select the class. The editor will insert an Initialize event stub. We will not use the Initialize event at this time. ? In the right combo box, select the Terminate event. The editor will insert a Terminate event stub. ? In the Terminate event stub insert the following code: Private Sub Class_Initialize() Set mctlCbo = Nothing End Sub ? Again, this code should be looking familiar. We are telling the class that when it terminates, to clean up the pointer to the combo box. ? Create a mInit() function as follows: Function mInit(lctlCbo As ComboBox) Set mctlCbo = lctlCbo mctlCbo.BeforeUpdate = cstrEvProc mctlCbo.AfterUpdate = cstrEvProc mctlCbo.OnGotFocus = cstrEvProc mctlCbo.OnLostFocus = cstrEvProc End Function This mInit passes in a pointer to a control in lctlCbo. It then saves that pointer to mctlCbo, dimensioned up in the class header. Finally it ?hooks? four events of the combo, the BeforeUpdate, AfterUpdate, GotFocus and LostFocus. ? In the left combo box in the editor, select mctlCbo. The editor will create the BeforeUpdate event stub. In the right combo select the AfterUpdate event and the editor will create an event stub for that event. Repeat for the GotFocus and LostFocus. ? In these events place the following code: Private Sub mctlCbo_AfterUpdate() MsgBox "AfterUpdate: " & mctlCbo.Name End Sub Private Sub mctlCbo_BeforeUpdate(Cancel As Integer) MsgBox "BeforeUpdate: " & mctlCbo.Name End Sub Private Sub mctlCbo_GotFocus() MsgBox "GotFocus: " & mctlCbo.Name End Sub Private Sub mctlCbo_LostFocus() MsgBox "LostFocus: " & mctlCbo.Name End Sub ? Save and close clsCtlCbo. This lecture has created a new clsCtlCbo. We are starting to see a pattern emerge, where we have a private variable in the top of the class dimmed WithEvents to hold a pointer to an object, in this case a combo control. We have a Terminate event of the class that cleans up the pointer when the class closes. We have an mInit() event that passes in a pointer to the object, sets the local variable equal to the passed in pointer, and then ?hooks? events of the object passed in by setting the properties to a specific string "[Event Procedure]" by using a constant declared in the class header. We then have event sink subs which will execute when the given event fires. At this time all that the event sinks will do is pop up a messagebox but that is sufficient to varify that the events are firing. -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Mon Feb 9 19:52:23 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 09 Feb 2009 20:52:23 -0500 Subject: [AccessD] MODIFY THE FORM CLASS TO LOAD THE NEW COMBO CLASS. Message-ID: <4990DDD7.1010608@colbyconsulting.com> The next thing we have to do is tell the form how to load an instance of the clsCtlCbo for every combo in the form. To do this we will use the scanner. ? Open clsFrm. Go down to ctlScanner. Modify the case statement, case acComboBox as follows: Case acComboBox Dim lclsCtlCbo As clsCtlCbo Set lclsCtlCbo = New clsCtlCbo lclsCtlCbo.mInit ctl colCtls.Add lclsCtlCbo, ctl.Name Case acCommandButton The Dim statement dimensions an instance of the new clsCtlCbo. The Set statement creates an instance of that class. The mInit statement callse sht class mInit(0 method passing in a pointer to the current control. The last statement stores the class instance in the collection colCtls, keyed on the control name. ? Save the clsFrm. ? Open the form. ? Click into the combo control. The GotFocus event should fire and display a message box. Click out of the combo box. The LostEvent event should fire and display a message box. ? Type anything into the combo. Since the combo isn?t bound to anything, nor in fact even loading anything, the text typed in will be accepted. When you hit enter, the BeforeUpdate will fire and display a message box. Then the AfterUpdate will fire, then the LostFocus will fire. What we have demonstrated is that the form?s ctlScanner is in fact finding, loading and storing a class for the one combo on the form. The events that we sink in the class are firing. Good stuff. ? Open the form in design view. ? Add two more combo controls into the form. ? Save the form and open the form again. Click into each combo control in turn. ? Notice that the GotFocus and LostFocue events fire for each combo in the form. What we have demonstrated is that the scanner is loading an instance of clsCtlCbo for EVERY combo in the form, and that the events fire for every combo in the form. This is the magic of a framework. The form class is loaded for any form you desire. The form class knows how to load classes for various controls. The scanner loads the control classes and the control classes know how to do some specific thing(s) every time. No more programming the combo to do that thing in for every combo in every form, it just does it. Now what kinds of things might a combo control do? How about store its old value in a log table every time the value changes? How about turn a different back ground color when it gets the focus and back to its original color when the control loses the focus? How about a double-click event that opens a form for entering new data into the list behind the combo? How about requerying ?dependent objects?, i.e. other combos or even subforms that will pull a different set of records depending on what the current value of this combo is? How about moving to a specific record of the form if this is a record selector combo? I call these things ?behaviors? of an object. If you can imagine it, you now have a place to store the code to make behaviors happen, and you have a method to cause every combo to perform that behavior. I am going to stop now to allow you to absorb what you have learned. -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Mon Feb 9 21:43:57 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 09 Feb 2009 22:43:57 -0500 Subject: [AccessD] Classes and Events - Stay with us Message-ID: <4990F7FD.3000705@colbyconsulting.com> I would urge all who are interested to stay with us on this. I have intentionally kept the individual emails small so that specific concepts could be learned and absorbed before moving on. This means that the number of emails will be larger however, which might appear daunting. If you have questions about any individual part, please speak up. Programming is fun, and classes and events are a very powerful tool. Anyone who can program events behind a form can program those same events in classes. Each email should take you perhaps 1/2 hour to one hour to complete. In just a few hours you too can learn things that will take your skills to a new level. Believe me, once you understand and can apply these ideas your applications will never be the same. You will bring a whole new level of skill and ability to your career. -- John W. Colby www.ColbyConsulting.com From darren at activebilling.com.au Mon Feb 9 23:28:23 2009 From: darren at activebilling.com.au (Darren D) Date: Tue, 10 Feb 2009 16:28:23 +1100 Subject: [AccessD] A2003: Fire Multiple Functions at different times Message-ID: <023801c98b40$6619bb60$131b910a@denzilnote> Hi Team I have a well used main form that has quite a few procedures that fire when tabs are clicked or buttons pushed etc What I'd like to do is move some of the procedure (function) names to a 'function' table and have theses procedures fired off at durations stored in this 'function' table I have this in place now for 1 procedure that runs every 10 minutes using the timer on a hidden form bound to this 'function' table This hidden form opens and sits hidden each time the main form is opened and is closed when this main form is closed I'm sure someone here must have done something like this in the past So I just wanted to know what logic to apply to the 'function' holding table and how to handle multiple, competing and even conflicting durations Perhaps not necessarily with the timer of this hidden form I had in mind... Table Name = tblFunctionToBeRun Field1 = ProcedureName = String (EG: a value might be fGetUserName()) Field2 = HowOften = Number (EG: A value might be 10 to indicate run every 10 Minutes or 60 to run every hour) Field3 = TimeStamp = TimeDate fields (I can get the relative functions to write back just so I can see if it has occurred) And so on Many thanks in advance Darren From max.wanadoo at gmail.com Mon Feb 9 23:44:51 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 10 Feb 2009 05:44:51 -0000 Subject: [AccessD] A2003: Fire Multiple Functions at different times In-Reply-To: <023801c98b40$6619bb60$131b910a@denzilnote> References: <023801c98b40$6619bb60$131b910a@denzilnote> Message-ID: <49911458.1185300a.147d.ffffd871@mx.google.com> Darren, I have a program which I call The Magic Roundabout. Basically there for what you want but a lot more powerful in that it has Batches or Classes of functions to run. Schedules etc. I can send the whole caboodle over if you want. I have stopped development in it but would like somebody to continue what has been done so far. The only caveat is that any improvements are offered to the list via a complete mdb. The idea is that windows scheduler loads The Magic Roundabout at a given time (or at boot)and it then sits there running in the background and will do "whatever", singularly or repeatedly or at intervals - as determined by the setup by the user. All highly configurable. One thing it does, for example, is that at a given time it shells out and loads TrueCrypt,mounts the drives (thus making the BE available to users) and then later in the day unmounts the TrueCrypt drives thus users do not see or even known that the BE runs is an encrypted pseudo drive. But if Roundabout is loaded outside of the time params for this particular event then it will not mount truecrypt thus protecting it. Let me know Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Darren D Sent: 10 February 2009 05:28 To: 'Access Developers discussion and problem solving' Subject: [AccessD] A2003: Fire Multiple Functions at different times Hi Team I have a well used main form that has quite a few procedures that fire when tabs are clicked or buttons pushed etc What I'd like to do is move some of the procedure (function) names to a 'function' table and have theses procedures fired off at durations stored in this 'function' table I have this in place now for 1 procedure that runs every 10 minutes using the timer on a hidden form bound to this 'function' table This hidden form opens and sits hidden each time the main form is opened and is closed when this main form is closed I'm sure someone here must have done something like this in the past So I just wanted to know what logic to apply to the 'function' holding table and how to handle multiple, competing and even conflicting durations Perhaps not necessarily with the timer of this hidden form I had in mind... Table Name = tblFunctionToBeRun Field1 = ProcedureName = String (EG: a value might be fGetUserName()) Field2 = HowOften = Number (EG: A value might be 10 to indicate run every 10 Minutes or 60 to run every hour) Field3 = TimeStamp = TimeDate fields (I can get the relative functions to write back just so I can see if it has occurred) And so on Many thanks in advance Darren -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Mon Feb 9 23:51:12 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 10 Feb 2009 05:51:12 -0000 Subject: [AccessD] Classes and Events - Stay with us In-Reply-To: <4990F7FD.3000705@colbyconsulting.com> References: <4990F7FD.3000705@colbyconsulting.com> Message-ID: <499115d5.19e7300a.0a54.2a58@mx.google.com> JC: Remember the time zone difference. I am following but waiting until there is a bunch of stuff so that I can do it in one session. I note you said 1/2 to 1 hour, but for me it takes just a few minutes - I must be good! So I am letting it mount up. All being read and stored though. Thanks Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 10 February 2009 03:44 To: Access Developers discussion and problem solving Subject: [AccessD] Classes and Events - Stay with us I would urge all who are interested to stay with us on this. I have intentionally kept the individual emails small so that specific concepts could be learned and absorbed before moving on. This means that the number of emails will be larger however, which might appear daunting. If you have questions about any individual part, please speak up. Programming is fun, and classes and events are a very powerful tool. Anyone who can program events behind a form can program those same events in classes. Each email should take you perhaps 1/2 hour to one hour to complete. In just a few hours you too can learn things that will take your skills to a new level. Believe me, once you understand and can apply these ideas your applications will never be the same. You will bring a whole new level of skill and ability to your career. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Tue Feb 10 02:35:29 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 10 Feb 2009 09:35:29 +0100 Subject: [AccessD] Classes and Events - Stay with us Message-ID: Hi Max You are supposed to understand it as well. That's what the next 27 to 57 minutes are for! /gustav >>> max.wanadoo at gmail.com 10-02-2009 06:51 >>> .. I note you said 1/2 to 1 hour, but for me it takes just a few minutes - I must be good! From Gustav at cactus.dk Tue Feb 10 02:46:09 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 10 Feb 2009 09:46:09 +0100 Subject: [AccessD] Classes and Events - Stay with us Message-ID: Hi John You could have been a teacher. Thanks for allocation some of your time for this series. If some of you are still in doubt if this stuff is useful, think twice. Years ago Shamil showed me how and I agree, it is like moving to the next volume in the series on how to program in VBA. By the way, an article or so from you on the subject once was at http://www.databaseadvisors.com but now I can't locate it. Could be relevant to post a link if it is still there. /gustav >>> jwcolby at colbyconsulting.com 10-02-2009 04:43 >>> I would urge all who are interested to stay with us on this. I have intentionally kept the individual emails small so that specific concepts could be learned and absorbed before moving on. This means that the number of emails will be larger however, which might appear daunting. If you have questions about any individual part, please speak up. Programming is fun, and classes and events are a very powerful tool. Anyone who can program events behind a form can program those same events in classes. Each email should take you perhaps 1/2 hour to one hour to complete. In just a few hours you too can learn things that will take your skills to a new level. Believe me, once you understand and can apply these ideas your applications will never be the same. You will bring a whole new level of skill and ability to your career. -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Tue Feb 10 06:36:01 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 10 Feb 2009 07:36:01 -0500 Subject: [AccessD] Classes and Events - Stay with us In-Reply-To: <499115d5.19e7300a.0a54.2a58@mx.google.com> References: <4990F7FD.3000705@colbyconsulting.com> <499115d5.19e7300a.0a54.2a58@mx.google.com> Message-ID: <499174B1.4000007@colbyconsulting.com> Max, Glad to see that you are taking it in. You are correct, it might very well take only a few minutes for some of them, but others lectures may have code that some group members will need to study a bit to understand what it does. Just keep reading and I PROMISE you will be using Classes and Events in just a few short hours. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > JC: Remember the time zone difference. > > I am following but waiting until there is a bunch of stuff so that I can do > it in one session. I note you said 1/2 to 1 hour, but for me it takes just > a few minutes - I must be good! > > So I am letting it mount up. > > All being read and stored though. > Thanks > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 10 February 2009 03:44 > To: Access Developers discussion and problem solving > Subject: [AccessD] Classes and Events - Stay with us > > I would urge all who are interested to stay with us on this. I have > intentionally kept the > individual emails small so that specific concepts could be learned and > absorbed before moving on. > This means that the number of emails will be larger however, which might > appear daunting. > > If you have questions about any individual part, please speak up. > > Programming is fun, and classes and events are a very powerful tool. Anyone > who can program events > behind a form can program those same events in classes. > > Each email should take you perhaps 1/2 hour to one hour to complete. In > just a few hours you too > can learn things that will take your skills to a new level. Believe me, > once you understand and can > apply these ideas your applications will never be the same. You will bring > a whole new level of > skill and ability to your career. > From jwcolby at colbyconsulting.com Tue Feb 10 06:53:06 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 10 Feb 2009 07:53:06 -0500 Subject: [AccessD] Classes and Events - Stay with us In-Reply-To: References: Message-ID: <499178B2.2060807@colbyconsulting.com> Thanks for the encouragement to me and to "the class". It is very important to those who haven't been exposed to classes and events to hear from those who use them how useful this stuff is. Without that input from other developers it can just be "yea, yea, JC's goin on about classes again". I encourage any list members who use Classes and Events in Classes to speak up and tell your own experiences using this stuff. You might also discuss how it helped when it came time to learn .Net. Thanks, John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > You could have been a teacher. Thanks for allocation some of your time for this series. > > If some of you are still in doubt if this stuff is useful, think twice. Years ago Shamil showed me how and I agree, it is like moving to the next volume in the series on how to program in VBA. > > By the way, an article or so from you on the subject once was at http://www.databaseadvisors.com but now I can't locate it. > Could be relevant to post a link if it is still there. > > /gustav > > >>>> jwcolby at colbyconsulting.com 10-02-2009 04:43 >>> > I would urge all who are interested to stay with us on this. I have intentionally kept the > individual emails small so that specific concepts could be learned and absorbed before moving on. > This means that the number of emails will be larger however, which might appear daunting. > > If you have questions about any individual part, please speak up. > > Programming is fun, and classes and events are a very powerful tool. Anyone who can program events > behind a form can program those same events in classes. > > Each email should take you perhaps 1/2 hour to one hour to complete. In just a few hours you too > can learn things that will take your skills to a new level. Believe me, once you understand and can > apply these ideas your applications will never be the same. You will bring a whole new level of > skill and ability to your career. > From fuller.artful at gmail.com Tue Feb 10 10:28:07 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Tue, 10 Feb 2009 11:28:07 -0500 Subject: [AccessD] Classes and Events - Stay with us In-Reply-To: <499178B2.2060807@colbyconsulting.com> References: <499178B2.2060807@colbyconsulting.com> Message-ID: <29f585dd0902100828v468db4f1r770244bfd923852f@mail.gmail.com> Go for it, JC! I'm typing in your examples as you post them and enjoying the experience. Arthur From DWUTKA at Marlow.com Tue Feb 10 10:22:13 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 10 Feb 2009 10:22:13 -0600 Subject: [AccessD] Classes and Events - Stay with us In-Reply-To: <499178B2.2060807@colbyconsulting.com> References: <499178B2.2060807@colbyconsulting.com> Message-ID: Don't ever think that a lecture on Classes and Events (and Collections) is 'yea yea JC's goin on about classes again'!!! There are code samples all over the net. Even a little bit of 'tutorial' information on how it works. But there is a pitiful lack of explaining the actual concepts behind classes. To C programmers, this is almost intuitive, because one of the true bonuses of C is that it allows inheritance. And VB.Net is class based. But VBA is still in the VB 6 subset, which even though it has classes, and can use Implements (a bastardized version of inheritance), it is far too easy to fall into a function dependent mode. So Go JC Go! ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, February 10, 2009 6:53 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Classes and Events - Stay with us Thanks for the encouragement to me and to "the class". It is very important to those who haven't been exposed to classes and events to hear from those who use them how useful this stuff is. Without that input from other developers it can just be "yea, yea, JC's goin on about classes again". I encourage any list members who use Classes and Events in Classes to speak up and tell your own experiences using this stuff. You might also discuss how it helped when it came time to learn .Net. Thanks, John W. Colby www.ColbyConsulting.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From Lambert.Heenan at AIG.com Tue Feb 10 11:01:43 2009 From: Lambert.Heenan at AIG.com (Heenan, Lambert) Date: Tue, 10 Feb 2009 12:01:43 -0500 Subject: [AccessD] Classes and Events - Stay with us In-Reply-To: References: <499178B2.2060807@colbyconsulting.com> Message-ID: Drew slips up!!! Shock! Of course it's C++ that has inheritance (and C# and ObjectC). The venerable C does not. Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, February 10, 2009 11:22 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Classes and Events - Stay with us Don't ever think that a lecture on Classes and Events (and Collections) is 'yea yea JC's goin on about classes again'!!! There are code samples all over the net. Even a little bit of 'tutorial' information on how it works. But there is a pitiful lack of explaining the actual concepts behind classes. To C programmers, this is almost intuitive, because one of the true bonuses of C is that it allows inheritance. And VB.Net is class based. But VBA is still in the VB 6 subset, which even though it has classes, and can use Implements (a bastardized version of inheritance), it is far too easy to fall into a function dependent mode. So Go JC Go! ;) Drew From jwcolby at colbyconsulting.com Tue Feb 10 11:08:08 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 10 Feb 2009 12:08:08 -0500 Subject: [AccessD] Classes and Events - EVENTS NOT REQUIRED Message-ID: <4991B478.1060501@colbyconsulting.com> To this point the classes we have looked at were specifically designed to allow you to ?wrap? an object that generates events and add code and variables to process those events. This lecture will demonstrate that classes have other uses and do not have to wrap other objects. The class introduced today will be clsTimer, a means of timing events (things happening) in your code. The class is perhaps the simplest class I have ever written, and perhaps the simplest class you will ever see. ? Click Insert / Class ? Save immediately as clsTimer ? Insert the following code into the class: Private Declare Function apiGetTime Lib "winmm.dll" _ Alias "timeGetTime" () As Long Private lngStartTime As Long Private Sub Class_Initialize() StartTimer End Sub Function EndTimer() EndTimer = apiGetTime() - lngStartTime End Function Sub StartTimer() lngStartTime = apiGetTime() End Sub ? Compile and save the class. Notice that in the header of the class we have a function definition apiGetTime that calls out to Windows. This function gets the windows tick timer and has a resolution of 1 millisecond, or one thousandth of a second. This simply means that we can?t time anything that takes less than one thousandth of a second without resorting to timing it several times. It returns a long integer that is simply an absolute number of ?ticks?. Since when? It doesn?t matter, it is just ?this is the tick count RIGHT NOW?. To compute a ?time? (and we aren?t really doing that, we are calculating a time since the first time), you get the tick count and store it, then later you get another tick and compare it to the first tick. The difference is the number of 1000ths of a second since the first tick count. Notice that we have no mInit() method in this class. Notice also that the Class_Initialize calls the StartTimer() function. As you know now, the Class_Initialize is a class event that fires as the class loads, so this tells the class to load the first tick time as soon as the class instance loads. In the header of the class we dimensioned a long variable lngStartTime. This will be used to store the starting tick count. StartTimer() simply calls out to Windows, gets the current tick count from Windows, and stores that count to lngStartTime. EndTimer() simply calls out to Windows again to get the current tick count, subtracts the current count to the previous count stored in lngStartTime and returns that count to you the programmer. That?s it folks! This class has in the header a function definition to call Windows and a place to store the count. In the body of the class it then has two methods to start the ?timer? and to return the ticks since the timer started. You are not going to see many classes simpler than that. So let?s discuss why we need to encapsulate this in a class. You might be saying that you can do the same thing without the class but a class allows you to create as many of these timers as you want. Let?s build some test code to see how this thing works and why we might need several. ? In the tools menu click Insert / MODULE. We are building a normal module this time, NOT a class module. ? Immediately save the module as basTimerTest ? Into this new module insert the following code: Function TmrTest() Dim lngCtr1 As Long Dim lngCtr2 As Long Dim clsTmr1 As clsTimer Dim clsTmr2 As clsTimer Set clsTmr1 = New clsTimer For lngCtr1 = 1 To 5 Set clsTmr2 = New clsTimer For lngCtr2 = 1 To 100000 Pi Next lngCtr2 Debug.Print clsTmr2.EndTimer Next lngCtr1 Debug.Print clsTmr1.EndTimer End Function Function Pi() As Double Dim dblPi As Double dblPi = 4 * Atn(1) Pi = dblPi End Function Notice that we dim two timers, then we SET the timers on the outside of their respective loops. As you know, the SET statement loads the class, at which point the Class_Initialize fires which grabs the first timer tick from windows. The Debug.Print statement simply calls the .EndTimer method of the class and prints it to the debug window. Voila, a timer, with a resolution of one thousandth of a second. TmrTest simulates a real world code where you have two loops, and inner loop and an outer loop. The inner loop times how long it takes to calculate Pi. Notice that modern computers are so fast that I have to do it a hundred thousand times in order to get enough ?tick counts? (thousandths of a second) to even get a number to use. The outer loop simply times how long it takes to run the inner loop 5 times. I have intentionally kept this thing simple, but your outer loop might time how long it takes to read a thousand records and the inner loop might be replaced with timing how long it takes to ? transform a string from comma delimited to pipe delimited or something like that. In this lecture we have demonstrated that a class encapsulates all of the code required to perform its function, plus the variables required to store its data. It also demonstrates that you can use as many instances of the class as you need. If you need one or a hundred timers, you just dim and SET the variables and you are off to the races so to speak. Classes are used to encapsulate code and data required to implement a system. You?re your imagination is the only limit to what that system can be. -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Tue Feb 10 11:17:36 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 10 Feb 2009 12:17:36 -0500 Subject: [AccessD] Classes and Events - Stay with us In-Reply-To: References: <499178B2.2060807@colbyconsulting.com> Message-ID: <4991B6B0.7000806@colbyconsulting.com> > Don't ever think that a lecture on Classes and Events (and Collections) is 'yea yea JC's goin on about classes again'!!! Thanks for the support Drew! Drew makes a good point that VBA classes are NOT the same as VB classes or VB.Net classes. I have intentionally left out inheritance since we don't get that in VBA so why muddy the waters. What we have is very powerful however so do not even think that you might as well not learn them. VB classes are all that we have in VBA classes plus more, whatever you learn here will stand you in good stead if you move on. More importantly it will make many things soooo much simpler to do in our Access applications. I just posted a timer class lecture. It is absolutely possible to do the same basic thing using a function and a static collection (to store the start times). But the programming is messy, the "how does this thing work" is harder to understand, and the time to access a collection could impact accuracy, especially if you have a bunch of timers. What you will find, and what you will hear from many people is that whatever you can do with classes can be done without them. That is pretty much true but you may rest assured that often a class will yield an elegant and simple solution relative to the same thing done without classes. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > Don't ever think that a lecture on Classes and Events (and Collections) > is 'yea yea JC's goin on about classes again'!!! > > There are code samples all over the net. Even a little bit of > 'tutorial' information on how it works. But there is a pitiful lack of > explaining the actual concepts behind classes. To C programmers, this > is almost intuitive, because one of the true bonuses of C is that it > allows inheritance. And VB.Net is class based. But VBA is still in the > VB 6 subset, which even though it has classes, and can use Implements (a > bastardized version of inheritance), it is far too easy to fall into a > function dependent mode. > > So Go JC Go! ;) > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, February 10, 2009 6:53 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Classes and Events - Stay with us > > Thanks for the encouragement to me and to "the class". It is very > important to those who haven't > been exposed to classes and events to hear from those who use them how > useful this stuff is. > Without that input from other developers it can just be "yea, yea, JC's > goin on about classes again". > > I encourage any list members who use Classes and Events in Classes to > speak up and tell your own > experiences using this stuff. You might also discuss how it helped when > it came time to learn .Net. > > Thanks, > > John W. Colby > www.ColbyConsulting.com > > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > > From andy at minstersystems.co.uk Tue Feb 10 11:24:16 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Tue, 10 Feb 2009 17:24:16 -0000 Subject: [AccessD] Classes and Events - Stay with us In-Reply-To: <499178B2.2060807@colbyconsulting.com> Message-ID: <1AB57BC3BB6A4C57A6B51FD9F4CFA133@MINSTER> I've felt that the list has been quiet of late so it's brilliant to see it firing again. Great stuff JC. Andy Lacey -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 10 February 2009 12:53 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Classes and Events - Stay with us Thanks for the encouragement to me and to "the class". It is very important to those who haven't been exposed to classes and events to hear from those who use them how useful this stuff is. Without that input from other developers it can just be "yea, yea, JC's goin on about classes again". I encourage any list members who use Classes and Events in Classes to speak up and tell your own experiences using this stuff. You might also discuss how it helped when it came time to learn .Net. Thanks, John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > You could have been a teacher. Thanks for allocation some of your time > for this series. > > If some of you are still in doubt if this stuff is useful, think > twice. Years ago Shamil showed me how and I agree, it is like moving > to the next volume in the series on how to program in VBA. > > By the way, an article or so from you on the subject once was at > http://www.databaseadvisors.com but now I can't locate it. Could be > relevant to post a link if it is still there. > > /gustav > > >>>> jwcolby at colbyconsulting.com 10-02-2009 04:43 >>> > I would urge all who are interested to stay with us on this. I have > intentionally kept the > individual emails small so that specific concepts could be learned and absorbed before moving on. > This means that the number of emails will be larger however, which might appear daunting. > > If you have questions about any individual part, please speak up. > > Programming is fun, and classes and events are a very powerful tool. > Anyone who can program events > behind a form can program those same events in classes. > > Each email should take you perhaps 1/2 hour to one hour to complete. > In just a few hours you too > can learn things that will take your skills to a new level. Believe me, once you understand and can > apply these ideas your applications will never be the same. You will bring a whole new level of > skill and ability to your career. > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From fahooper at trapo.com Tue Feb 10 11:06:37 2009 From: fahooper at trapo.com (Fred Hooper) Date: Tue, 10 Feb 2009 12:06:37 -0500 Subject: [AccessD] Classes and Events - Stay with us In-Reply-To: <4990F7FD.3000705@colbyconsulting.com> Message-ID: <598CD44B32BB479B8B1C0C19B7BC5D4F@FRED6998B25045> I'm finding these *very* interesting; they are snapping the concepts into focus as you intended. A request (for now or later): A list of the titles in the order that they should be studied. Thanks, Fred Hooper -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Monday, February 09, 2009 10:44 PM To: Access Developers discussion and problem solving Subject: [AccessD] Classes and Events - Stay with us I would urge all who are interested to stay with us on this. I have intentionally kept the individual emails small so that specific concepts could be learned and absorbed before moving on. This means that the number of emails will be larger however, which might appear daunting. If you have questions about any individual part, please speak up. Programming is fun, and classes and events are a very powerful tool. Anyone who can program events behind a form can program those same events in classes. Each email should take you perhaps 1/2 hour to one hour to complete. In just a few hours you too can learn things that will take your skills to a new level. Believe me, once you understand and can apply these ideas your applications will never be the same. You will bring a whole new level of skill and ability to your career. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Tue Feb 10 11:36:54 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Tue, 10 Feb 2009 09:36:54 -0800 Subject: [AccessD] Classes and Events - Stay with us In-Reply-To: <499178B2.2060807@colbyconsulting.com> References: <499178B2.2060807@colbyconsulting.com> Message-ID: I can definitely speak to that, John. Every bit of ADO programming and all my work with classes helped reduce the steep learning curve for .Net. In .Net, it is definitely NOT DONE to copy and paste code here, there and everywhere. Instead you create helper classes to contain the code and then call into those helper classes when you need to do the same thing time and again. We create our own control objects, which are kind of like mini subforms for those who haven't yet made the .Net leap, and give them their own methods and properties and appearance that fit our usage and the look of our apps. We have ONE combobox control. It gets populated through a helper class, it has a streamlined interface, and it looks and behaves consistently across the application. If we need to change its behavior, we need do it only in one place, not in every one of the hundreds of forms, subforms and user controls we have in our applications. Like you, I learned from Shamil. I can remember reading his DEEP article and falling madly in love! LOL Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, February 10, 2009 4:53 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Classes and Events - Stay with us Thanks for the encouragement to me and to "the class". It is very important to those who haven't been exposed to classes and events to hear from those who use them how useful this stuff is. Without that input from other developers it can just be "yea, yea, JC's goin on about classes again". I encourage any list members who use Classes and Events in Classes to speak up and tell your own experiences using this stuff. You might also discuss how it helped when it came time to learn .Net. Thanks, John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > You could have been a teacher. Thanks for allocation some of your time for this series. > > If some of you are still in doubt if this stuff is useful, think twice. Years ago Shamil showed me how and I agree, it is like moving to the next volume in the series on how to program in VBA. > > By the way, an article or so from you on the subject once was at http://www.databaseadvisors.com but now I can't locate it. > Could be relevant to post a link if it is still there. > > /gustav > > >>>> jwcolby at colbyconsulting.com 10-02-2009 04:43 >>> > I would urge all who are interested to stay with us on this. I have > intentionally kept the individual emails small so that specific concepts could be learned and absorbed before moving on. > This means that the number of emails will be larger however, which might appear daunting. > > If you have questions about any individual part, please speak up. > > Programming is fun, and classes and events are a very powerful tool. > Anyone who can program events behind a form can program those same events in classes. > > Each email should take you perhaps 1/2 hour to one hour to complete. > In just a few hours you too can learn things that will take your > skills to a new level. Believe me, once you understand and can apply > these ideas your applications will never be the same. You will bring a whole new level of skill and ability to your career. > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Feb 10 11:54:46 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 10 Feb 2009 12:54:46 -0500 Subject: [AccessD] Classes and Events - Feedback Message-ID: <4991BF66.1080302@colbyconsulting.com> Any "instructor" needs feedback on how they are doing. Just so I can get a feel for how much further to take this and in what detail, could I get a show of hands on who is following the thread. Perhaps: 1) Glancing at it 2) Reading each email 3) Studying each email 4) More detail would be nice 5) Detail is just about right 6) Too much detail 7) Irrelevant detail 8) How would I .... -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Tue Feb 10 12:07:32 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 10 Feb 2009 13:07:32 -0500 Subject: [AccessD] Classes and Events - Stay with us In-Reply-To: References: <499178B2.2060807@colbyconsulting.com> Message-ID: <4991C264.3020003@colbyconsulting.com> > Like you, I learned from Shamil. I can remember reading his DEEP article and falling madly in love! LOL Charlotte, To give hope to those reading this thread, I remember reading Shamil's DEEP articles and going "WTF over?". It took me three times, over two years before I finally "got it". I am hopeful that by breaking this stuff down into bite size pieces with enough explanation and a place to discuss it, our list members can learn it quickly and easily. This stuff is NOT tough, but it IS different! I am convinced though that it can be learned in just a few hours, with enough encouragement and sufficient detail. John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > I can definitely speak to that, John. Every bit of ADO programming and > all my work with classes helped reduce the steep learning curve for > .Net. In .Net, it is definitely NOT DONE to copy and paste code here, > there and everywhere. Instead you create helper classes to contain the > code and then call into those helper classes when you need to do the > same thing time and again. We create our own control objects, which are > kind of like mini subforms for those who haven't yet made the .Net leap, > and give them their own methods and properties and appearance that fit > our usage and the look of our apps. We have ONE combobox control. It > gets populated through a helper class, it has a streamlined interface, > and it looks and behaves consistently across the application. If we > need to change its behavior, we need do it only in one place, not in > every one of the hundreds of forms, subforms and user controls we have > in our applications. > > Like you, I learned from Shamil. I can remember reading his DEEP > article and falling madly in love! LOL > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, February 10, 2009 4:53 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Classes and Events - Stay with us > > Thanks for the encouragement to me and to "the class". It is very > important to those who haven't been exposed to classes and events to > hear from those who use them how useful this stuff is. > Without that input from other developers it can just be "yea, yea, JC's > goin on about classes again". > > I encourage any list members who use Classes and Events in Classes to > speak up and tell your own experiences using this stuff. You might also > discuss how it helped when it came time to learn .Net. > > Thanks, > > John W. Colby > www.ColbyConsulting.com > > > Gustav Brock wrote: >> Hi John >> >> You could have been a teacher. Thanks for allocation some of your time > for this series. >> If some of you are still in doubt if this stuff is useful, think > twice. Years ago Shamil showed me how and I agree, it is like moving to > the next volume in the series on how to program in VBA. >> By the way, an article or so from you on the subject once was at > http://www.databaseadvisors.com but now I can't locate it. >> Could be relevant to post a link if it is still there. >> >> /gustav >> >> >>>>> jwcolby at colbyconsulting.com 10-02-2009 04:43 >>> >> I would urge all who are interested to stay with us on this. I have >> intentionally kept the individual emails small so that specific > concepts could be learned and absorbed before moving on. >> This means that the number of emails will be larger however, which > might appear daunting. >> If you have questions about any individual part, please speak up. >> >> Programming is fun, and classes and events are a very powerful tool. >> Anyone who can program events behind a form can program those same > events in classes. >> Each email should take you perhaps 1/2 hour to one hour to complete. >> In just a few hours you too can learn things that will take your >> skills to a new level. Believe me, once you understand and can apply >> these ideas your applications will never be the same. You will bring > a whole new level of skill and ability to your career. > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From Lambert.Heenan at AIG.com Tue Feb 10 12:07:04 2009 From: Lambert.Heenan at AIG.com (Heenan, Lambert) Date: Tue, 10 Feb 2009 13:07:04 -0500 Subject: [AccessD] Classes and Events - Feedback In-Reply-To: <4991BF66.1080302@colbyconsulting.com> References: <4991BF66.1080302@colbyconsulting.com> Message-ID: I'm in the "reading" class right now, and I'd say the details was just about right. :-) Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, February 10, 2009 12:55 PM To: Access Developers discussion and problem solving Subject: [AccessD] Classes and Events - Feedback Any "instructor" needs feedback on how they are doing. Just so I can get a feel for how much further to take this and in what detail, could I get a show of hands on who is following the thread. Perhaps: 1) Glancing at it 2) Reading each email 3) Studying each email 4) More detail would be nice 5) Detail is just about right 6) Too much detail 7) Irrelevant detail 8) How would I .... -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From newsgrps at dalyn.co.nz Tue Feb 10 12:09:32 2009 From: newsgrps at dalyn.co.nz (David Emerson) Date: Wed, 11 Feb 2009 07:09:32 +1300 Subject: [AccessD] Classes and Events - Feedback In-Reply-To: <4991BF66.1080302@colbyconsulting.com> References: <4991BF66.1080302@colbyconsulting.com> Message-ID: <20090210180837.QJGE21395.mta01.xtra.co.nz@Dalyn.dalyn.co.nz> John, I am busy at the moment but I have kept the thread to look at when things free up. I appreciate your efforts. Regards David At 11/02/2009, you wrote: >Any "instructor" needs feedback on how they are doing. Just so I >can get a feel for how much >further to take this and in what detail, could I get a show of hands >on who is following the thread. > Perhaps: > > >1) Glancing at it >2) Reading each email >3) Studying each email > >4) More detail would be nice >5) Detail is just about right >6) Too much detail >7) Irrelevant detail > >8) How would I .... >-- >John W. Colby >www.ColbyConsulting.com >-- >AccessD mailing list >AccessD at databaseadvisors.com >http://databaseadvisors.com/mailman/listinfo/accessd >Website: http://www.databaseadvisors.com From comres at rpa.net Tue Feb 10 12:11:26 2009 From: comres at rpa.net (Mark Brown) Date: Tue, 10 Feb 2009 13:11:26 -0500 Subject: [AccessD] Classes and Events - Feedback In-Reply-To: <4991BF66.1080302@colbyconsulting.com> References: <4991BF66.1080302@colbyconsulting.com> Message-ID: <59B22CEEBD444EB2A7A08C0C8B50F056@MarkLaptop> I am reading the thread and plan on working on a project using these concepts. Mark H Brown -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, February 10, 2009 12:55 PM To: Access Developers discussion and problem solving Subject: [AccessD] Classes and Events - Feedback Any "instructor" needs feedback on how they are doing. Just so I can get a feel for how much further to take this and in what detail, could I get a show of hands on who is following the thread. Perhaps: 1) Glancing at it 2) Reading each email 3) Studying each email 4) More detail would be nice 5) Detail is just about right 6) Too much detail 7) Irrelevant detail 8) How would I .... -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Feb 10 12:15:15 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 10 Feb 2009 13:15:15 -0500 Subject: [AccessD] Classes and Events - Stay with us In-Reply-To: <598CD44B32BB479B8B1C0C19B7BC5D4F@FRED6998B25045> References: <598CD44B32BB479B8B1C0C19B7BC5D4F@FRED6998B25045> Message-ID: <4991C433.7020702@colbyconsulting.com> > A request (for now or later): A list of the titles in the order that they should be studied. I will do that. I am writing these in Word and then cutting and pasting into email. Eventually I would like to get an educator to edit them into a coherent whole and post that as a download. John W. Colby www.ColbyConsulting.com Fred Hooper wrote: > I'm finding these *very* interesting; they are snapping the concepts into > focus as you intended. > > A request (for now or later): A list of the titles in the order that they > should be studied. > > Thanks, > Fred Hooper > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Monday, February 09, 2009 10:44 PM > To: Access Developers discussion and problem solving > Subject: [AccessD] Classes and Events - Stay with us > > I would urge all who are interested to stay with us on this. I have > intentionally kept the > individual emails small so that specific concepts could be learned and > absorbed before moving on. > This means that the number of emails will be larger however, which might > appear daunting. > > If you have questions about any individual part, please speak up. > > Programming is fun, and classes and events are a very powerful tool. Anyone > who can program events > behind a form can program those same events in classes. > > Each email should take you perhaps 1/2 hour to one hour to complete. In > just a few hours you too > can learn things that will take your skills to a new level. Believe me, > once you understand and can > apply these ideas your applications will never be the same. You will bring > a whole new level of > skill and ability to your career. > From andy at minstersystems.co.uk Tue Feb 10 12:21:46 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Tue, 10 Feb 2009 18:21:46 -0000 Subject: [AccessD] Classes and Events - Feedback In-Reply-To: <20090210180837.QJGE21395.mta01.xtra.co.nz@Dalyn.dalyn.co.nz> Message-ID: I'm in David's camp. Keeping for later reference. Andy Lacey -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of David Emerson Sent: 10 February 2009 18:10 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Classes and Events - Feedback John, I am busy at the moment but I have kept the thread to look at when things free up. I appreciate your efforts. Regards David At 11/02/2009, you wrote: >Any "instructor" needs feedback on how they are doing. Just so I >can get a feel for how much >further to take this and in what detail, could I get a show of hands >on who is following the thread. > Perhaps: > > >1) Glancing at it >2) Reading each email >3) Studying each email > >4) More detail would be nice >5) Detail is just about right >6) Too much detail >7) Irrelevant detail > >8) How would I .... >-- >John W. Colby >www.ColbyConsulting.com >-- >AccessD mailing list >AccessD at databaseadvisors.com >http://databaseadvisors.com/mailman/listinfo/accessd >Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From bill_patten at embarqmail.com Tue Feb 10 12:33:13 2009 From: bill_patten at embarqmail.com (Bill Patten) Date: Tue, 10 Feb 2009 10:33:13 -0800 Subject: [AccessD] Classes and Events - Feedback In-Reply-To: <4991BF66.1080302@colbyconsulting.com> References: <4991BF66.1080302@colbyconsulting.com> Message-ID: <148F4023081646409E6818211F601361@BPCS> Hi John, Thanks for all your efforts. I like many others do not have time right now to "do the work" so am storing them till I do. I like the idea of building something that works to demonstrate the concepts and am looking forward to creating the time to participate. I am doing some personal projects in VB DOT NET and get the feeling that your lessons will help me have a better understanding of what Google and I are doing. Oh in regards to your actual questions, though I have just skimmed them I would say the detail is just about right. Bill ----- Original Message ----- From: "jwcolby" To: "Access Developers discussion and problem solving" Sent: Tuesday, February 10, 2009 9:54 AM Subject: [AccessD] Classes and Events - Feedback Any "instructor" needs feedback on how they are doing. Just so I can get a feel for how much further to take this and in what detail, could I get a show of hands on who is following the thread. Perhaps: 1) Glancing at it 2) Reading each email 3) Studying each email 4) More detail would be nice 5) Detail is just about right 6) Too much detail 7) Irrelevant detail 8) How would I .... -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Tue Feb 10 12:57:57 2009 From: max.wanadoo at gmail.com (Denis Sherman) Date: Tue, 10 Feb 2009 18:57:57 -0000 Subject: [AccessD] Classes and Events - Stay with us In-Reply-To: <499174B1.4000007@colbyconsulting.com> References: <4990F7FD.3000705@colbyconsulting.com> <499115d5.19e7300a.0a54.2a58@mx.google.com> <499174B1.4000007@colbyconsulting.com> Message-ID: <4991ce39.0622300a.52a6.3b44@mx.google.com> No worries John. I will definitely be following this excellent topic. So far I find it nicely pitched and I am able to follow. At the week end I hope to be able to start following it through using Access. Thanks for the effort - large effort at that - much appreciated. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 10 February 2009 12:36 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Classes and Events - Stay with us Max, Glad to see that you are taking it in. You are correct, it might very well take only a few minutes for some of them, but others lectures may have code that some group members will need to study a bit to understand what it does. Just keep reading and I PROMISE you will be using Classes and Events in just a few short hours. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > JC: Remember the time zone difference. > > I am following but waiting until there is a bunch of stuff so that I can do > it in one session. I note you said 1/2 to 1 hour, but for me it takes just > a few minutes - I must be good! > > So I am letting it mount up. > > All being read and stored though. > Thanks > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 10 February 2009 03:44 > To: Access Developers discussion and problem solving > Subject: [AccessD] Classes and Events - Stay with us > > I would urge all who are interested to stay with us on this. I have > intentionally kept the > individual emails small so that specific concepts could be learned and > absorbed before moving on. > This means that the number of emails will be larger however, which might > appear daunting. > > If you have questions about any individual part, please speak up. > > Programming is fun, and classes and events are a very powerful tool. Anyone > who can program events > behind a form can program those same events in classes. > > Each email should take you perhaps 1/2 hour to one hour to complete. In > just a few hours you too > can learn things that will take your skills to a new level. Believe me, > once you understand and can > apply these ideas your applications will never be the same. You will bring > a whole new level of > skill and ability to your career. > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Tue Feb 10 13:00:17 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 10 Feb 2009 19:00:17 -0000 Subject: [AccessD] Classes and Events - Stay with us In-Reply-To: References: Message-ID: <4991cec5.0eff300a.72f1.573b@mx.google.com> Oh! That is what the rest of the hour is for. Dang. Didn't realise that. So that means not just reading it Thanks Gustav. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 10 February 2009 08:35 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Classes and Events - Stay with us Hi Max You are supposed to understand it as well. That's what the next 27 to 57 minutes are for! /gustav >>> max.wanadoo at gmail.com 10-02-2009 06:51 >>> .. I note you said 1/2 to 1 hour, but for me it takes just a few minutes - I must be good! -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From fuller.artful at gmail.com Tue Feb 10 13:12:13 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Tue, 10 Feb 2009 14:12:13 -0500 Subject: [AccessD] Classes and Events - Feedback In-Reply-To: <148F4023081646409E6818211F601361@BPCS> References: <4991BF66.1080302@colbyconsulting.com> <148F4023081646409E6818211F601361@BPCS> Message-ID: <29f585dd0902101112s4a5c115bl5b1186e3b62190f@mail.gmail.com> Count me in rank 3: Studying each email in detail. From rockysmolin at bchacc.com Tue Feb 10 13:29:06 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 10 Feb 2009 11:29:06 -0800 Subject: [AccessD] Classes and Events - Stay with us In-Reply-To: <4991C433.7020702@colbyconsulting.com> References: <598CD44B32BB479B8B1C0C19B7BC5D4F@FRED6998B25045> <4991C433.7020702@colbyconsulting.com> Message-ID: That'll be terrific John. I've got all the emails saved for a slow morning. I think you're right about learning to use them. (Hope I get some work soon I can try it on. :o) ) Thanks for this. It's great. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, February 10, 2009 10:15 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Classes and Events - Stay with us > A request (for now or later): A list of the titles in the order that they should be studied. I will do that. I am writing these in Word and then cutting and pasting into email. Eventually I would like to get an educator to edit them into a coherent whole and post that as a download. John W. Colby www.ColbyConsulting.com Fred Hooper wrote: > I'm finding these *very* interesting; they are snapping the concepts > into focus as you intended. > > A request (for now or later): A list of the titles in the order that > they should be studied. > > Thanks, > Fred Hooper > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Monday, February 09, 2009 10:44 PM > To: Access Developers discussion and problem solving > Subject: [AccessD] Classes and Events - Stay with us > > I would urge all who are interested to stay with us on this. I have > intentionally kept the individual emails small so that specific > concepts could be learned and absorbed before moving on. > This means that the number of emails will be larger however, which > might appear daunting. > > If you have questions about any individual part, please speak up. > > Programming is fun, and classes and events are a very powerful tool. > Anyone who can program events behind a form can program those same > events in classes. > > Each email should take you perhaps 1/2 hour to one hour to complete. > In just a few hours you too can learn things that will take your > skills to a new level. Believe me, once you understand and can apply > these ideas your applications will never be the same. You will bring > a whole new level of skill and ability to your career. > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Tue Feb 10 13:31:51 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 10 Feb 2009 19:31:51 -0000 Subject: [AccessD] Access 2007 In-Reply-To: <29f585dd0902101112s4a5c115bl5b1186e3b62190f@mail.gmail.com> References: <4991BF66.1080302@colbyconsulting.com> <148F4023081646409E6818211F601361@BPCS> <29f585dd0902101112s4a5c115bl5b1186e3b62190f@mail.gmail.com> Message-ID: <4991d62b.0716300a.1a0d.42fc@mx.google.com> In 2003 I can tell Access what form etc I want to run on startup. How do I do the same in Access 2007? Thanks Max Ps. I really hate Access 2007 ribbons and Vista Protection and and and and life is now sooo difficult whereas before Everything was great in XP and A2003 From JHewson at nciinc.com Tue Feb 10 13:47:55 2009 From: JHewson at nciinc.com (Hewson, Jim ) Date: Tue, 10 Feb 2009 13:47:55 -0600 Subject: [AccessD] Access 2007 In-Reply-To: <4991d62b.0716300a.1a0d.42fc@mx.google.com> References: <4991BF66.1080302@colbyconsulting.com> <148F4023081646409E6818211F601361@BPCS><29f585dd0902101112s4a5c115bl5b1186e3b62190f@mail.gmail.com> <4991d62b.0716300a.1a0d.42fc@mx.google.com> Message-ID: <7E02B06E41E5404589EDDDA2BAA1C5A83EC963@sanex101.nciinc.com> Windows Buttons - top left Bottom right "Access Options" Left side "Current Database" Right side "Application Options" - third down "Display form:" Jim -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, February 10, 2009 1:32 PM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Access 2007 In 2003 I can tell Access what form etc I want to run on startup. How do I do the same in Access 2007? Thanks Max Ps. I really hate Access 2007 ribbons and Vista Protection and and and and life is now sooo difficult whereas before Everything was great in XP and A2003 -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ################################################################################ If you have received this message in error, please contact the sender immediately and be aware that the use, copying, or dissemination of this information is prohibited. This email transmission contains information from NCI Information Systems, Inc. that may be considered privileged or confidential and is intended solely for the named recipient. ################################################################################ From bill_patten at embarqmail.com Tue Feb 10 13:52:57 2009 From: bill_patten at embarqmail.com (Bill Patten) Date: Tue, 10 Feb 2009 11:52:57 -0800 Subject: [AccessD] Access 2007 In-Reply-To: <4991d62b.0716300a.1a0d.42fc@mx.google.com> References: <4991BF66.1080302@colbyconsulting.com> <148F4023081646409E6818211F601361@BPCS><29f585dd0902101112s4a5c115bl5b1186e3b62190f@mail.gmail.com> <4991d62b.0716300a.1a0d.42fc@mx.google.com> Message-ID: Hi Max, Click the circle in the upper left hand corner then click Access Options in the lower right hand corner then select Current database and then add click the display form combo and select your choice. HTH Bill ----- Original Message ----- From: "Max Wanadoo" To: "'Access Developers discussion and problem solving'" Sent: Tuesday, February 10, 2009 11:31 AM Subject: [AccessD] Access 2007 In 2003 I can tell Access what form etc I want to run on startup. How do I do the same in Access 2007? Thanks Max Ps. I really hate Access 2007 ribbons and Vista Protection and and and and life is now sooo difficult whereas before Everything was great in XP and A2003 -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From DWUTKA at Marlow.com Tue Feb 10 13:56:11 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 10 Feb 2009 13:56:11 -0600 Subject: [AccessD] Classes and Events - Stay with us In-Reply-To: Message-ID: Really? I thought C did have inheritance, though I personally have only ever used C++. Go figure... learn something new every day! Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert Sent: Tuesday, February 10, 2009 11:02 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Classes and Events - Stay with us Drew slips up!!! Shock! Of course it's C++ that has inheritance (and C# and ObjectC). The venerable C does not. Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, February 10, 2009 11:22 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Classes and Events - Stay with us Don't ever think that a lecture on Classes and Events (and Collections) is 'yea yea JC's goin on about classes again'!!! There are code samples all over the net. Even a little bit of 'tutorial' information on how it works. But there is a pitiful lack of explaining the actual concepts behind classes. To C programmers, this is almost intuitive, because one of the true bonuses of C is that it allows inheritance. And VB.Net is class based. But VBA is still in the VB 6 subset, which even though it has classes, and can use Implements (a bastardized version of inheritance), it is far too easy to fall into a function dependent mode. So Go JC Go! ;) Drew -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Tue Feb 10 13:58:11 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 10 Feb 2009 13:58:11 -0600 Subject: [AccessD] Classes and Events - Stay with us In-Reply-To: <4991B6B0.7000806@colbyconsulting.com> Message-ID: Well said! Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, February 10, 2009 11:18 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Classes and Events - Stay with us > Don't ever think that a lecture on Classes and Events (and Collections) is 'yea yea JC's goin on about classes again'!!! Thanks for the support Drew! Drew makes a good point that VBA classes are NOT the same as VB classes or VB.Net classes. I have intentionally left out inheritance since we don't get that in VBA so why muddy the waters. What we have is very powerful however so do not even think that you might as well not learn them. VB classes are all that we have in VBA classes plus more, whatever you learn here will stand you in good stead if you move on. More importantly it will make many things soooo much simpler to do in our Access applications. I just posted a timer class lecture. It is absolutely possible to do the same basic thing using a function and a static collection (to store the start times). But the programming is messy, the "how does this thing work" is harder to understand, and the time to access a collection could impact accuracy, especially if you have a bunch of timers. What you will find, and what you will hear from many people is that whatever you can do with classes can be done without them. That is pretty much true but you may rest assured that often a class will yield an elegant and simple solution relative to the same thing done without classes. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > Don't ever think that a lecture on Classes and Events (and Collections) > is 'yea yea JC's goin on about classes again'!!! > > There are code samples all over the net. Even a little bit of > 'tutorial' information on how it works. But there is a pitiful lack of > explaining the actual concepts behind classes. To C programmers, this > is almost intuitive, because one of the true bonuses of C is that it > allows inheritance. And VB.Net is class based. But VBA is still in the > VB 6 subset, which even though it has classes, and can use Implements (a > bastardized version of inheritance), it is far too easy to fall into a > function dependent mode. > > So Go JC Go! ;) > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, February 10, 2009 6:53 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Classes and Events - Stay with us > > Thanks for the encouragement to me and to "the class". It is very > important to those who haven't > been exposed to classes and events to hear from those who use them how > useful this stuff is. > Without that input from other developers it can just be "yea, yea, JC's > goin on about classes again". > > I encourage any list members who use Classes and Events in Classes to > speak up and tell your own > experiences using this stuff. You might also discuss how it helped when > it came time to learn .Net. > > Thanks, > > John W. Colby > www.ColbyConsulting.com > > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From max.wanadoo at gmail.com Tue Feb 10 14:21:17 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 10 Feb 2009 20:21:17 -0000 Subject: [AccessD] Access 2007 In-Reply-To: References: <4991BF66.1080302@colbyconsulting.com> <148F4023081646409E6818211F601361@BPCS><29f585dd0902101112s4a5c115bl5b1186e3b62190f@mail.gmail.com> <4991d62b.0716300a.1a0d.42fc@mx.google.com> Message-ID: <4991e1c1.0589300a.7b7d.4383@mx.google.com> Thanks Bill -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bill Patten Sent: 10 February 2009 19:53 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Access 2007 Hi Max, Click the circle in the upper left hand corner then click Access Options in the lower right hand corner then select Current database and then add click the display form combo and select your choice. HTH Bill ----- Original Message ----- From: "Max Wanadoo" To: "'Access Developers discussion and problem solving'" Sent: Tuesday, February 10, 2009 11:31 AM Subject: [AccessD] Access 2007 In 2003 I can tell Access what form etc I want to run on startup. How do I do the same in Access 2007? Thanks Max Ps. I really hate Access 2007 ribbons and Vista Protection and and and and life is now sooo difficult whereas before Everything was great in XP and A2003 -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Tue Feb 10 14:22:28 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 10 Feb 2009 20:22:28 -0000 Subject: [AccessD] Access 2007 In-Reply-To: <7E02B06E41E5404589EDDDA2BAA1C5A83EC963@sanex101.nciinc.com> References: <4991BF66.1080302@colbyconsulting.com> <148F4023081646409E6818211F601361@BPCS><29f585dd0902101112s4a5c115bl5b1186e3b62190f@mail.gmail.com> <4991d62b.0716300a.1a0d.42fc@mx.google.com> <7E02B06E41E5404589EDDDA2BAA1C5A83EC963@sanex101.nciinc.com> Message-ID: <4991e209.04eb300a.5657.4a73@mx.google.com> Thanks Jim -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Hewson, Jim Sent: 10 February 2009 19:48 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Access 2007 Windows Buttons - top left Bottom right "Access Options" Left side "Current Database" Right side "Application Options" - third down "Display form:" Jim -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, February 10, 2009 1:32 PM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Access 2007 In 2003 I can tell Access what form etc I want to run on startup. How do I do the same in Access 2007? Thanks Max Ps. I really hate Access 2007 ribbons and Vista Protection and and and and life is now sooo difficult whereas before Everything was great in XP and A2003 -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ############################################################################ #### If you have received this message in error, please contact the sender immediately and be aware that the use, copying, or dissemination of this information is prohibited. This email transmission contains information from NCI Information Systems, Inc. that may be considered privileged or confidential and is intended solely for the named recipient. ############################################################################ #### -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Tue Feb 10 14:26:47 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 10 Feb 2009 20:26:47 -0000 Subject: [AccessD] Access 2007 In-Reply-To: <7E02B06E41E5404589EDDDA2BAA1C5A83EC963@sanex101.nciinc.com> References: <4991BF66.1080302@colbyconsulting.com> <148F4023081646409E6818211F601361@BPCS><29f585dd0902101112s4a5c115bl5b1186e3b62190f@mail.gmail.com> <4991d62b.0716300a.1a0d.42fc@mx.google.com> <7E02B06E41E5404589EDDDA2BAA1C5A83EC963@sanex101.nciinc.com> Message-ID: <4991e30c.0c53300a.7c02.7464@mx.google.com> It is almost as if these options have been added as an after-thought. Gee, I really hate A2007. Have I said that before? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Hewson, Jim Sent: 10 February 2009 19:48 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Access 2007 Windows Buttons - top left Bottom right "Access Options" Left side "Current Database" Right side "Application Options" - third down "Display form:" Jim -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, February 10, 2009 1:32 PM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Access 2007 In 2003 I can tell Access what form etc I want to run on startup. How do I do the same in Access 2007? Thanks Max Ps. I really hate Access 2007 ribbons and Vista Protection and and and and life is now sooo difficult whereas before Everything was great in XP and A2003 -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ############################################################################ #### If you have received this message in error, please contact the sender immediately and be aware that the use, copying, or dissemination of this information is prohibited. This email transmission contains information from NCI Information Systems, Inc. that may be considered privileged or confidential and is intended solely for the named recipient. ############################################################################ #### -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Tue Feb 10 14:39:40 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Tue, 10 Feb 2009 15:39:40 -0500 Subject: [AccessD] Access 2007 References: <4991BF66.1080302@colbyconsulting.com> <148F4023081646409E6818211F601361@BPCS><29f585dd0902101112s4a5c115bl5b1186e3b62190f@mail.gmail.com> <4991d62b.0716300a.1a0d.42fc@mx.google.com><7E02B06E41E5404589EDDDA2BAA1C5A83EC963@sanex101.nciinc.com> <4991e30c.0c53300a.7c02.7464@mx.google.com> Message-ID: <0311C4C597F0425EBD89D02993B4747C@jislaptopdev> ...takes me back to the release of Access '95 and the horror story it was ...which led to A'97 which was so good I STILL use its Help files in A2003 ...one can only hope that the next iteration of access is a similar improvement over A2k7 ...else I'm not letting go of A2k3 ...period ...every time I've tried to futz with that ribbon thingamajig, I get a migraine ...maybe we could gen up a class action lawsuit ...it deserves one :( William -------------------------------------------------- From: "Max Wanadoo" Sent: Tuesday, February 10, 2009 3:26 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Access 2007 > It is almost as if these options have been added as an after-thought. > Gee, I really hate A2007. Have I said that before? > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Hewson, Jim > Sent: 10 February 2009 19:48 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Access 2007 > > Windows Buttons - top left > Bottom right "Access Options" > Left side "Current Database" > Right side "Application Options" - third down "Display form:" > > Jim > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Tuesday, February 10, 2009 1:32 PM > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Access 2007 > > In 2003 I can tell Access what form etc I want to run on startup. How > do I > do the same in Access 2007? > Thanks > Max > Ps. I really hate Access 2007 ribbons and Vista Protection and and and > and > life is now sooo difficult whereas before Everything was great in XP and > A2003 > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > ############################################################################ > #### > If you have received this message in error, please contact the sender > immediately and be aware that the use, copying, or dissemination of > this information is prohibited. This email transmission contains > information from NCI Information Systems, Inc. that may be considered > privileged or confidential and is intended solely for the named > recipient. > ############################################################################ > #### > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From wdhindman at dejpolsystems.com Tue Feb 10 14:44:07 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Tue, 10 Feb 2009 15:44:07 -0500 Subject: [AccessD] Classes and Events - Feedback References: <4991BF66.1080302@colbyconsulting.com> Message-ID: <9386139A56244EF580DB3B92A160C7BC@jislaptopdev> ...3-4 ...I'm socking this entire thread into my code vault. ...personally I've made minimal use of classes in Access ...but vb.net and c#.net made their value clear so I'm going to reverse engineer my Access code as well. ...thanks for the time and effort, eh. William -------------------------------------------------- From: "jwcolby" Sent: Tuesday, February 10, 2009 12:54 PM To: "Access Developers discussion and problem solving" Subject: [AccessD] Classes and Events - Feedback > Any "instructor" needs feedback on how they are doing. Just so I can get > a feel for how much > further to take this and in what detail, could I get a show of hands on > who is following the thread. > Perhaps: > > > 1) Glancing at it > 2) Reading each email > 3) Studying each email > > 4) More detail would be nice > 5) Detail is just about right > 6) Too much detail > 7) Irrelevant detail > > 8) How would I .... > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From wdhindman at dejpolsystems.com Tue Feb 10 14:47:57 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Tue, 10 Feb 2009 15:47:57 -0500 Subject: [AccessD] Classes and Events - Stay with us References: <598CD44B32BB479B8B1C0C19B7BC5D4F@FRED6998B25045> <4991C433.7020702@colbyconsulting.com> Message-ID: <9E7E8045B7D64C8587B001E7DA832D6A@jislaptopdev> ...you and Susan should put this together for a Tech Republic article. William -------------------------------------------------- From: "jwcolby" Sent: Tuesday, February 10, 2009 1:15 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Classes and Events - Stay with us > > A request (for now or later): A list of the titles in the order that > > they should be studied. > > I will do that. I am writing these in Word and then cutting and pasting > into email. Eventually I > would like to get an educator to edit them into a coherent whole and post > that as a download. > > John W. Colby > www.ColbyConsulting.com > > > Fred Hooper wrote: >> I'm finding these *very* interesting; they are snapping the concepts into >> focus as you intended. >> >> A request (for now or later): A list of the titles in the order that they >> should be studied. >> >> Thanks, >> Fred Hooper >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Monday, February 09, 2009 10:44 PM >> To: Access Developers discussion and problem solving >> Subject: [AccessD] Classes and Events - Stay with us >> >> I would urge all who are interested to stay with us on this. I have >> intentionally kept the >> individual emails small so that specific concepts could be learned and >> absorbed before moving on. >> This means that the number of emails will be larger however, which might >> appear daunting. >> >> If you have questions about any individual part, please speak up. >> >> Programming is fun, and classes and events are a very powerful tool. >> Anyone >> who can program events >> behind a form can program those same events in classes. >> >> Each email should take you perhaps 1/2 hour to one hour to complete. In >> just a few hours you too >> can learn things that will take your skills to a new level. Believe me, >> once you understand and can >> apply these ideas your applications will never be the same. You will >> bring >> a whole new level of >> skill and ability to your career. >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From max.wanadoo at gmail.com Tue Feb 10 14:48:37 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 10 Feb 2009 20:48:37 -0000 Subject: [AccessD] Access 2007 In-Reply-To: <0311C4C597F0425EBD89D02993B4747C@jislaptopdev> References: <4991BF66.1080302@colbyconsulting.com> <148F4023081646409E6818211F601361@BPCS><29f585dd0902101112s4a5c115bl5b1186e3b62190f@mail.gmail.com> <4991d62b.0716300a.1a0d.42fc@mx.google.com><7E02B06E41E5404589EDDDA2BAA1C5A83EC963@sanex101.nciinc.com> <4991e30c.0c53300a.7c02.7464@mx.google.com> <0311C4C597F0425EBD89D02993B4747C@jislaptopdev> Message-ID: <4991e829.0aed300a.6c1c.ffff893b@mx.google.com> >>...maybe we could gen up a class action lawsuit ...it deserves one :( Class Action eh? Speak to JC Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: 10 February 2009 20:40 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Access 2007 ...takes me back to the release of Access '95 and the horror story it was ...which led to A'97 which was so good I STILL use its Help files in A2003 ...one can only hope that the next iteration of access is a similar improvement over A2k7 ...else I'm not letting go of A2k3 ...period ...every time I've tried to futz with that ribbon thingamajig, I get a migraine ...maybe we could gen up a class action lawsuit ...it deserves one :( William -------------------------------------------------- From: "Max Wanadoo" Sent: Tuesday, February 10, 2009 3:26 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Access 2007 > It is almost as if these options have been added as an after-thought. > Gee, I really hate A2007. Have I said that before? > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Hewson, Jim > Sent: 10 February 2009 19:48 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Access 2007 > > Windows Buttons - top left > Bottom right "Access Options" > Left side "Current Database" > Right side "Application Options" - third down "Display form:" > > Jim > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Tuesday, February 10, 2009 1:32 PM > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Access 2007 > > In 2003 I can tell Access what form etc I want to run on startup. How > do I > do the same in Access 2007? > Thanks > Max > Ps. I really hate Access 2007 ribbons and Vista Protection and and and > and > life is now sooo difficult whereas before Everything was great in XP and > A2003 > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > ############################################################################ > #### > If you have received this message in error, please contact the sender > immediately and be aware that the use, copying, or dissemination of > this information is prohibited. This email transmission contains > information from NCI Information Systems, Inc. that may be considered > privileged or confidential and is intended solely for the named > recipient. > ############################################################################ > #### > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From ssharkins at gmail.com Tue Feb 10 14:52:39 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Tue, 10 Feb 2009 15:52:39 -0500 Subject: [AccessD] Memo field is truncated Message-ID: I've seen this discussed many times, but I can't remember the solution -- a reader's Make Table query is truncating a Memo field to 255 characters. I've found a few things on the kb, but nothing that seems to be the exact thing I'm looking for -- nothing for Make Table anyway. I've sent links to the few articles that are close. Does anyone remember what this is -- off the top of your head? Susan H. From dwaters at usinternet.com Tue Feb 10 15:01:59 2009 From: dwaters at usinternet.com (Dan Waters) Date: Tue, 10 Feb 2009 15:01:59 -0600 Subject: [AccessD] Memo field is truncated In-Reply-To: References: Message-ID: <31E9256FA840463A837E1A1D9AE6732D@danwaters> Hi Susan, Look for some kind of DISTINCT query or recordset. If a memo field is included, it will be truncated. Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: Tuesday, February 10, 2009 2:53 PM To: AccessD at databaseadvisors.com Subject: [AccessD] Memo field is truncated I've seen this discussed many times, but I can't remember the solution -- a reader's Make Table query is truncating a Memo field to 255 characters. I've found a few things on the kb, but nothing that seems to be the exact thing I'm looking for -- nothing for Make Table anyway. I've sent links to the few articles that are close. Does anyone remember what this is -- off the top of your head? Susan H. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From davidmcafee at gmail.com Tue Feb 10 15:03:29 2009 From: davidmcafee at gmail.com (David McAfee) Date: Tue, 10 Feb 2009 13:03:29 -0800 Subject: [AccessD] Memo field is truncated In-Reply-To: References: Message-ID: <8786a4c00902101303r4453675et1acd8e00ce2cbdc4@mail.gmail.com> I remember that being the problem in ADPs. I forget the work around at the moment. I think it was declaring the field as a different type (SQL or ADO needs to make it a text data type IIRC) On Tue, Feb 10, 2009 at 12:52 PM, Susan Harkins wrote: > I've seen this discussed many times, but I can't remember the solution -- a > reader's Make Table query is truncating a Memo field to 255 characters. I've > found a few things on the kb, but nothing that seems to be the exact thing > I'm looking for -- nothing for Make Table anyway. I've sent links to the few > articles that are close. > > Does anyone remember what this is -- off the top of your head? > > Susan H. > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From davidmcafee at gmail.com Tue Feb 10 15:08:37 2009 From: davidmcafee at gmail.com (David McAfee) Date: Tue, 10 Feb 2009 13:08:37 -0800 Subject: [AccessD] A2007 - Programmatically Minimize Ribbon In-Reply-To: <89EF8FE5FF304931957A573508FD7250@jislaptopdev> References: <498AE648.5745.9E8FF2@stuart.lexacorp.com.pg> <498B3D9A.4050101@colbyconsulting.com> <89EF8FE5FF304931957A573508FD7250@jislaptopdev> Message-ID: <8786a4c00902101308m1749c66dt9da3a729b8d558a@mail.gmail.com> Rocky, want to try my sample out and see if it works on your box? On Fri, Feb 6, 2009 at 11:10 PM, William Hindman wrote: > "truly annoying to developers" jc > > ...they succeeded beyond their wildest dreams :( > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Thursday, February 05, 2009 2:27 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon > >> > Any ideas what's going on? >> >> Simple really, MS is DAMNED PROUD of their ribbon and is making sure that >> you see it! They spent >> several million dollars on usability studies to make sure that the ribbon >> was useful to power users >> and spent about another 10 million or so to make sure that it was truly >> annoying to developers, and >> they aren't about to let their investment slip through their fingers! >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Rocky Smolin at Beach Access Software wrote: >>> Stuart: >>> >>> Well, dang. It doesn't work. I put Call MinimizeRibbon in the _Open >>> event, >>> but the ribbon ended up maximized anyway. SO I moved it right at the >>> end >>> of the _Open event on the theory that maybe some of the housekeeping >>> (resizing the form, maximizing the form, etc.) was affecting the ribbon. >>> But no soap. >>> >>> So I moved it to the _Activate event. Same result. So I put MsgBox >>> RibbonMinimized in the RibbonMinimized Function to see what the value was >>> on >>> the call. With the Call to MinimizeRibbon in the Activate event, it gets >>> called 3 times. Each time the value of RibbonMinimized is True and the >>> ribbon is indeed minimized. >>> >>> Then right at the end of the opening process, the ribbon re-appears. >>> >>> Ctrl-F1 from the keyboard toggles the ribbon nicely. And the code looks >>> like it should work. And I stepped through it just to see what it was >>> doing. >>> >>> Any ideas what's going on? >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From max.wanadoo at gmail.com Tue Feb 10 14:59:18 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 10 Feb 2009 20:59:18 -0000 Subject: [AccessD] Memo field is truncated In-Reply-To: References: Message-ID: <4991eaa9.04ff300a.27c9.ffff90b8@mx.google.com> Good answer here Susan http://allenbrowne.com/ser-63.html Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: 10 February 2009 20:53 To: AccessD at databaseadvisors.com Subject: [AccessD] Memo field is truncated I've seen this discussed many times, but I can't remember the solution -- a reader's Make Table query is truncating a Memo field to 255 characters. I've found a few things on the kb, but nothing that seems to be the exact thing I'm looking for -- nothing for Make Table anyway. I've sent links to the few articles that are close. Does anyone remember what this is -- off the top of your head? Susan H. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Tue Feb 10 15:11:14 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 10 Feb 2009 13:11:14 -0800 Subject: [AccessD] A2007 - Programmatically Minimize Ribbon In-Reply-To: <8786a4c00902101308m1749c66dt9da3a729b8d558a@mail.gmail.com> References: <498AE648.5745.9E8FF2@stuart.lexacorp.com.pg><498B3D9A.4050101@colbyconsulting.com><89EF8FE5FF304931957A573508FD7250@jislaptopdev> <8786a4c00902101308m1749c66dt9da3a729b8d558a@mail.gmail.com> Message-ID: I'll try anything at this point. Thanks. Can you send it to rockysmolin at bchacc.com? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of David McAfee Sent: Tuesday, February 10, 2009 1:09 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon Rocky, want to try my sample out and see if it works on your box? On Fri, Feb 6, 2009 at 11:10 PM, William Hindman wrote: > "truly annoying to developers" jc > > ...they succeeded beyond their wildest dreams :( > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Thursday, February 05, 2009 2:27 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon > >> > Any ideas what's going on? >> >> Simple really, MS is DAMNED PROUD of their ribbon and is making sure >> that you see it! They spent several million dollars on usability >> studies to make sure that the ribbon was useful to power users and >> spent about another 10 million or so to make sure that it was truly >> annoying to developers, and they aren't about to let their investment >> slip through their fingers! >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Rocky Smolin at Beach Access Software wrote: >>> Stuart: >>> >>> Well, dang. It doesn't work. I put Call MinimizeRibbon in the >>> _Open event, >>> but the ribbon ended up maximized anyway. SO I moved it right at the >>> end >>> of the _Open event on the theory that maybe some of the housekeeping >>> (resizing the form, maximizing the form, etc.) was affecting the ribbon. >>> But no soap. >>> >>> So I moved it to the _Activate event. Same result. So I put MsgBox >>> RibbonMinimized in the RibbonMinimized Function to see what the >>> value was on the call. With the Call to MinimizeRibbon in the >>> Activate event, it gets called 3 times. Each time the value of >>> RibbonMinimized is True and the ribbon is indeed minimized. >>> >>> Then right at the end of the opening process, the ribbon re-appears. >>> >>> Ctrl-F1 from the keyboard toggles the ribbon nicely. And the code >>> looks like it should work. And I stepped through it just to see >>> what it was doing. >>> >>> Any ideas what's going on? >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From ssharkins at gmail.com Tue Feb 10 15:15:10 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Tue, 10 Feb 2009 16:15:10 -0500 Subject: [AccessD] Nevermind (Fw: Memo field is truncated) Message-ID: Nevermind and thanks! Susan H. > I've seen this discussed many times, but I can't remember the solution -- > a reader's Make Table query is truncating a Memo field to 255 characters. > I've found a few things on the kb, but nothing that seems to be the exact > thing I'm looking for -- nothing for Make Table anyway. I've sent links to > the few articles that are close. > > Does anyone remember what this is -- off the top of your head? > > Susan H. From davidmcafee at gmail.com Tue Feb 10 15:18:23 2009 From: davidmcafee at gmail.com (David McAfee) Date: Tue, 10 Feb 2009 13:18:23 -0800 Subject: [AccessD] Calling an AfterUpdate evnte proc. of a combo In-Reply-To: <57144ced0902091039q734067asf243a3ab724c1187@mail.gmail.com> References: <57144ced0902090805i3a633553u25ab3dd959b09182@mail.gmail.com> <49905E9A.2060502@colbyconsulting.com> <57144ced0902090935v7a78b442o56ab0e48a2af1d7b@mail.gmail.com> <49906C00.7060608@colbyconsulting.com> <57144ced0902091039q734067asf243a3ab724c1187@mail.gmail.com> Message-ID: <8786a4c00902101318i7cb166cex82fce46f6bf4eb52@mail.gmail.com> Another thing you can do is create a private (or public if you prefer) sub that does what the combo box after update event does. Call that sub in the after update event as well as where else you need to call it from. On Mon, Feb 9, 2009 at 10:39 AM, philippe pons wrote: > the proc. is within the form where the combo resides. > So I'm calling SyncCboTest from the form itself. > > Thank's for your help. > > NB: yes, I stay tuned!!!! > > 2009/2/9 jwcolby > >> Philippe, >> >> If you go the class route, then you place the AfterUpdate event of the >> combo in the class itself. >> Because the AfterUpdate event for THIS SPECIFIC Combo exists in the class >> itself, then the name >> never changes(!) and it is within the scope of the class. >> >> Where are you calling SyncCboTest() from? >> >> I will be doing a combo class in the lecture that I am doing so stay tuned. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> philippe pons wrote: >> > Hi John, >> > >> > yes, I know you're a class and withevents guru! >> > I'll try this way, but if I remenber well your explanations of the >> > withevents statement, I recall >> > it allows a class to SINK the event of a control, but can it CALL an >> event >> > of tis control, not sure! >> > >> > Thank's for your help, >> > >> > Philippe >> > >> > 2009/2/9 jwcolby >> > >> >> This is possible, IF the AfterUpdate event exists within the scope of >> the >> >> calling subroutine and is >> >> actually called cbo_AfterUpdate. >> >> >> >> If you have a cboPerson and cboState and cboCity then the event to call >> >> would be >> >> cboPerson_AfterUpdate, cboState_AfterUpdate, cboCity_AfterUpdate. You >> see >> >> what I am saying? >> >> >> >> My guess is the cbo is not CALLED cbo back where it exists. You are >> trying >> >> to use a function to >> >> make something generic but the NAME of the objects AfterUpdate is not >> >> generic, and very likely the >> >> code cannot be seen from this function, the afterupdate sub is in the >> >> form's class and this function >> >> is where? In a module? Not the same scope. >> >> >> >> So no, you probably cannot do what you are trying to do. >> >> >> >> Now... if you had a class for your combo... >> >> >> >> ;-) >> >> >> >> John W. Colby >> >> www.ColbyConsulting.com >> >> >> >> >> >> philippe pons wrote: >> >>> Hi all, >> >>> >> >>> I have a small proc. to which I pass a reference to a combo box. >> >>> This proc has to synchronize the combo on the first item >> >>> and run the AfterUpdate event proc. >> >>> >> >>> Private Sub syncCboTest(ByRef cbo As ComboBox) >> >>> ' syn de la cbo de s?lection du chapitre >> >>> cbo.SetFocus >> >>> cbo = cbo.ItemData(0) >> >>> ' Call cboSelChap_AfterUpdate >> >>> Call cbo_AfterUpdate '<== this won't work! >> >>> End Sub >> >>> >> >>> The question: >> >>> >> >>> How would you call the AfterUpdate event of a combobox that is >> >> represented >> >>> by it's reference?? >> >>> something like: cbo_AfterUpdate! >> >>> >> >>> If it is even possible! >> >>> >> >>> Best regards, >> >>> >> >>> Philippe Pons >> >> -- >> >> AccessD mailing list >> >> AccessD at databaseadvisors.com >> >> http://databaseadvisors.com/mailman/listinfo/accessd >> >> Website: http://www.databaseadvisors.com >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From bryan.fitzpatrick at cyberone.com.au Tue Feb 10 15:35:15 2009 From: bryan.fitzpatrick at cyberone.com.au (Bryan Fitzpatrick) Date: Wed, 11 Feb 2009 08:35:15 +1100 Subject: [AccessD] Classes and Events - Feedback In-Reply-To: <4991BF66.1080302@colbyconsulting.com> References: <4991BF66.1080302@colbyconsulting.com> Message-ID: <4991F313.8040005@cyberone.com.au> John Like most of the others I'm busy on other things at the moment, but I am storing all of the emails for later. From skimming the emails, the detail level looks about right. From someone who has always struggled with Classes, this is something that is going into my reference library. Thanks for your time and efforts in putting this together. Bryan jwcolby wrote: > Any "instructor" needs feedback on how they are doing. Just so I can get a feel for how much > further to take this and in what detail, could I get a show of hands on who is following the thread. > Perhaps: > > > 1) Glancing at it > 2) Reading each email > 3) Studying each email > > 4) More detail would be nice > 5) Detail is just about right > 6) Too much detail > 7) Irrelevant detail > > 8) How would I .... > > ------------------------------------------------------------------------ > > > No virus found in this incoming message. > Checked by AVG - www.avg.com > Version: 8.0.233 / Virus Database: 270.10.19/1942 - Release Date: 02/09/09 17:40:00 > > From cfoust at infostatsystems.com Tue Feb 10 16:04:27 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Tue, 10 Feb 2009 14:04:27 -0800 Subject: [AccessD] Memo field is truncated In-Reply-To: References: Message-ID: Using the ALL keyword should take care of it: SELECT ALL FROM ... Etc. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: Tuesday, February 10, 2009 12:53 PM To: AccessD at databaseadvisors.com Subject: [AccessD] Memo field is truncated I've seen this discussed many times, but I can't remember the solution -- a reader's Make Table query is truncating a Memo field to 255 characters. I've found a few things on the kb, but nothing that seems to be the exact thing I'm looking for -- nothing for Make Table anyway. I've sent links to the few articles that are close. Does anyone remember what this is -- off the top of your head? Susan H. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From davidmcafee at gmail.com Tue Feb 10 16:10:39 2009 From: davidmcafee at gmail.com (David McAfee) Date: Tue, 10 Feb 2009 14:10:39 -0800 Subject: [AccessD] A2007 - Programmatically Minimize Ribbon In-Reply-To: References: <498AE648.5745.9E8FF2@stuart.lexacorp.com.pg> <498B3D9A.4050101@colbyconsulting.com> <89EF8FE5FF304931957A573508FD7250@jislaptopdev> <8786a4c00902101308m1749c66dt9da3a729b8d558a@mail.gmail.com> Message-ID: <8786a4c00902101410l5e37b71rfeb65cea248e406b@mail.gmail.com> Sent. On Tue, Feb 10, 2009 at 1:11 PM, Rocky Smolin at Beach Access Software wrote: > I'll try anything at this point. Thanks. Can you send it to > rockysmolin at bchacc.com? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of David McAfee > Sent: Tuesday, February 10, 2009 1:09 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon > > Rocky, want to try my sample out and see if it works on your box? > > On Fri, Feb 6, 2009 at 11:10 PM, William Hindman > wrote: >> "truly annoying to developers" jc >> >> ...they succeeded beyond their wildest dreams :( >> >> William >> >> -------------------------------------------------- >> From: "jwcolby" >> Sent: Thursday, February 05, 2009 2:27 PM >> To: "Access Developers discussion and problem solving" >> >> Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon >> >>> > Any ideas what's going on? >>> >>> Simple really, MS is DAMNED PROUD of their ribbon and is making sure >>> that you see it! They spent several million dollars on usability >>> studies to make sure that the ribbon was useful to power users and >>> spent about another 10 million or so to make sure that it was truly >>> annoying to developers, and they aren't about to let their investment >>> slip through their fingers! >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Rocky Smolin at Beach Access Software wrote: >>>> Stuart: >>>> >>>> Well, dang. It doesn't work. I put Call MinimizeRibbon in the >>>> _Open event, >>>> but the ribbon ended up maximized anyway. SO I moved it right at the >>>> end >>>> of the _Open event on the theory that maybe some of the housekeeping >>>> (resizing the form, maximizing the form, etc.) was affecting the ribbon. >>>> But no soap. >>>> >>>> So I moved it to the _Activate event. Same result. So I put MsgBox >>>> RibbonMinimized in the RibbonMinimized Function to see what the >>>> value was on the call. With the Call to MinimizeRibbon in the >>>> Activate event, it gets called 3 times. Each time the value of >>>> RibbonMinimized is True and the ribbon is indeed minimized. >>>> >>>> Then right at the end of the opening process, the ribbon re-appears. >>>> >>>> Ctrl-F1 from the keyboard toggles the ribbon nicely. And the code >>>> looks like it should work. And I stepped through it just to see >>>> what it was doing. >>>> >>>> Any ideas what's going on? >>>> >>>> >>>> Rocky Smolin >>>> Beach Access Software >>>> 858-259-4334 >>>> www.e-z-mrp.com >>>> www.bchacc.com >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From mikedorism at verizon.net Tue Feb 10 16:17:48 2009 From: mikedorism at verizon.net (Doris Manning) Date: Tue, 10 Feb 2009 17:17:48 -0500 Subject: [AccessD] Classes and Events - Feedback In-Reply-To: <4991BF66.1080302@colbyconsulting.com> References: <4991BF66.1080302@colbyconsulting.com> Message-ID: <7C5D4B8FF5F94C2B8FE833C12558C6B9@Kermit> John, I'm falling into #2-3. We have a VB.Net app that we didn't go the class route with and we are now reverse engineering it for the very reasons Charlotte mentions. Now if I can just teach project requestors the importance of letting us do full requirement documentation to begin with...we wouldn't have these cropping up 3 years down the road. Doris Manning Database Administrator Hargrove Inc. From jwcolby at colbyconsulting.com Tue Feb 10 16:20:03 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 10 Feb 2009 17:20:03 -0500 Subject: [AccessD] Calling an AfterUpdate evnte proc. of a combo In-Reply-To: <8786a4c00902101318i7cb166cex82fce46f6bf4eb52@mail.gmail.com> References: <57144ced0902090805i3a633553u25ab3dd959b09182@mail.gmail.com> <49905E9A.2060502@colbyconsulting.com> <57144ced0902090935v7a78b442o56ab0e48a2af1d7b@mail.gmail.com> <49906C00.7060608@colbyconsulting.com> <57144ced0902091039q734067asf243a3ab724c1187@mail.gmail.com> <8786a4c00902101318i7cb166cex82fce46f6bf4eb52@mail.gmail.com> Message-ID: <4991FD93.7090705@colbyconsulting.com> Philippe, What exactly are you trying to do in the AfterUpdate? John W. Colby www.ColbyConsulting.com From Donald.A.McGillivray at sprint.com Tue Feb 10 16:21:24 2009 From: Donald.A.McGillivray at sprint.com (McGillivray, Don [IT]) Date: Tue, 10 Feb 2009 16:21:24 -0600 Subject: [AccessD] Classes and Events - Feedback In-Reply-To: <4991BF66.1080302@colbyconsulting.com> References: <4991BF66.1080302@colbyconsulting.com> Message-ID: <59F4C79E0A20B74990A3775EF2388A89422AEBA570@PDAWM03C.ad.sprint.com> Reading each one carefully, and doing the exercises. Busy day at work today, so not able to do as much as I want to, but please keep on in this vein. And thanks again for taking the time to do this! Don -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, February 10, 2009 9:55 AM To: Access Developers discussion and problem solving Subject: [AccessD] Classes and Events - Feedback Any "instructor" needs feedback on how they are doing. Just so I can get a feel for how much further to take this and in what detail, could I get a show of hands on who is following the thread. Perhaps: 1) Glancing at it 2) Reading each email 3) Studying each email 4) More detail would be nice 5) Detail is just about right 6) Too much detail 7) Irrelevant detail 8) How would I .... -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com This e-mail may contain Sprint Nextel Company proprietary information intended for the sole use of the recipient(s). Any use by others is prohibited. If you are not the intended recipient, please contact the sender and delete all copies of the message. From ssharkins at gmail.com Tue Feb 10 17:14:02 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Tue, 10 Feb 2009 18:14:02 -0500 Subject: [AccessD] Memo field is truncated References: Message-ID: <0A94891AABD44CB3AF6C69277FD34094@SusanOne> Apparently, removing all criteria did the trick. I told him to just move the criteria fields to the resulting table and query there, which doesn't seem like it should be necessary, but seems to be working. Susan H. > Using the ALL keyword should take care of it: SELECT ALL FROM ... Etc. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins > Sent: Tuesday, February 10, 2009 12:53 PM > To: AccessD at databaseadvisors.com > Subject: [AccessD] Memo field is truncated > > I've seen this discussed many times, but I can't remember the solution > -- a reader's Make Table query is truncating a Memo field to 255 > characters. I've found a few things on the kb, but nothing that seems to > be the exact thing I'm looking for -- nothing for Make Table anyway. > I've sent links to the few articles that are close. > > Does anyone remember what this is -- off the top of your head? > > Susan H. > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From darren at activebilling.com.au Tue Feb 10 17:57:50 2009 From: darren at activebilling.com.au (Darren D) Date: Wed, 11 Feb 2009 10:57:50 +1100 Subject: [AccessD] A2003: Fire Multiple Functions at different times In-Reply-To: <49911458.1185300a.147d.ffffd871@mx.google.com> References: <023801c98b40$6619bb60$131b910a@denzilnote> <49911458.1185300a.147d.ffffd871@mx.google.com> Message-ID: <028301c98bdb$62d143b0$131b910a@denzilnote> Hi Max Sounds Great - yep I'd love to see a copy Many thanks Darren -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, 10 February 2009 4:45 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] A2003: Fire Multiple Functions at different times Darren, I have a program which I call The Magic Roundabout. Basically there for what you want but a lot more powerful in that it has Batches or Classes of functions to run. Schedules etc. I can send the whole caboodle over if you want. I have stopped development in it but would like somebody to continue what has been done so far. The only caveat is that any improvements are offered to the list via a complete mdb. The idea is that windows scheduler loads The Magic Roundabout at a given time (or at boot)and it then sits there running in the background and will do "whatever", singularly or repeatedly or at intervals - as determined by the setup by the user. All highly configurable. One thing it does, for example, is that at a given time it shells out and loads TrueCrypt,mounts the drives (thus making the BE available to users) and then later in the day unmounts the TrueCrypt drives thus users do not see or even known that the BE runs is an encrypted pseudo drive. But if Roundabout is loaded outside of the time params for this particular event then it will not mount truecrypt thus protecting it. Let me know Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Darren D Sent: 10 February 2009 05:28 To: 'Access Developers discussion and problem solving' Subject: [AccessD] A2003: Fire Multiple Functions at different times Hi Team I have a well used main form that has quite a few procedures that fire when tabs are clicked or buttons pushed etc What I'd like to do is move some of the procedure (function) names to a 'function' table and have theses procedures fired off at durations stored in this 'function' table I have this in place now for 1 procedure that runs every 10 minutes using the timer on a hidden form bound to this 'function' table This hidden form opens and sits hidden each time the main form is opened and is closed when this main form is closed I'm sure someone here must have done something like this in the past So I just wanted to know what logic to apply to the 'function' holding table and how to handle multiple, competing and even conflicting durations Perhaps not necessarily with the timer of this hidden form I had in mind... Table Name = tblFunctionToBeRun Field1 = ProcedureName = String (EG: a value might be fGetUserName()) Field2 = HowOften = Number (EG: A value might be 10 to indicate run every 10 Minutes or 60 to run every hour) Field3 = TimeStamp = TimeDate fields (I can get the relative functions to write back just so I can see if it has occurred) And so on Many thanks in advance Darren -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From terry.mace at baesystems.com Tue Feb 10 18:06:36 2009 From: terry.mace at baesystems.com (MACE, Terry) Date: Wed, 11 Feb 2009 11:06:36 +1100 Subject: [AccessD] Classes and Events - Feedback In-Reply-To: <200902101756.n1AHu52c007644@bunya.baea.com.au> References: <200902101756.n1AHu52c007644@bunya.baea.com.au> Message-ID: <3881CF7F5868CA419AAF1179D19F6BAC02B52A9A@abw3ex1.au.baesystems.com> John, I'm in number 5. As your examples are short and easy to implement I am running through them at work and so far it's all making sense. Regards Terry Mace Logistics Support Officer & Maintenance Supervisor -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, 11 February 2009 4:55 AM To: Access Developers discussion and problem solving Subject: [AccessD] Classes and Events - Feedback Any "instructor" needs feedback on how they are doing. Just so I can get a feel for how much further to take this and in what detail, could I get a show of hands on who is following the thread. Perhaps: 1) Glancing at it 2) Reading each email 3) Studying each email 4) More detail would be nice 5) Detail is just about right 6) Too much detail 7) Irrelevant detail 8) How would I .... -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com "Warning: The information contained in this email and any attached files is confidential to BAE Systems Australia. If you are not the intended recipient, any use, disclosure or copying of this email or any attachments is expressly prohibited. If you have received this email in error, please notify us immediately. VIRUS: Every care has been taken to ensure this email and its attachments are virus free, however, any loss or damage incurred in using this email is not the sender's responsibility. It is your responsibility to ensure virus checks are completed before installing any data sent in this email to your computer." From jwcolby at colbyconsulting.com Tue Feb 10 19:56:43 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 10 Feb 2009 20:56:43 -0500 Subject: [AccessD] Classes and Events - Feedback In-Reply-To: <3881CF7F5868CA419AAF1179D19F6BAC02B52A9A@abw3ex1.au.baesystems.com> References: <200902101756.n1AHu52c007644@bunya.baea.com.au> <3881CF7F5868CA419AAF1179D19F6BAC02B52A9A@abw3ex1.au.baesystems.com> Message-ID: <4992305B.20608@colbyconsulting.com> Terry, It is good to hear that the material works. I am just making this up as I go so I was not sure it was working as I had hoped. Thanks for the feedback. John W. Colby www.ColbyConsulting.com MACE, Terry wrote: > John, > I'm in number 5. As your examples are short and easy to implement I am > running through them at work and so far it's all making sense. > > Regards > > Terry Mace > Logistics Support Officer & Maintenance Supervisor > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, 11 February 2009 4:55 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Classes and Events - Feedback > > Any "instructor" needs feedback on how they are doing. Just so I can > get a feel for how much > further to take this and in what detail, could I get a show of hands on > who is following the thread. > Perhaps: > > > 1) Glancing at it > 2) Reading each email > 3) Studying each email > > 4) More detail would be nice > 5) Detail is just about right > 6) Too much detail > 7) Irrelevant detail > > 8) How would I .... From terry.mace at baesystems.com Tue Feb 10 22:35:52 2009 From: terry.mace at baesystems.com (MACE, Terry) Date: Wed, 11 Feb 2009 15:35:52 +1100 Subject: [AccessD] Classes and Events - EVENTS NOT REQUIRED In-Reply-To: <200902101708.n1AH8ljx001334@bunya.baea.com.au> References: <200902101708.n1AH8ljx001334@bunya.baea.com.au> Message-ID: <3881CF7F5868CA419AAF1179D19F6BAC02B52B24@abw3ex1.au.baesystems.com> John, When I run this I get times of 15,31,16,31,16, 109 or some numbers very close to these. Programmers I work with (I'm not one) tell me that while the tick count may be a 1mS interval, Windows XP cannot display time at anywhere near this resolution and effectively time samples, hence the results I'm getting. This operation of Windows (inability to have time to less than 10mS) prevents them from having a Windows based system for their application. Regards Terry Mace Logistics Support Officer & Maintenance Supervisor -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, 11 February 2009 4:08 AM To: Access Developers discussion and problem solving Subject: [AccessD] Classes and Events - EVENTS NOT REQUIRED To this point the classes we have looked at were specifically designed to allow you to "wrap" an object that generates events and add code and variables to process those events. This lecture will demonstrate that classes have other uses and do not have to wrap other objects. The class introduced today will be clsTimer, a means of timing events (things happening) in your code. The class is perhaps the simplest class I have ever written, and perhaps the simplest class you will ever see. * Click Insert / Class * Save immediately as clsTimer * Insert the following code into the class: Private Declare Function apiGetTime Lib "winmm.dll" _ Alias "timeGetTime" () As Long Private lngStartTime As Long Private Sub Class_Initialize() StartTimer End Sub Function EndTimer() EndTimer = apiGetTime() - lngStartTime End Function Sub StartTimer() lngStartTime = apiGetTime() End Sub * Compile and save the class. Notice that in the header of the class we have a function definition apiGetTime that calls out to Windows. This function gets the windows tick timer and has a resolution of 1 millisecond, or one thousandth of a second. This simply means that we can't time anything that takes less than one thousandth of a second without resorting to timing it several times. It returns a long integer that is simply an absolute number of "ticks". Since when? It doesn't matter, it is just "this is the tick count RIGHT NOW". To compute a "time" (and we aren't really doing that, we are calculating a time since the first time), you get the tick count and store it, then later you get another tick and compare it to the first tick. The difference is the number of 1000ths of a second since the first tick count. Notice that we have no mInit() method in this class. Notice also that the Class_Initialize calls the StartTimer() function. As you know now, the Class_Initialize is a class event that fires as the class loads, so this tells the class to load the first tick time as soon as the class instance loads. In the header of the class we dimensioned a long variable lngStartTime. This will be used to store the starting tick count. StartTimer() simply calls out to Windows, gets the current tick count from Windows, and stores that count to lngStartTime. EndTimer() simply calls out to Windows again to get the current tick count, subtracts the current count to the previous count stored in lngStartTime and returns that count to you the programmer. That's it folks! This class has in the header a function definition to call Windows and a place to store the count. In the body of the class it then has two methods to start the "timer" and to return the ticks since the timer started. You are not going to see many classes simpler than that. So let's discuss why we need to encapsulate this in a class. You might be saying that you can do the same thing without the class but a class allows you to create as many of these timers as you want. Let's build some test code to see how this thing works and why we might need several. * In the tools menu click Insert / MODULE. We are building a normal module this time, NOT a class module. * Immediately save the module as basTimerTest * Into this new module insert the following code: Function TmrTest() Dim lngCtr1 As Long Dim lngCtr2 As Long Dim clsTmr1 As clsTimer Dim clsTmr2 As clsTimer Set clsTmr1 = New clsTimer For lngCtr1 = 1 To 5 Set clsTmr2 = New clsTimer For lngCtr2 = 1 To 100000 Pi Next lngCtr2 Debug.Print clsTmr2.EndTimer Next lngCtr1 Debug.Print clsTmr1.EndTimer End Function Function Pi() As Double Dim dblPi As Double dblPi = 4 * Atn(1) Pi = dblPi End Function Notice that we dim two timers, then we SET the timers on the outside of their respective loops. As you know, the SET statement loads the class, at which point the Class_Initialize fires which grabs the first timer tick from windows. The Debug.Print statement simply calls the .EndTimer method of the class and prints it to the debug window. Voila, a timer, with a resolution of one thousandth of a second. TmrTest simulates a real world code where you have two loops, and inner loop and an outer loop. The inner loop times how long it takes to calculate Pi. Notice that modern computers are so fast that I have to do it a hundred thousand times in order to get enough "tick counts" (thousandths of a second) to even get a number to use. The outer loop simply times how long it takes to run the inner loop 5 times. I have intentionally kept this thing simple, but your outer loop might time how long it takes to read a thousand records and the inner loop might be replaced with timing how long it takes to ... transform a string from comma delimited to pipe delimited or something like that. In this lecture we have demonstrated that a class encapsulates all of the code required to perform its function, plus the variables required to store its data. It also demonstrates that you can use as many instances of the class as you need. If you need one or a hundred timers, you just dim and SET the variables and you are off to the races so to speak. Classes are used to encapsulate code and data required to implement a system. You're your imagination is the only limit to what that system can be. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com "Warning: The information contained in this email and any attached files is confidential to BAE Systems Australia. If you are not the intended recipient, any use, disclosure or copying of this email or any attachments is expressly prohibited. If you have received this email in error, please notify us immediately. VIRUS: Every care has been taken to ensure this email and its attachments are virus free, however, any loss or damage incurred in using this email is not the sender's responsibility. It is your responsibility to ensure virus checks are completed before installing any data sent in this email to your computer." From jwcolby at colbyconsulting.com Tue Feb 10 22:38:17 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 10 Feb 2009 23:38:17 -0500 Subject: [AccessD] Classes - A little encouragement Message-ID: <49925639.3070603@colbyconsulting.com> I just wanted to suggest that you look at the times of the lecture emails that I created. While I did cut and paste a little of the code, by and large it was typed into Access from my head, compiled, and the lecture created, all in real time. My point is not to demonstrate how much I know nor how skilled I am, in fact just the opposite. I am good at what I do but I am not any better than any of you. My point is simply that I understand this stuff, and more importantly once YOU understand it, this is how long it will take YOU to do these kinds of things. Most of you can sit down and type in code into an editor, compile and run it. The stuff you already know is just that easy, you just have never learned Classes and Events, whereas I have. You can do this, and you can be doing this in a matter of hours or days. You can be fluent in this in a matter of days or weeks, and once you are, your ability to build complex systems will move to an entirely new level. Hang in there people. Study this stuff. Study it now, if not today then this week, this weekend. I do not promise that you will be class and event gurus in a day but you can be using them comfortably in a few days or weeks. I will tell you that it takes a little while to convert your thinking to the class paradigm. I can help with that as well. Think systems, think objects. I now view classes very similarly to how I view normalization of tables. Because most of you are already comfortable with that normalization concept, thinking in class terms can be quite easy. A class represents an object, in much the same way that a table represents an object. Really the difference is that a table can hold ONLY THE DATA about an object, whereas a class can ALSO store the code to make the object come alive. However just like tables, each class needs to represent ONE THING. We all know that storing data about multiple objects in a single table (denormalization) is generally a bad idea. In the same way, using a single class to store data and code about more than one object is generally a bad thing. Coming from Access we already use and understand objects - controls, forms, recordsets, fields and so forth. In fact EVERYTHING IN ACCESS IS AN OBJECT!!! We already understand properties of objects and methods of objects. Your own custom written classes are nothing more than objects with properties and methods. Your objects can wrap another object such as a control and give you a place to store your own code to turn that combo (for example) into a record selector combo. To allow a form or a control to automatically save changing data into a log file. Your classes can use other classes that you or other people write. Sometimes systems require two or three objects (classes) to implement. A class is used to encapsulate or wrap up all of the code and variables required to represent that object, to store the information about an instance of that object, and to manipulate the data however you need to in order to make the object behave as the object needs to behave to accomplish your objectives. I am here to tell you that if I can do this stuff, then so can you. Yea, I have been doing it for a few years now but you will never be able to say that until you have decided to learn it too, and more importantly JUST DO IT. I say it again, it is EASY, you just have to read each lecture, maybe even twice and step through the code, and suddenly you too will see how and why this stuff works. I invite all of you to join this little club I belong to (along with quite a few other list members), class users. -- John W. Colby www.ColbyConsulting.com From stuart at lexacorp.com.pg Tue Feb 10 23:09:32 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 11 Feb 2009 15:09:32 +1000 Subject: [AccessD] Classes and Events - EVENTS NOT REQUIRED In-Reply-To: <3881CF7F5868CA419AAF1179D19F6BAC02B52B24@abw3ex1.au.baesystems.com> References: <200902101708.n1AH8ljx001334@bunya.baea.com.au>, <3881CF7F5868CA419AAF1179D19F6BAC02B52B24@abw3ex1.au.baesystems.com> Message-ID: <4992EA2C.26933.4C3E68@stuart.lexacorp.com.pg> JC is using the timeGetTime() API call. Windows95/98 has a 1ms resolution for this W2K/XP generally have a resolution of about 10ms My Vista machiine has a resolution of 1ms, so it looks as though MS may have fixed this. Note however: - you can use the timeBeginPeriod() API call to increase the granularity in W2K/XP. - it is a low priority call and can be delayed or even dropped if the queue is busy. Another problem is that it rolls over every 49 days so there is a *very* slight possibility that the Stop time may be much smaller than the Start time. If your programmers want accurate time, they should be using QueryPerformanceFrequency and QueryPerformanceCounter, using them you can get sub- microsecond (close to nanosecond) accuracy. Try pasting this into a Module and see what your numbers are like. Option Explicit Declare Function QueryPerformanceCounter Lib "Kernel32" _ (X As Currency) As Boolean Declare Function QueryPerformanceFrequency Lib "Kernel32" _ (X As Currency) As Boolean Declare Function GetTickCount Lib "Kernel32" () As Long Declare Function timeGetTime Lib "winmm.dll" () As Long Sub Test_Timers() Dim Ctr1 As Currency, Ctr2 As Currency, Freq As Currency Dim Count1 As Long, Count2 As Long, Loops As Long ' ' Time QueryPerformanceCounter ' If QueryPerformanceCounter(Ctr1) Then QueryPerformanceCounter Ctr2 Debug.Print "Start Value: "; Format$(Ctr1, "0.0000") Debug.Print "End Value: "; Format$(Ctr2, "0.0000") QueryPerformanceFrequency Freq Debug.Print "QueryPerformanceCounter minimum resolution: 1/" & _ Freq * 10000; " sec" Debug.Print "API Overhead: "; (Ctr2 - Ctr1) / Freq; "seconds" Else Debug.Print "High-resolution counter not supported." End If ' ' Time GetTickCount ' Debug.Print Loops = 0 Count1 = GetTickCount() Do Count2 = GetTickCount() Loops = Loops + 1 Loop Until Count1 <> Count2 Debug.Print "GetTickCount minimum resolution: "; _ (Count2 - Count1); "ms" Debug.Print "Took"; Loops; "loops" ' ' Time timeGetTime ' Debug.Print Loops = 0 Count1 = timeGetTime() Do Count2 = timeGetTime() Loops = Loops + 1 Loop Until Count1 <> Count2 Debug.Print "timeGetTime minimum resolution: "; _ (Count2 - Count1); "ms" Debug.Print "Took"; Loops; "loops" End Sub On 11 Feb 2009 at 15:35, MACE, Terry wrote: > John, > > When I run this I get times of 15,31,16,31,16, 109 or some numbers very > close to these. Programmers I work with (I'm not one) tell me that while > the tick count may be a 1mS interval, Windows XP cannot display time at > anywhere near this resolution and effectively time samples, hence the > results I'm getting. > > This operation of Windows (inability to have time to less than 10mS) > prevents them from having a Windows based system for their application. > > Regards > > Terry Mace > Logistics Support Officer & Maintenance Supervisor > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, 11 February 2009 4:08 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Classes and Events - EVENTS NOT REQUIRED > > To this point the classes we have looked at were specifically designed > to allow you to "wrap" an > object that generates events and add code and variables to process those > events. This lecture will > demonstrate that classes have other uses and do not have to wrap other > objects. > > The class introduced today will be clsTimer, a means of timing events > (things happening) in your > code. The class is perhaps the simplest class I have ever written, and > perhaps the simplest class > you will ever see. > > * Click Insert / Class > * Save immediately as clsTimer > * Insert the following code into the class: > > Private Declare Function apiGetTime Lib "winmm.dll" _ > Alias "timeGetTime" () As Long > > Private lngStartTime As Long > > Private Sub Class_Initialize() > StartTimer > End Sub > > Function EndTimer() > EndTimer = apiGetTime() - lngStartTime > End Function > > Sub StartTimer() > lngStartTime = apiGetTime() > End Sub > > * Compile and save the class. > > Notice that in the header of the class we have a function definition > apiGetTime that calls out to > Windows. This function gets the windows tick timer and has a resolution > of 1 millisecond, or one > thousandth of a second. This simply means that we can't time anything > that takes less than one > thousandth of a second without resorting to timing it several times. It > returns a long integer that > is simply an absolute number of "ticks". Since when? It doesn't > matter, it is just "this is the > tick count RIGHT NOW". > > To compute a "time" (and we aren't really doing that, we are calculating > a time since the first > time), you get the tick count and store it, then later you get another > tick and compare it to the > first tick. The difference is the number of 1000ths of a second since > the first tick count. > > Notice that we have no mInit() method in this class. Notice also that > the Class_Initialize calls > the StartTimer() function. As you know now, the Class_Initialize is a > class event that fires as the > class loads, so this tells the class to load the first tick time as soon > as the class instance loads. > > In the header of the class we dimensioned a long variable lngStartTime. > This will be used to store > the starting tick count. StartTimer() simply calls out to Windows, gets > the current tick count from > Windows, and stores that count to lngStartTime. > > EndTimer() simply calls out to Windows again to get the current tick > count, subtracts the current > count to the previous count stored in lngStartTime and returns that > count to you the programmer. > > That's it folks! This class has in the header a function definition to > call Windows and a place to > store the count. In the body of the class it then has two methods to > start the "timer" and to > return the ticks since the timer started. You are not going to see many > classes simpler than that. > > So let's discuss why we need to encapsulate this in a class. You might > be saying that you can do > the same thing without the class but a class allows you to create as > many of these timers as you > want. Let's build some test code to see how this thing works and why we > might need several. > > * In the tools menu click Insert / MODULE. We are building a > normal module this time, NOT a class > module. > * Immediately save the module as basTimerTest > * Into this new module insert the following code: > > Function TmrTest() > Dim lngCtr1 As Long > Dim lngCtr2 As Long > Dim clsTmr1 As clsTimer > Dim clsTmr2 As clsTimer > > Set clsTmr1 = New clsTimer > For lngCtr1 = 1 To 5 > Set clsTmr2 = New clsTimer > For lngCtr2 = 1 To 100000 > Pi > Next lngCtr2 > Debug.Print clsTmr2.EndTimer > Next lngCtr1 > Debug.Print clsTmr1.EndTimer > End Function > > Function Pi() As Double > Dim dblPi As Double > dblPi = 4 * Atn(1) > Pi = dblPi > End Function > > Notice that we dim two timers, then we SET the timers on the outside of > their respective loops. As > you know, the SET statement loads the class, at which point the > Class_Initialize fires which grabs > the first timer tick from windows. > > The Debug.Print statement simply calls the .EndTimer method of the class > and prints it to the debug > window. > > Voila, a timer, with a resolution of one thousandth of a second. > > TmrTest simulates a real world code where you have two loops, and inner > loop and an outer loop. > > The inner loop times how long it takes to calculate Pi. Notice that > modern computers are so fast > that I have to do it a hundred thousand times in order to get enough > "tick counts" (thousandths of a > second) to even get a number to use. The outer loop simply times how > long it takes to run the inner > loop 5 times. > > I have intentionally kept this thing simple, but your outer loop might > time how long it takes to > read a thousand records and the inner loop might be replaced with timing > how long it takes to ... > transform a string from comma delimited to pipe delimited or something > like that. > > In this lecture we have demonstrated that a class encapsulates all of > the code required to perform > its function, plus the variables required to store its data. It also > demonstrates that you can use > as many instances of the class as you need. If you need one or a > hundred timers, you just dim and > SET the variables and you are off to the races so to speak. > > Classes are used to encapsulate code and data required to implement a > system. You're your > imagination is the only limit to what that system can be. > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > "Warning: > The information contained in this email and any attached files is > confidential to BAE Systems Australia. If you are not the intended > recipient, any use, disclosure or copying of this email or any > attachments is expressly prohibited. If you have received this email > in error, please notify us immediately. VIRUS: Every care has been > taken to ensure this email and its attachments are virus free, > however, any loss or damage incurred in using this email is not the > sender's responsibility. It is your responsibility to ensure virus > checks are completed before installing any data sent in this email to > your computer." > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Feb 10 23:13:51 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 00:13:51 -0500 Subject: [AccessD] Classes and Events - EVENTS NOT REQUIRED In-Reply-To: <3881CF7F5868CA419AAF1179D19F6BAC02B52B24@abw3ex1.au.baesystems.com> References: <200902101708.n1AH8ljx001334@bunya.baea.com.au> <3881CF7F5868CA419AAF1179D19F6BAC02B52B24@abw3ex1.au.baesystems.com> Message-ID: <49925E8F.90303@colbyconsulting.com> Terry, The results you are getting is most likely explained by the fact that Windows is a multi-tasking operating system and is dashing off to process code other than your own, then coming back to give your program more time. It is true that Windows cannot accurately "time" anything. However the timer class is not useless, it still can give you "relative times". When we program we are constantly searching for bottle necks. I do not care if my timer class tells me to within a millisecond how long something takes each and every time it runs, what I care about is that it CAN tell me that process A is so fast that it takes essentially no time, whereas query B takes 40 seconds. That tells me that spending time optimizing process A is useless, whereas spending time optimizing Query B may make a tremendous difference in how fast my application appears to the user. Like anything in life, there are those who see lemons, and those who make lemonade. Your programmer friends see lemons, I see a tool that is quite useful, IF you know how to apply it. In real life I use a framework I built. I have a form class, and I can time how long it takes for my forms to open. I have a table where I log each and every time a user opens any form. After a few months I now have a very good picture of which users have "slow computers", what the very fastest time that any given machine has opened any given form, the longest time that any given machine has taken to open any given form, the average time for each machine to open any given form. This is useful data. It tells me which forms take a long time regardless of the machine. It tells my client which machines to target with memory upgrades or even replacement as they buy new machines. When I change a query it tells me if I helped or hurt the open times. All from a timer class that can't accurately time anything!!! I told you that it was not literally a timer, that it simply counted the ticks between things. In a Windows computer, the number of ticks will vary from run to run, quite true, but also quite irrelevant for many applications. And finally, if you truly do need to learn approximately how long some piece of code literally takes, then you can always time enough samples and average the samples. Try to prevent other things from running, for example do not defrag your disk while running your code. Work with what you have and understand the limitations. > This operation of Windows (inability to have time to less than 10mS) ... This is simply not true. The tick count is in fact 1 millisecond, and USUALLY you will get results to 1 millisecond. There is a whole ton of stuff that goes on in a multi-tasking OS, and yes (I have heard) that the time slices given to a given app is 10 ms. You will NEVER be able to use Windows to accurately time anything (code), end of report. That said, the fact that a 10 millisecond slice is given to some app doesn't mean that it necessarily keeps control for 10 ms. Often times applications will know that they are waiting for something to complete and yield back their time to the system. Again though, the fact that your friends need to accurately time something specific and can't use Windows to do that does not mean that nothing in the universe can use Windows to discover useful information about how long things take. You and I live in a HUMAN world. More often than not we care about seconds, minutes and hours, not milliseconds. How long does it take to open a report? OK, now how long does it take when I change the query? Now time it again after making another change. If it is taking 45 seconds and you make a change and now it takes 30 seconds, Windows can measure that, and do so to an accuracy that is beyond your requirements to know. John W. Colby www.ColbyConsulting.com MACE, Terry wrote: > John, > > When I run this I get times of 15,31,16,31,16, 109 or some numbers very > close to these. Programmers I work with (I'm not one) tell me that while > the tick count may be a 1mS interval, Windows XP cannot display time at > anywhere near this resolution and effectively time samples, hence the > results I'm getting. > > This operation of Windows (inability to have time to less than 10mS) > prevents them from having a Windows based system for their application. > > Regards > > Terry Mace > Logistics Support Officer & Maintenance Supervisor From jwcolby at colbyconsulting.com Tue Feb 10 23:22:04 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 00:22:04 -0500 Subject: [AccessD] Classes and Events - EVENTS NOT REQUIRED In-Reply-To: <4992EA2C.26933.4C3E68@stuart.lexacorp.com.pg> References: <200902101708.n1AH8ljx001334@bunya.baea.com.au>, <3881CF7F5868CA419AAF1179D19F6BAC02B52B24@abw3ex1.au.baesystems.com> <4992EA2C.26933.4C3E68@stuart.lexacorp.com.pg> Message-ID: <4992607C.8050100@colbyconsulting.com> Stuart, My understanding of the 10 ms deal is simply that each time slice allocated by the OS (pre-emptive multitasker) is 10 ms. The tick count is still 1 ms regardless of the time slice length, even for XP / 2K. Again my understanding is that the tick count comes off the system clock. I will admit it has been a long time since I looked at that stuff however. http://www.experts-exchange.com/Programming/Misc/Q_21889245.html Who know how accurate these "experts" are, but it SOUNDS good! ;-) John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > JC is using the timeGetTime() API call. > > Windows95/98 has a 1ms resolution for this > W2K/XP generally have a resolution of about 10ms > My Vista machiine has a resolution of 1ms, so it looks as though MS may have fixed this. > > Note however: > - you can use the timeBeginPeriod() API call to increase the granularity in W2K/XP. > - it is a low priority call and can be delayed or even dropped if the queue is busy. > > Another problem is that it rolls over every 49 days so there is a *very* slight possibility that > the Stop time may be much smaller than the Start time. > > If your programmers want accurate time, they should be using > QueryPerformanceFrequency and QueryPerformanceCounter, using them you can get sub- > microsecond (close to nanosecond) accuracy. > > Try pasting this into a Module and see what your numbers are like. > > > > Option Explicit > > Declare Function QueryPerformanceCounter Lib "Kernel32" _ > (X As Currency) As Boolean > Declare Function QueryPerformanceFrequency Lib "Kernel32" _ > (X As Currency) As Boolean > Declare Function GetTickCount Lib "Kernel32" () As Long > Declare Function timeGetTime Lib "winmm.dll" () As Long > > Sub Test_Timers() > Dim Ctr1 As Currency, Ctr2 As Currency, Freq As Currency > Dim Count1 As Long, Count2 As Long, Loops As Long > ' > ' Time QueryPerformanceCounter > ' > If QueryPerformanceCounter(Ctr1) Then > QueryPerformanceCounter Ctr2 > Debug.Print "Start Value: "; Format$(Ctr1, "0.0000") > Debug.Print "End Value: "; Format$(Ctr2, "0.0000") > QueryPerformanceFrequency Freq > Debug.Print "QueryPerformanceCounter minimum resolution: 1/" & _ > Freq * 10000; " sec" > Debug.Print "API Overhead: "; (Ctr2 - Ctr1) / Freq; "seconds" > Else > Debug.Print "High-resolution counter not supported." > End If > ' > ' Time GetTickCount > ' > Debug.Print > Loops = 0 > Count1 = GetTickCount() > Do > Count2 = GetTickCount() > Loops = Loops + 1 > Loop Until Count1 <> Count2 > Debug.Print "GetTickCount minimum resolution: "; _ > (Count2 - Count1); "ms" > Debug.Print "Took"; Loops; "loops" > ' > ' Time timeGetTime > ' > Debug.Print > Loops = 0 > Count1 = timeGetTime() > Do > Count2 = timeGetTime() > Loops = Loops + 1 > Loop Until Count1 <> Count2 > Debug.Print "timeGetTime minimum resolution: "; _ > (Count2 - Count1); "ms" > Debug.Print "Took"; Loops; "loops" > End Sub > > From rockysmolin at bchacc.com Tue Feb 10 23:28:29 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 10 Feb 2009 21:28:29 -0800 Subject: [AccessD] A2007 - Programmatically Minimize Ribbon In-Reply-To: <8786a4c00902101308m1749c66dt9da3a729b8d558a@mail.gmail.com> References: <498AE648.5745.9E8FF2@stuart.lexacorp.com.pg><498B3D9A.4050101@colbyconsulting.com><89EF8FE5FF304931957A573508FD7250@jislaptopdev> <8786a4c00902101308m1749c66dt9da3a729b8d558a@mail.gmail.com> Message-ID: David: Got your sample. Thank you. It works as advertised. What I was trying to do was minimize versus disappear the tool bar. Because during development I need that minimized toolbar to get to form view, code view, etc. And (more importantly) the client asked to have the app open always with the toolbar minimized. But I think that I will use your code and open the app with the toolbar disappeared, and put an invisible label at the lower left and lower right for me to click to make the toolbar appear and disappear. Walla, best of both worlds. Thanks and regards, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of David McAfee Sent: Tuesday, February 10, 2009 1:09 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon Rocky, want to try my sample out and see if it works on your box? On Fri, Feb 6, 2009 at 11:10 PM, William Hindman wrote: > "truly annoying to developers" jc > > ...they succeeded beyond their wildest dreams :( > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Thursday, February 05, 2009 2:27 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] A2007 - Programmatically Minimize Ribbon > >> > Any ideas what's going on? >> >> Simple really, MS is DAMNED PROUD of their ribbon and is making sure >> that you see it! They spent several million dollars on usability >> studies to make sure that the ribbon was useful to power users and >> spent about another 10 million or so to make sure that it was truly >> annoying to developers, and they aren't about to let their investment >> slip through their fingers! >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Rocky Smolin at Beach Access Software wrote: >>> Stuart: >>> >>> Well, dang. It doesn't work. I put Call MinimizeRibbon in the >>> _Open event, >>> but the ribbon ended up maximized anyway. SO I moved it right at the >>> end >>> of the _Open event on the theory that maybe some of the housekeeping >>> (resizing the form, maximizing the form, etc.) was affecting the ribbon. >>> But no soap. >>> >>> So I moved it to the _Activate event. Same result. So I put MsgBox >>> RibbonMinimized in the RibbonMinimized Function to see what the >>> value was on the call. With the Call to MinimizeRibbon in the >>> Activate event, it gets called 3 times. Each time the value of >>> RibbonMinimized is True and the ribbon is indeed minimized. >>> >>> Then right at the end of the opening process, the ribbon re-appears. >>> >>> Ctrl-F1 from the keyboard toggles the ribbon nicely. And the code >>> looks like it should work. And I stepped through it just to see >>> what it was doing. >>> >>> Any ideas what's going on? >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Tue Feb 10 23:55:38 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 11 Feb 2009 15:55:38 +1000 Subject: [AccessD] Classes and Events - EVENTS NOT REQUIRED In-Reply-To: <4992607C.8050100@colbyconsulting.com> References: <200902101708.n1AH8ljx001334@bunya.baea.com.au>, <4992EA2C.26933.4C3E68@stuart.lexacorp.com.pg>, <4992607C.8050100@colbyconsulting.com> Message-ID: <4992F4FA.22168.7672F0@stuart.lexacorp.com.pg> On 11 Feb 2009 at 0:22, jwcolby wrote: > Stuart, > > My understanding of the 10 ms deal is simply that each time slice allocated by the OS (pre-emptive > multitasker) is 10 ms. The tick count is still 1 ms regardless of the time slice length, even for > XP / 2K. Again my understanding is that the tick count comes off the system clock. I will admit it > has been a long time since I looked at that stuff however. > It's all about how often a clock interrupt is generated: "Microsoft Windows XP uses a periodic clock interrupt to keep track of time, trigger timer objects, and decrement thread quantum. When Windows XP boots, the typical default clock interrupt period is 10 milliseconds, although a period of 15 milliseconds is used on some systems. That means that every 10 milliseconds, the operating system receives an interrupt from the system timer hardware. " This is from http://www.microsoft.com/whdc/system/sysinternals/mm-timer.mspx which is all about the requirements for a new timer in chipsets for future Windows versions. It is an interesting read. It has a very good description of the problems inherent in the current hardware clocks and why there is a need for low-overhead true millisecond timers. -- Stuart From max.wanadoo at gmail.com Wed Feb 11 02:20:21 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 11 Feb 2009 08:20:21 -0000 Subject: [AccessD] A2003: Fire Multiple Functions at different times In-Reply-To: <028301c98bdb$62d143b0$131b910a@denzilnote> References: <023801c98b40$6619bb60$131b910a@denzilnote> <49911458.1185300a.147d.ffffd871@mx.google.com> <028301c98bdb$62d143b0$131b910a@denzilnote> Message-ID: <49928a4b.08e9300a.5857.6ea0@mx.google.com> Hi Darren, Sent off line max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Darren D Sent: 10 February 2009 23:58 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] A2003: Fire Multiple Functions at different times Hi Max Sounds Great - yep I'd love to see a copy Many thanks Darren -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, 10 February 2009 4:45 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] A2003: Fire Multiple Functions at different times Darren, I have a program which I call The Magic Roundabout. Basically there for what you want but a lot more powerful in that it has Batches or Classes of functions to run. Schedules etc. I can send the whole caboodle over if you want. I have stopped development in it but would like somebody to continue what has been done so far. The only caveat is that any improvements are offered to the list via a complete mdb. The idea is that windows scheduler loads The Magic Roundabout at a given time (or at boot)and it then sits there running in the background and will do "whatever", singularly or repeatedly or at intervals - as determined by the setup by the user. All highly configurable. One thing it does, for example, is that at a given time it shells out and loads TrueCrypt,mounts the drives (thus making the BE available to users) and then later in the day unmounts the TrueCrypt drives thus users do not see or even known that the BE runs is an encrypted pseudo drive. But if Roundabout is loaded outside of the time params for this particular event then it will not mount truecrypt thus protecting it. Let me know Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Darren D Sent: 10 February 2009 05:28 To: 'Access Developers discussion and problem solving' Subject: [AccessD] A2003: Fire Multiple Functions at different times Hi Team I have a well used main form that has quite a few procedures that fire when tabs are clicked or buttons pushed etc What I'd like to do is move some of the procedure (function) names to a 'function' table and have theses procedures fired off at durations stored in this 'function' table I have this in place now for 1 procedure that runs every 10 minutes using the timer on a hidden form bound to this 'function' table This hidden form opens and sits hidden each time the main form is opened and is closed when this main form is closed I'm sure someone here must have done something like this in the past So I just wanted to know what logic to apply to the 'function' holding table and how to handle multiple, competing and even conflicting durations Perhaps not necessarily with the timer of this hidden form I had in mind... Table Name = tblFunctionToBeRun Field1 = ProcedureName = String (EG: a value might be fGetUserName()) Field2 = HowOften = Number (EG: A value might be 10 to indicate run every 10 Minutes or 60 to run every hour) Field3 = TimeStamp = TimeDate fields (I can get the relative functions to write back just so I can see if it has occurred) And so on Many thanks in advance Darren -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Wed Feb 11 04:24:04 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 11 Feb 2009 11:24:04 +0100 Subject: [AccessD] One millisecond resolution (was: Classes and Events - EVENTS NOT REQUIRED) Message-ID: Hi Terry Your programmers may have to look a bit deeper into this. While I have no reason to doubt the articles of the links from Stuart and John on the hardware limitations, Windows XP behaves a bit clever than stated. Stuart mentions the API call timeBeginPeriod but doesn't show how to use it which is as simple as can be (more on this later). If you are really interested in the millisecond business, not only for timing purposes but also to obtain absolute time, I can recommend the article here: http://www.devx.com/dbzone/Article/39046 A free registration is required to access the page and download. If you download the code with a bunch of functions, you'll find these two: Msec() FormatMsec() The first returns the current time with a resolution of 1 ms and an accuracy of something close. The next formats a date/time value with milliseconds for you to read as VB(A) rounds milliseconds to the second when displaying date/time values. If you create a very simple loop, you are able to create a list of milliseconds from time values with a difference less than 1 ms as the code runs in about 0.5 ms per loop: For n = 0 to 10 : ? FormatMsec(Msec,"i") : Next .996 .997 .997 .998 .998 .998 .999 .999 .000 .001 .001 To obtain this, timeBeginPeriod is called as shown here: Public Function Msec( _ Optional ByVal intTimePart As Integer) _ As Date ' Generates the current time with millisecond resolution. ' ' Returns current (local) date/time including millisecond. ' Parameter intTimePart determines level of returned value: ' 0: Millisecond value only. ' 1: Time value only including milliseconds. ' 2: Full Date/time value including milliseconds. ' None or any other value: Millisecond value only. ' ' 2007-06-05. Cactus Data ApS. CPH. Const cintMsecOnly As Integer = 0 Const cintMsecTime As Integer = 1 Const cintMsecDate As Integer = 2 Static typTime As SYSTEMTIME Static lngMsecInit As Long Dim datMsec As Date Dim datDate As Date Dim intMilliseconds As Integer Dim lngTimeZoneBias As Long Dim lngMsec As Long Dim lngMsecCurrent As Long Dim lngMsecOffset As Long ' Set resolution of timer to 1 ms. timeBeginPeriod 1 lngMsecCurrent = timeGetTime() If lngMsecInit = 0 Or lngMsecCurrent < lngMsecInit Then ' Initialize. ' Get bias for local time zone respecting ' current setting for daylight savings. lngTimeZoneBias = GetLocalTimeZoneBias(False) ' Get current UTC system time. Call GetSystemTime(typTime) intMilliseconds = typTime.wMilliseconds ' Repeat until GetSystemTime retrieves next count of milliseconds. ' Then retrieve and store count of milliseconds from launch. Do Call GetSystemTime(typTime) Loop Until typTime.wMilliseconds <> intMilliseconds lngMsecInit = timeGetTime() ' Adjust UTC to local system time by correcting for time zone bias. typTime.wMinute = typTime.wMinute - lngTimeZoneBias ' Note: typTime may now contain an invalid (zero or negative) minute count. ' However, the minute count is acceptable by TimeSerial(). Else ' Retrieve offset from initial time to current time. lngMsecOffset = lngMsecCurrent - lngMsecInit End If With typTime ' Now, current system time is initial system time corrected for ' time zone bias. lngMsec = (.wMilliseconds + lngMsecOffset) Select Case intTimePart Case cintMsecTime, cintMsecDate ' Calculate the time to add as a date/time value with millisecond resolution. datMsec = lngMsec / 1000 / clngSecondsPerDay ' Add to this the current system time. datDate = datMsec + TimeSerial(.wHour, .wMinute, .wSecond) If intTimePart = cintMsecDate Then ' Add to this the current system date. datDate = datDate + DateSerial(.wYear, .wMonth, .wDay) End If Case Else ' Calculate millisecond part as a date/time value with millisecond resolution. datMsec = (lngMsec Mod 1000) / 1000 / clngSecondsPerDay ' Return millisecond part only. datDate = datMsec End Select End With Msec = datDate End Function As you can see, the function "initiallizes" by running a loop to "sync" the absolute time of a lower 10 ms resolution with the timer with the 1 ms resolution. This is, by the way, a perfect example of something that could be moved to the Initialize method of a class but, for the purpose the functions originally were developed, this was not practical. To run the code you'll need some constants and declarations. These are listed in the module for download to be found here: http://assets.devx.com/sourcecode/AccessMillisecond.ZIP /gustav >>> terry.mace at baesystems.com 11-02-2009 05:35 >>> John, When I run this I get times of 15,31,16,31,16, 109 or some numbers very close to these. Programmers I work with (I'm not one) tell me that while the tick count may be a 1mS interval, Windows XP cannot display time at anywhere near this resolution and effectively time samples, hence the results I'm getting. This operation of Windows (inability to have time to less than 10mS) prevents them from having a Windows based system for their application. Regards Terry Mace Logistics Support Officer & Maintenance Supervisor From jwcolby at colbyconsulting.com Wed Feb 11 07:42:36 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 08:42:36 -0500 Subject: [AccessD] Build tables programatically Message-ID: <4992D5CC.7030105@colbyconsulting.com> For the class lecture it would be handy to be able to build Access tables programatically. I do not know how to do this, though the authors of books usually do so. Does anyone on this list have any code library that would allow me to create field X with data type Y, that is a PK etc etc. Having that, I can build append queries to append specific data into these tables, but if anyone has such a thing, code to extract actual data from a table and write the SQL Statements that would append that into a specific table would be nice. IOW (for example) I have an existing state table and an agency table with a state ID. In order to minimize the impact on the readers having to go manually create a state and agency table and manually input data into those tables, it would be nice to provide code that builds those two tables and then populates those tables with a few data elements. Ideas anyone? -- John W. Colby www.ColbyConsulting.com From ssharkins at gmail.com Wed Feb 11 07:55:20 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Wed, 11 Feb 2009 08:55:20 -0500 Subject: [AccessD] Import Bad data? References: <499039E4.9060903@colbyconsulting.com><383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> Message-ID: <6A4FC480A30D42958CF1D23ADB1356E0@SusanOne> I'd run it through Excel first -- import it, save it -- import it into Access via the Excel worksheet. Might not work, but I've seen it work. Susan H. ----- Original Message ----- From: "Mark A Matte" To: Sent: Monday, February 09, 2009 11:05 AM Subject: [AccessD] Import Bad data? Hello All, I'm not expecting an answer I'll like...but I'll try. I'm importing a large number of records from Informix to Access via odbc. There is a large text/memo field...that apparently has some characters access does not like. I do not get an error message...access just says "an error has occurred...do you want to tell MS"...then closes. I'm trying to think of a way to detect/program around this. So far...its a very manual process. I loop through 2 days worth at a time...that way I don't have to start over from the beginning everytime. When it crashes...I pull in just the PKs for that date range...loop through them...imort the text field 1 record at a time...store in temp table...when it crashes...I compare the PKs to the temp table...the next PK not in the temp is the offender. This is very manual and time consuming...any ideas/suggestions? Thanks, Mark A. Matte _________________________________________________________________ Windows Live?: E-mail. Chat. Share. Get more ways to connect. http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_HM_AE_Faster_022009 -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From drawbridgej at sympatico.ca Wed Feb 11 07:59:07 2009 From: drawbridgej at sympatico.ca (Jack and Pat) Date: Wed, 11 Feb 2009 08:59:07 -0500 Subject: [AccessD] Classes and Events - Feedback In-Reply-To: <4992305B.20608@colbyconsulting.com> References: <200902101756.n1AHu52c007644@bunya.baea.com.au><3881CF7F5868CA419AAF1179D19F6BAC02B52A9A@abw3ex1.au.baesystems.com> <4992305B.20608@colbyconsulting.com> Message-ID: <03C9B64F5D6844D79CC5BC5A435B9BB9@home6399619597> John, This is great. Classes have always seemed just a little complex. These materials you are providing to us - and the surrounding emails are simply great! Detail is about right (5). I am following this with renewed interest. Thank you for your efforts and your enthusiasm. jack > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, 11 February 2009 4:55 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Classes and Events - Feedback > > Any "instructor" needs feedback on how they are doing. Just so I can > get a feel for how much > further to take this and in what detail, could I get a show of hands on > who is following the thread. > Perhaps: > > > 1) Glancing at it > 2) Reading each email > 3) Studying each email > > 4) More detail would be nice > 5) Detail is just about right > 6) Too much detail > 7) Irrelevant detail > > 8) How would I .... -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From j.r.porter at strath.ac.uk Wed Feb 11 08:12:42 2009 From: j.r.porter at strath.ac.uk (John Porter) Date: Wed, 11 Feb 2009 14:12:42 +0000 Subject: [AccessD] Classes and Events - Feedback In-Reply-To: <4991BF66.1080302@colbyconsulting.com> References: <4991BF66.1080302@colbyconsulting.com> Message-ID: 3) and 5) I've often thought about classes, but never really got to grips with them. I'm finding your e-mails very helpful. Thanks, John John R. Porter IT Services University of Strathclyde Jordanhill Campus 86 Southbrae Drive Glasgow G13 1PP e-mail: j.r.porter at strath.ac.uk Tel.: 0141 950 3289 The University of Strathclyde is a charitable body, registered in Scotland, with registration number SC015263 -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 10 February 2009 17:55 To: Access Developers discussion and problem solving Subject: [AccessD] Classes and Events - Feedback Any "instructor" needs feedback on how they are doing. Just so I can get a feel for how much further to take this and in what detail, could I get a show of hands on who is following the thread. Perhaps: 1) Glancing at it 2) Reading each email 3) Studying each email 4) More detail would be nice 5) Detail is just about right 6) Too much detail 7) Irrelevant detail 8) How would I .... -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From JHewson at nciinc.com Wed Feb 11 08:18:37 2009 From: JHewson at nciinc.com (Hewson, Jim ) Date: Wed, 11 Feb 2009 08:18:37 -0600 Subject: [AccessD] Build tables programatically In-Reply-To: <4992D5CC.7030105@colbyconsulting.com> References: <4992D5CC.7030105@colbyconsulting.com> Message-ID: <7E02B06E41E5404589EDDDA2BAA1C5A83EC96D@sanex101.nciinc.com> John, I have an Access 2003 database that uses A2007 runtime on a client's machine. The data store is located on the client's C:\ Drive so any changes made to the data store needs to be done through the front end. I use a function called from a Module... I still haven't wrapped my head around a class. When I modify the front end the links to the tables are created before I place a new copy on the client's machine. Therefore all I need to do is "relink" the tables. Here it is - HTH... Function UpdateTable() Dim dbRemote As Database Dim db As Database Dim tDef As TableDef Dim tdefs As TableDefs Dim strFileName As String strFileName = "C:\DiaconateDatabase\DiaconateData.mdb" Set dbRemote = OpenDatabase(strFileName) dbRemote.Execute "CREATE TABLE tblConEdGroups (ConEdGroupID AutoIncrement, ConEdGroup Text(50), MaxPerYr Single, CONSTRAINT tblConEdGroups_PK PRIMARY KEY(ConEdGroupID));" dbRemote.Execute "CREATE TABLE tblConEdQualifiers (ConEdQualifierID AutoIncrement, ConEdGroupID Long, ConEd Text(50), ConEdQualifier Single, ConEdUnits Text(50), ConEdPoints Single, Ordinal Single, CONSTRAINT tblConEdQualifiers_PK PRIMARY KEY(ConEdQualifierID));" dbRemote.Execute "CREATE TABLE tblConEdReq (ConEdReqID AutoIncrement, Year Long, Requirements Single, CONSTRAINT tblConEdReq_PK PRIMARY KEY(ConEdReqID));" dbRemote.Execute "CREATE TABLE tblContinuingEducation (ConEdID AutoIncrement, DeaconID Long, DateCompleted DateTime, Title Text(50), Location Text(50), ConEdQualifierID Long, Qualifier Single, CONSTRAINT tblContinuingEducation_PK PRIMARY KEY(ConEdID));" dbRemote.Execute "CREATE TABLE tblDuties (DutyID Long, Duty Text(50), Ordinal Single, CONSTRAINT tblDuties_PK PRIMARY KEY(DutyID));" dbRemote.Execute "CREATE TABLE tblParishDuties (ParishDutiesID Long, ParishID Long, DutyID Long, CONSTRAINT tblParishDuties_PK PRIMARY KEY(ParishDutiesID));" 'Add Field -- BIT equals Yes/No dbRemote.Execute "ALTER TABLE tblDeacon ADD COLUMN OrdinationYear Text(10);" dbRemote.Execute "ALTER TABLE tblDeacon ADD COLUMN BackgroundCheck DateTime;" dbRemote.Execute "ALTER TABLE tblDeanery ADD COLUMN DeaconID Long;" dbRemote.Execute "ALTER TABLE tblParish ADD COLUMN DeaconsNeeded Byte;" dbRemote.Execute "ALTER TABLE tblParish ADD COLUMN FutureDeacons Byte;" 'Delete Field ' dbRemote.Execute "ALTER TABLE tblDeacon DROP COLUMN WPhoneExtension;" ' dbRemote.Execute "DROP INDEX PastorID ON tblParish" 'Change the type or size of a field ' dbRemote.Execute "ALTER TABLE tblDeacon ALTER COLUMN MyField TEXT(100);" 'DROP Table - delete table no longer used ' dbRemote.Execute "DROP Table tblSurvey" dbRemote.Close Set db = CurrentDb Set tdefs = db.TableDefs 'relink tables For Each tDef In tdefs If tDef.SourceTableName <> "" Then 'If the table source is other than a base table tDef.Connect = ";Database=" & strFileName tDef.RefreshLink 'refresh link End If Next Set dbRemote = Nothing 'update queries. DoCmd.SetWarnings False DoCmd.OpenQuery "zUpdateConEdGroupsFields" DoCmd.OpenQuery "zUpdateConEdQualifiersFields" DoCmd.OpenQuery "zUpdateConEdReqFields" DoCmd.OpenQuery "zUpdateContinuingEducationFields" DoCmd.SetWarnings True ' End Function Jim -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 11, 2009 7:43 AM To: Access Developers discussion and problem solving Subject: [AccessD] Build tables programatically For the class lecture it would be handy to be able to build Access tables programatically. I do not know how to do this, though the authors of books usually do so. Does anyone on this list have any code library that would allow me to create field X with data type Y, that is a PK etc etc. Having that, I can build append queries to append specific data into these tables, but if anyone has such a thing, code to extract actual data from a table and write the SQL Statements that would append that into a specific table would be nice. IOW (for example) I have an existing state table and an agency table with a state ID. In order to minimize the impact on the readers having to go manually create a state and agency table and manually input data into those tables, it would be nice to provide code that builds those two tables and then populates those tables with a few data elements. Ideas anyone? -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ################################################################################ If you have received this message in error, please contact the sender immediately and be aware that the use, copying, or dissemination of this information is prohibited. This email transmission contains information from NCI Information Systems, Inc. that may be considered privileged or confidential and is intended solely for the named recipient. ################################################################################ From jwcolby at colbyconsulting.com Wed Feb 11 08:38:18 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 09:38:18 -0500 Subject: [AccessD] Classes and Events - Feedback In-Reply-To: <03C9B64F5D6844D79CC5BC5A435B9BB9@home6399619597> References: <200902101756.n1AHu52c007644@bunya.baea.com.au><3881CF7F5868CA419AAF1179D19F6BAC02B52A9A@abw3ex1.au.baesystems.com> <4992305B.20608@colbyconsulting.com> <03C9B64F5D6844D79CC5BC5A435B9BB9@home6399619597> Message-ID: <4992E2DA.1090100@colbyconsulting.com> Thanks for the feedback Jack. While I can empathize with "Classes classes have always seemed a little complex", they are just like any other tool in Access. It took awhile to wrap my mind around the syntax of arrays. What is the row and what is the column (they always seemed backwards to me!), how do you dimension them, how do you copy from one to another etc. Arrays are a "simple" thing but it takes a few hours of playing with them to get it all down. It took awhile for me to wrap my mind around the collection. How do I insert / delete things, what is this "key" thing, how do I access the collection using a simple index, how do I iterate it, etc. Collections too are simple things, but it takes a few hours of playing around with them to get comfortable with them. Classes are just like that. The difference perhaps is that classes (and events in classes) have a mystique that gives them an aura of difficulty. Perhaps you hear "the gurus" discussing classes and it just seems like something that only gurus use or could use. Classes are in fact a little more complex than either of those other objects but not much. They have only two events that fire automatically as the class opens and closes. Learning what those do and how to use them takes a little while. How and when to initialize using an mInit() type of method. How to create variables and properties (we haven't gotten to properties yet) and public and private methods all take a little while to learn. However in the end, if you just follow along and actually do the exercises and step through the code, you will look back and find that classes are simple things to use. Like any other piece of Access, familiarity breeds ease of use, it really does. What you can do inside of a class for your specific project may be quite complex, but the class structure and abilities are quite simple. John W. Colby www.ColbyConsulting.com Jack and Pat wrote: > John, > This is great. Classes have always seemed just a little complex. These > materials you are providing to us - and the surrounding emails are simply > great! > > Detail is about right (5). > I am following this with renewed interest. > > Thank you for your efforts and your enthusiasm. > > jack From jwcolby at colbyconsulting.com Wed Feb 11 08:40:45 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 09:40:45 -0500 Subject: [AccessD] Build tables programatically In-Reply-To: <7E02B06E41E5404589EDDDA2BAA1C5A83EC96D@sanex101.nciinc.com> References: <4992D5CC.7030105@colbyconsulting.com> <7E02B06E41E5404589EDDDA2BAA1C5A83EC96D@sanex101.nciinc.com> Message-ID: <4992E36D.5040707@colbyconsulting.com> Jim, Thanks, that syntax is what I am looking for. John W. Colby www.ColbyConsulting.com Hewson, Jim wrote: > John, > I have an Access 2003 database that uses A2007 runtime on a client's > machine. > The data store is located on the client's C:\ Drive so any changes made > to the data store needs to be done through the front end. > I use a function called from a Module... I still haven't wrapped my head > around a class. > When I modify the front end the links to the tables are created before I > place a new copy on the client's machine. Therefore all I need to do is > "relink" the tables. > > Here it is - HTH... > > Function UpdateTable() > > Dim dbRemote As Database > Dim db As Database > Dim tDef As TableDef > Dim tdefs As TableDefs > Dim strFileName As String > > strFileName = "C:\DiaconateDatabase\DiaconateData.mdb" > > Set dbRemote = OpenDatabase(strFileName) > > dbRemote.Execute "CREATE TABLE tblConEdGroups (ConEdGroupID > AutoIncrement, ConEdGroup Text(50), MaxPerYr Single, CONSTRAINT > tblConEdGroups_PK PRIMARY KEY(ConEdGroupID));" > dbRemote.Execute "CREATE TABLE tblConEdQualifiers (ConEdQualifierID > AutoIncrement, ConEdGroupID Long, ConEd Text(50), ConEdQualifier Single, > ConEdUnits Text(50), ConEdPoints Single, Ordinal Single, CONSTRAINT > tblConEdQualifiers_PK PRIMARY KEY(ConEdQualifierID));" > dbRemote.Execute "CREATE TABLE tblConEdReq (ConEdReqID > AutoIncrement, Year Long, Requirements Single, CONSTRAINT tblConEdReq_PK > PRIMARY KEY(ConEdReqID));" > dbRemote.Execute "CREATE TABLE tblContinuingEducation (ConEdID > AutoIncrement, DeaconID Long, DateCompleted DateTime, Title Text(50), > Location Text(50), ConEdQualifierID Long, Qualifier Single, CONSTRAINT > tblContinuingEducation_PK PRIMARY KEY(ConEdID));" > dbRemote.Execute "CREATE TABLE tblDuties (DutyID Long, Duty > Text(50), Ordinal Single, CONSTRAINT tblDuties_PK PRIMARY KEY(DutyID));" > dbRemote.Execute "CREATE TABLE tblParishDuties (ParishDutiesID Long, > ParishID Long, DutyID Long, CONSTRAINT tblParishDuties_PK PRIMARY > KEY(ParishDutiesID));" > > 'Add Field -- BIT equals Yes/No > dbRemote.Execute "ALTER TABLE tblDeacon ADD COLUMN OrdinationYear > Text(10);" > dbRemote.Execute "ALTER TABLE tblDeacon ADD COLUMN BackgroundCheck > DateTime;" > dbRemote.Execute "ALTER TABLE tblDeanery ADD COLUMN DeaconID Long;" > dbRemote.Execute "ALTER TABLE tblParish ADD COLUMN DeaconsNeeded > Byte;" > dbRemote.Execute "ALTER TABLE tblParish ADD COLUMN FutureDeacons > Byte;" > > 'Delete Field > ' dbRemote.Execute "ALTER TABLE tblDeacon DROP COLUMN > WPhoneExtension;" > ' dbRemote.Execute "DROP INDEX PastorID ON tblParish" > > 'Change the type or size of a field > ' dbRemote.Execute "ALTER TABLE tblDeacon ALTER COLUMN MyField > TEXT(100);" > > 'DROP Table - delete table no longer used > ' dbRemote.Execute "DROP Table tblSurvey" > > dbRemote.Close > Set db = CurrentDb > Set tdefs = db.TableDefs > > 'relink tables > For Each tDef In tdefs > If tDef.SourceTableName <> "" Then 'If the table source is other > than a base table > tDef.Connect = ";Database=" & strFileName > tDef.RefreshLink 'refresh link > End If > Next > > Set dbRemote = Nothing > > 'update queries. > DoCmd.SetWarnings False > > DoCmd.OpenQuery "zUpdateConEdGroupsFields" > DoCmd.OpenQuery "zUpdateConEdQualifiersFields" > DoCmd.OpenQuery "zUpdateConEdReqFields" > DoCmd.OpenQuery "zUpdateContinuingEducationFields" > > DoCmd.SetWarnings True > ' > End Function > > Jim > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 11, 2009 7:43 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Build tables programatically > > For the class lecture it would be handy to be able to build Access > tables programatically. I do not > know how to do this, though the authors of books usually do so. > > Does anyone on this list have any code library that would allow me to > create field X with data type > Y, that is a PK etc etc. > > Having that, I can build append queries to append specific data into > these tables, but if anyone has > such a thing, code to extract actual data from a table and write the SQL > Statements that would > append that into a specific table would be nice. > > IOW (for example) I have an existing state table and an agency table > with a state ID. In order to > minimize the impact on the readers having to go manually create a state > and agency table and > manually input data into those tables, it would be nice to provide code > that builds those two tables > and then populates those tables with a few data elements. > > Ideas anyone? > From jwcolby at colbyconsulting.com Wed Feb 11 09:34:17 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 10:34:17 -0500 Subject: [AccessD] New registrations on my web site Message-ID: <4992EFF9.9090906@colbyconsulting.com> I am getting a lot of new registrations on my web site, yesterday and today. I assume that many of you guys are visiting my site for the first time and registering. Welcome. I would like to say that I have a bunch of demos that I have written in the past that show how to do stuff. Please feel free to poke around, download and work through that stuff. If you already know what I am demonstrating in this series of emails, then my web site can provide more examples. If you do NOT yet understand classes and events, I would advise you to work through this series of emails before you try to download and examine the other stuff. The other examples sometimes assume the knowledge that you will gain here. Again however, please do visit and register on my web. Everyone is welcome and there is a lot of good stuff there. I will almost certainly bundle this series up and post it to my web site in the near future. Thanks, -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Wed Feb 11 11:02:48 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 12:02:48 -0500 Subject: [AccessD] BUILDING A TEXT CONTROL CLASS Message-ID: <499304B8.1090105@colbyconsulting.com> This lecture will add another control class to our system to wrap the text box control and add some functionality to that control. I am going to cut and paste the entire lecture about the clsCtlCbo into this lecture, change the cbo with txt and go from there. There are two reasons I am doing this. The first is because I am smart (lazy) and the other is to demonstrate how ?cookie cutter? classes are. This stuff is NOT rocket science. You need the same things in the header of each class so why not take advantage of that fact? WARNING, I am doing two additional things down in the bottom so please do read this lecture thoroughly to see the changes made. We are going to do some ?useful work?, changing the backcolor of the control as it gets the focus, then change it back as it loses the focus. ? From the database window, click Insert / Class. ? Immediately save the new class as clsCtlTxt ? Place the following code in the header of the class Private WithEvents mctlTxt As TextBox Private Const cstrEvProc As String = "[Event Procedure]" This should be starting to look familiar. The first line dimensions a variable for a text box control, and dimensions it WithEvents, which means that this class will sink events for the control passed in. cstrEvProc is already familiar and is the text which when placed in an event property ?hooks? that event and causes the control to Raise that event. ? In the left text box box select the class. The editor will insert an Initialize event stub. ? In the right text box box, select the Terminate event. The editor will insert a Terminate event stub. ? In the Terminate event stub insert the following code: Private Sub Class_Initialize() Set mctlTxt = Nothing End Sub ? Again, this code should be looking familiar. We are telling the class that when it terminates, to clean up the pointer to the text box box. ? Create a mInit() function as follows: Function mInit(lctlTxt As TextBox) Set mctlTxt = lctlTxt mctlTxt.BeforeUpdate = cstrEvProc mctlTxt.AfterUpdate = cstrEvProc mctlTxt.OnGotFocus = cstrEvProc mctlTxt.OnLostFocus = cstrEvProc End Function This mInit passes in a pointer to a control in lctlTxt. It then saves that pointer to mctlTxt. Finally it ?hooks? four events of the text box, the BeforeUpdate, AfterUpdate, GotFocus and LostFocus. ? In the left text box box in the editor, select mctlTxt. The editor will create the BeforeUpdate event stub. In the right text box select the AfterUpdate event and the editor will create an event stub for that event. Repeat for the GotFocus and LostFocus. ? In this case we are going to lose the message boxes and modify the events to write to the debug window. We are also going to change the back color of the control as it gets focus and loses focus. ? In order to do the back color we need to add a variable and a constant in the header. In the header of the class add the following code: Private mlngBackColor As Long Private Const clngBackColor As Long = vbCyan mlngBackColor will give us a place to store the original back color of the control when the GotFocus event fires. The constant clngBackColor is the color that we will set the control?s back color to ? In these events place the following code: Private Sub mctlTxt_AfterUpdate() Debug.print "AfterUpdate: " & mctlTxt.Name End Sub Private Sub mctlTxt_BeforeUpdate(Cancel As Integer) Debug.print "BeforeUpdate: " & mctlTxt.Name End Sub Private Sub mctlTxt_GotFocus() Debug.Print "GotFocus: " & mctlTxt.Name 'Store the back color as we get the focus mlngBackColor = mctlTxt.BackColor 'Set the back color to an ugly light blue color mctlTxt.BackColor = clngBackColor End Sub Private Sub mctlTxt_LostFocus() Debug.Print "LostFocus: " & mctlTxt.Name 'Change the back color back to the original color mctlTxt.BackColor = mlngBackColor End Sub ? Save and close clsCtlTxt. ? Having done that we need to modify the CtlScanner in clsFrm to automatically load this new clsCtlTxt. Open clsFrm. Move down to the ctlScanner function and modify the Case acTextBox code as follows: Case acTextBox 'Find all text boxes and load class to change backcolor Dim lclsCtlTxt As clsCtlTxt Set lclsCtlTxt = New clsCtlTxt lclsCtlTxt.mInit ctl colCtls.Add lclsCtlTxt, ctl.Name Case acToggleButton ? Compile and close clsFrm. ? While we are at it let?s clean up the clsCtlCbo to lose the message boxes in the events. We will also add the same ?back color change? logic to the combo classes. Open clsCtlCbo. Add the following code in the class header: Private mlngBackColor As Long Private Const clngBackColor As Long = vbCyan ? Replace the event code with the following: Private Sub mctlCbo_GotFocus() Debug.Print "GotFocus: " & mctlCbo.Name mlngBackColor = mctlCbo.BackColor mctlCbo.BackColor = clngBackColor End Sub Private Sub mctlCbo_LostFocus() Debug.Print "LostFocus: " & mctlCbo.Name mctlCbo.BackColor = mlngBackColor End Sub ? Open the main frmDemoCtls ? Click into the text box and observe that it turns Cyan. ? Click out of the text box and observe that it resumes its original color. ? Click into each of the combo boxes (you should have three now). Observe that each one changes the back color as it gains the focus and changes the color back to the original as it loses the focus. This lecture has created a new clsCtlTxt. We are starting to see a pattern emerge, where we have a private variable in the top of the class dimmed WithEvents to hold a pointer to an object, in this case a text control. We have a Terminate event of the class that cleans up the pointer when the class closes. We have an mInit() event that passes in a pointer to the object, sets the local variable equal to the passed in pointer, and then ?hooks? events of the object passed in by setting the properties to a specific string "[Event Procedure]" by using a constant declared in the class header. We then have event sink subs which will execute when the given event fires. We also added a little real functionality to change the back color as the controls got the focus and set it back to the original as the controls lost the focus. Congratulations on sticking with us. You are now beginning to see that just like the other objects you know and love, classes are easy to use and modify. Practice makes perfect and you have now created four different classes, clsFrm, clsCtlCbo, clsCtlTxt and clsTimer. Each has a header and an area to write code. Each has events that fire to initialize and cleanup code, and each has code that performs whatever behaviors you want done. Easy stuff. -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Wed Feb 11 11:05:12 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 12:05:12 -0500 Subject: [AccessD] Keeping track of the lectures Message-ID: <49930548.1070705@colbyconsulting.com> May I suggest that you do as I have and create an email folder to place the lecture emails in all by themselves, and another to store the discussion emails. You can then sort the discussion emails by order received and instantly be able to work through the emails in order. -- John W. Colby www.ColbyConsulting.com From davidmcafee at gmail.com Wed Feb 11 11:06:50 2009 From: davidmcafee at gmail.com (David McAfee) Date: Wed, 11 Feb 2009 09:06:50 -0800 Subject: [AccessD] Import Bad data? In-Reply-To: <6A4FC480A30D42958CF1D23ADB1356E0@SusanOne> References: <499039E4.9060903@colbyconsulting.com> <383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> <6A4FC480A30D42958CF1D23ADB1356E0@SusanOne> Message-ID: <8786a4c00902110906m6abf8200m3913fcb169bf8fee@mail.gmail.com> Can you export the file to a CSV and open it in Notepad? By looking at the record(s) do you know what character is causing the problem? If so can you simply do a find & replace in Notepad to change the character to some other character? David On Wed, Feb 11, 2009 at 5:55 AM, Susan Harkins wrote: > I'd run it through Excel first -- import it, save it -- import it into > Access via the Excel worksheet. Might not work, but I've seen it work. > > Susan H. > ----- Original Message ----- > From: "Mark A Matte" > To: > Sent: Monday, February 09, 2009 11:05 AM > Subject: [AccessD] Import Bad data? > > > > Hello All, > > I'm not expecting an answer I'll like...but I'll try. > > I'm importing a large number of records from Informix to Access via odbc. > There is a large text/memo field...that apparently has some characters > access does not like. I do not get an error message...access just says "an > error has occurred...do you want to tell MS"...then closes. > > I'm trying to think of a way to detect/program around this. So far...its a > very manual process. I loop through 2 days worth at a time...that way I > don't have to start over from the beginning everytime. When it crashes...I > pull in just the PKs for that date range...loop through them...imort the > text field 1 record at a time...store in temp table...when it crashes...I > compare the PKs to the temp table...the next PK not in the temp is the > offender. > > This is very manual and time consuming...any ideas/suggestions? > > Thanks, > > Mark A. Matte > > > _________________________________________________________________ > Windows Live?: E-mail. Chat. Share. Get more ways to connect. > http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_HM_AE_Faster_022009 > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Wed Feb 11 11:07:51 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 12:07:51 -0500 Subject: [AccessD] The classes as they are at this instant - clsTimer Message-ID: <499305E7.7010804@colbyconsulting.com> I know that in an email it is often difficult to "see" the results of a class, and that if you put something in wrong it can be darned difficult to figure out hwat is going wrong. for that reason I am posting the classes all by themselves in emails Option Compare Database Option Explicit Private Declare Function apiGetTime Lib "winmm.dll" _ Alias "timeGetTime" () As Long Private lngStartTime As Long Private Sub Class_Initialize() StartTimer End Sub Function EndTimer() EndTimer = apiGetTime() - lngStartTime End Function Sub StartTimer() lngStartTime = apiGetTime() End Sub -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Wed Feb 11 11:08:27 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 12:08:27 -0500 Subject: [AccessD] The classes as they are at this instant - clsCtlCbo Message-ID: <4993060B.3000807@colbyconsulting.com> Option Compare Database Option Explicit Private WithEvents mctlCbo As ComboBox Private Const cstrEvProc As String = "[Event Procedure]" Private mlngBackColor As Long Private Const clngBackColor As Long = vbCyan Private Sub Class_Initialize() Set mctlCbo = Nothing End Sub Function mInit(lctlCbo As ComboBox) Set mctlCbo = lctlCbo mctlCbo.BeforeUpdate = cstrEvProc mctlCbo.AfterUpdate = cstrEvProc mctlCbo.OnGotFocus = cstrEvProc mctlCbo.OnLostFocus = cstrEvProc End Function Private Sub mctlCbo_AfterUpdate() Debug.Print "AfterUpdate: " & mctlCbo.Name End Sub Private Sub mctlCbo_BeforeUpdate(Cancel As Integer) Debug.Print "BeforeUpdate: " & mctlCbo.Name End Sub Private Sub mctlCbo_GotFocus() Debug.Print "GotFocus: " & mctlCbo.Name mlngBackColor = mctlCbo.BackColor mctlCbo.BackColor = clngBackColor End Sub Private Sub mctlCbo_LostFocus() Debug.Print "LostFocus: " & mctlCbo.Name mctlCbo.BackColor = mlngBackColor End Sub -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Wed Feb 11 11:09:25 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 12:09:25 -0500 Subject: [AccessD] The classes as they are at this instant - clsCtlTxt Message-ID: <49930645.9010000@colbyconsulting.com> Option Compare Database Option Explicit Private WithEvents mctlTxt As TextBox Private Const cstrEvProc As String = "[Event Procedure]" Private mlngBackColor As Long Private Const clngBackColor As Long = vbCyan Private Sub Class_Initialize() Set mctlTxt = Nothing End Sub Function mInit(lctlTxt As TextBox) Set mctlTxt = lctlTxt mctlTxt.BeforeUpdate = cstrEvProc mctlTxt.AfterUpdate = cstrEvProc mctlTxt.OnGotFocus = cstrEvProc mctlTxt.OnLostFocus = cstrEvProc End Function Private Sub mctlTxt_AfterUpdate() Debug.Print "AfterUpdate: " & mctlTxt.Name End Sub Private Sub mctlTxt_BeforeUpdate(Cancel As Integer) Debug.Print "BeforeUpdate: " & mctlTxt.Name End Sub Private Sub mctlTxt_GotFocus() Debug.Print "GotFocus: " & mctlTxt.Name 'Store the back color as we get the focus mlngBackColor = mctlTxt.BackColor 'Set the back color to an ugly light blue color mctlTxt.BackColor = clngBackColor End Sub Private Sub mctlTxt_LostFocus() Debug.Print "LostFocus: " & mctlTxt.Name 'Change the back color back to the original color mctlTxt.BackColor = mlngBackColor End Sub -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Wed Feb 11 11:10:15 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 12:10:15 -0500 Subject: [AccessD] The classes as they are at this instant - clsFrm Message-ID: <49930677.7040105@colbyconsulting.com> Option Compare Database Option Explicit Private WithEvents mfrm As Form Private Const cstrEvProc As String = "[Event Procedure]" Private colCtls As Collection Private Sub Class_Initialize() Set colCtls = New Collection End Sub Private Sub Class_Terminate() Set colCtls = Nothing End Sub Function mInit(lfrm As Form) Set mfrm = lfrm mfrm.BeforeUpdate = cstrEvProc mfrm.OnClose = cstrEvProc CtlScanner End Function Private Sub mfrm_BeforeUpdate(Cancel As Integer) MsgBox "Before Update: " & mfrm.Name End Sub Private Sub mfrm_Close() Set mfrm = Nothing End Sub Private Function CtlScanner() Dim ctl As Control For Each ctl In mfrm.Controls Select Case ctl.ControlType Case acCheckBox Case acComboBox Dim lclsCtlCbo As clsCtlCbo Set lclsCtlCbo = New clsCtlCbo lclsCtlCbo.mInit ctl colCtls.Add lclsCtlCbo, ctl.Name Case acCommandButton Case acListBox Case acOptionButton Case acOptionGroup Case acPage Case acSubform 'subform controls Case acTabCtl 'tab pages are handled in the tab control Case acTextBox 'Find all text boxes and load class to change backcolor Dim lclsCtlTxt As clsCtlTxt Set lclsCtlTxt = New clsCtlTxt lclsCtlTxt.mInit ctl colCtls.Add lclsCtlTxt, ctl.Name Case acToggleButton End Select Next ctl End Function -- John W. Colby www.ColbyConsulting.com From wdhindman at dejpolsystems.com Wed Feb 11 11:35:42 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 11 Feb 2009 12:35:42 -0500 Subject: [AccessD] Zip+4? References: <499039E4.9060903@colbyconsulting.com><383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net><6A4FC480A30D42958CF1D23ADB1356E0@SusanOne> <8786a4c00902110906m6abf8200m3913fcb169bf8fee@mail.gmail.com> Message-ID: <5E553189E6A9401CB3D98B6E922FD5B0@jislaptopdev> Group I use a separate tblGeo table to manage city/state/post/country/region/timezone/dst/lat/long data with an fk join on tblOrgAddress. This is presented as an enforced combo with any new org address entry, thus ensuring that only valid entries are allowed for that data. When US zip codes were only 5 digits, this worked quite well ...but the growing number of +4 zips is beginning to grow out of control ...adding the +4 means an additional 10k entries per US post code are possible ...which would drive the db to its knees. So I've separated out the +4 and isolated them in the tblOrgAddress to limit the impact on lookups and just concatenate them when I assemble addresses. This is of course time and code intensive in its own right but limited to only those times when a full mailing address is required. The problem comes in requiring data entry people to enter the +4 separate from the post code ...it just isn't getting done ...and the client is now seeing address rejections from the postal service bulk mailing because the +4 is missing. Question is, does anyone have a better way of handling the zip+4 issue? William From davidmcafee at gmail.com Wed Feb 11 11:45:28 2009 From: davidmcafee at gmail.com (David McAfee) Date: Wed, 11 Feb 2009 09:45:28 -0800 Subject: [AccessD] Zip+4? In-Reply-To: <5E553189E6A9401CB3D98B6E922FD5B0@jislaptopdev> References: <499039E4.9060903@colbyconsulting.com> <383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> <6A4FC480A30D42958CF1D23ADB1356E0@SusanOne> <8786a4c00902110906m6abf8200m3913fcb169bf8fee@mail.gmail.com> <5E553189E6A9401CB3D98B6E922FD5B0@jislaptopdev> Message-ID: <8786a4c00902110945q2e160536hcaaa96ac5c16f5ae@mail.gmail.com> I do what you do. I have a table (tblCSZ) which is a list of City, State & Zip Code (5 digit zip). I store the right 4 characters (if applicable) in the address table along with the ZipID (PK of tblCSZ) David On Wed, Feb 11, 2009 at 9:35 AM, William Hindman wrote: > Group > > I use a separate tblGeo table to manage > city/state/post/country/region/timezone/dst/lat/long data with an fk join on > tblOrgAddress. > This is presented as an enforced combo with any new org address entry, thus > ensuring that only valid entries are allowed for that data. > When US zip codes were only 5 digits, this worked quite well ...but the > growing number of +4 zips is beginning to grow out of control ...adding the > +4 means an additional 10k entries per US post code are possible ...which > would drive the db to its knees. > > So I've separated out the +4 and isolated them in the tblOrgAddress to limit > the impact on lookups and just concatenate them when I assemble addresses. > This is of course time and code intensive in its own right but limited to > only those times when a full mailing address is required. > > The problem comes in requiring data entry people to enter the +4 separate > from the post code ...it just isn't getting done ...and the client is now > seeing address rejections from the postal service bulk mailing because the > +4 is missing. > > Question is, does anyone have a better way of handling the zip+4 issue? > > William > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Wed Feb 11 11:50:25 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 12:50:25 -0500 Subject: [AccessD] Zip+4? In-Reply-To: <5E553189E6A9401CB3D98B6E922FD5B0@jislaptopdev> References: <499039E4.9060903@colbyconsulting.com><383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net><6A4FC480A30D42958CF1D23ADB1356E0@SusanOne> <8786a4c00902110906m6abf8200m3913fcb169bf8fee@mail.gmail.com> <5E553189E6A9401CB3D98B6E922FD5B0@jislaptopdev> Message-ID: <49930FE1.9020302@colbyconsulting.com> William, Correctly handling the postal services requirements is a non-trivial task. The process is called CASS and NCOA. CASS stands for Coding Accuracy Support System. http://www.nextmark.com/glossary/definition.jsp?glossaryTermId=a0800000000EqQrAAK What is essentially does is to verify the addresses against USPS supplied database (which changes quarterly), and if a given address passes CASS it means that the address represents an actual deliverable address. NCOA stands for National Change of Address, and it has its own requirements but in general the USPS wants all addresses CASSed and NCOAed no more than 90 days before use to qualify for bulk mail discounts and such. NCOA states that a specific person moved (no longer lives at the previous address) and may / may not supply the current address. NCOA is a much more nebulous thing than CASS simply because people may or may not live at an address at all, may have moved and not filed a COA, may have lived there but moved years ago etc. I am heavily involved in CASS / NCOA, and in fact I am able to provide such processing if desired. John W. Colby www.ColbyConsulting.com William Hindman wrote: > Group > > I use a separate tblGeo table to manage > city/state/post/country/region/timezone/dst/lat/long data with an fk join on > tblOrgAddress. > This is presented as an enforced combo with any new org address entry, thus > ensuring that only valid entries are allowed for that data. > When US zip codes were only 5 digits, this worked quite well ...but the > growing number of +4 zips is beginning to grow out of control ...adding the > +4 means an additional 10k entries per US post code are possible ...which > would drive the db to its knees. > > So I've separated out the +4 and isolated them in the tblOrgAddress to limit > the impact on lookups and just concatenate them when I assemble addresses. > This is of course time and code intensive in its own right but limited to > only those times when a full mailing address is required. > > The problem comes in requiring data entry people to enter the +4 separate > from the post code ...it just isn't getting done ...and the client is now > seeing address rejections from the postal service bulk mailing because the > +4 is missing. > > Question is, does anyone have a better way of handling the zip+4 issue? > > William > > > From jwcolby at colbyconsulting.com Wed Feb 11 12:17:11 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 13:17:11 -0500 Subject: [AccessD] the form Message-ID: <49931627.3080501@colbyconsulting.com> Max very kindly provided code that I knew existed but hadn't considered using, which exports a form to a text file. I am going to insert that form code into this email as an experiment to see if you (we) can import it back into the database that you are building in this lecture series. If so it will make it easier for you and I to sync up on forms. The code for the frmDemoCtls that I built is below. Cut and paste the text into a file called frmDemoCtl.txt at a path that is easy for you to use. I will send another email with the blow by blow of how to do the import into your own database after I test the import and determine how to make it work. Version =19 VersionRequired =19 Checksum =202807701 Begin Form AllowDesignChanges = NotDefault DefaultView =0 RecordLocks =2 TabularFamily =0 PictureAlignment =2 DatasheetGridlinesBehavior =3 GridX =24 GridY =24 Width =3240 DatasheetFontHeight =10 ItemSuffix =20 DatasheetGridlinesColor =12632256 RecSrcDt = Begin 0x3a86509cea75e340 End GUID = Begin 0x4677a3282b937741b4635b11ced630a2 End NameMap = Begin 0x0acc0e5500000000000000000000000000000000000000000c00000003000000 , 0x0000000000000000000000000000 End OnOpen ="[Event Procedure]" DatasheetFontName ="Arial" Begin Begin Label BackStyle =0 FontName ="Tahoma" End Begin CommandButton FontSize =8 FontWeight =400 ForeColor =-2147483630 FontName ="Tahoma" End Begin OptionButton SpecialEffect =2 LabelX =230 LabelY =-30 End Begin CheckBox SpecialEffect =2 LabelX =230 LabelY =-30 End Begin OptionGroup SpecialEffect =3 End Begin TextBox FELineBreak = NotDefault SpecialEffect =2 OldBorderStyle =0 FontName ="Tahoma" End Begin ListBox SpecialEffect =2 FontName ="Tahoma" End Begin ComboBox SpecialEffect =2 FontName ="Tahoma" End Begin ToggleButton FontSize =8 FontWeight =400 ForeColor =-2147483630 FontName ="Tahoma" End Begin Section Height =5100 BackColor =-2147483633 Name ="Detail" GUID = Begin 0xa8686149735ef14fa3e2d8b87997150c End Begin Begin TextBox OverlapFlags =85 IMESentenceMode =3 Left =660 Top =360 Name ="Text1" GUID = Begin 0x38a65ddc550a054eb4a5eb013af7846e End Begin Begin Label OverlapFlags =85 Left =60 Top =360 Width =555 Height =240 Name ="Label2" Caption ="Text1:" GUID = Begin 0x2a74b8279e664d4d9b2135439af6e760 End End End End Begin Label OverlapFlags =85 Left =60 Top =60 Width =2220 Height =210 Name ="Label3" Caption ="Label" GUID = Begin 0xf0f8ac3224ffb340b6116b9add17ec79 End End Begin OptionGroup OverlapFlags =85 Left =480 Top =3360 Height =480 TabIndex =7 Name ="Frame4" GUID = Begin 0xe300cbcd970b3e448ac1bf4b67afefba End Begin Begin Label BackStyle =1 OverlapFlags =215 Left =600 Top =3240 Width =615 Height =240 BackColor =-2147483633 Name ="Label5" Caption ="Frame4" GUID = Begin 0x1fd397723f3baa4bbfff518982d33dfe End End End End Begin ToggleButton OverlapFlags =85 Left =780 Top =3960 TabIndex =8 Name ="Toggle6" GUID = Begin 0x5ffd223c2bf72046aa29304c50b85794 End End Begin OptionButton OverlapFlags =85 Left =960 Top =2550 TabIndex =5 Name ="Option7" GUID = Begin 0x6a854c26cc46fe4c9b72b023a0b02b64 End Begin Begin Label OverlapFlags =247 Left =1190 Top =2520 Width =645 Height =240 Name ="Label8" Caption ="Option7" GUID = Begin 0xfa8517913041d643bbe109cedc1892bc End End End End Begin CheckBox OverlapFlags =85 Left =960 Top =2940 TabIndex =6 Name ="Check9" GUID = Begin 0x13ee6c3754448a43a43f397f3d47dbd3 End Begin Begin Label OverlapFlags =247 Left =1190 Top =2910 Width =600 Height =240 Name ="Label10" Caption ="Check9" GUID = Begin 0xdeea6cdfc013d6479ebc34d139ccefaf End End End End Begin ComboBox OverlapFlags =85 IMESentenceMode =3 Left =960 Top =660 TabIndex =1 GUID = Begin 0x2c19420d6c40d64ca67b04f8f8dee9ed End Name ="Combo11" RowSourceType ="Table/Query" Begin Begin Label OverlapFlags =85 Left =60 Top =660 Width =810 Height =240 Name ="Label12" Caption ="Combo11:" GUID = Begin 0x95fa62a89e15ed4f9b42f4324033f828 End End End End Begin ListBox OverlapFlags =85 IMESentenceMode =3 Left =960 Top =1680 Height =600 TabIndex =4 Name ="List13" RowSourceType ="Table/Query" GUID = Begin 0xbb2e9a14d7e6c543ae63184c5db62017 End Begin Begin Label OverlapFlags =85 Left =60 Top =1680 Width =555 Height =240 Name ="Label14" Caption ="List13:" GUID = Begin 0x3dd5e248967d4845a1a112faed927453 End End End End Begin CommandButton OverlapFlags =85 Left =480 Top =4740 TabIndex =9 Name ="Command15" Caption ="Command15" GUID = Begin 0x8cec88d6c9deaa4bbca06bdee40ca874 End End Begin ComboBox OverlapFlags =85 IMESentenceMode =3 Left =960 Top =1020 TabIndex =2 GUID = Begin 0xe45a58419996934599118b3ca71a5d84 End Name ="Combo16" RowSourceType ="Table/Query" Begin Begin Label OverlapFlags =85 Left =60 Top =1020 Width =810 Height =240 Name ="Label17" Caption ="Combo11:" GUID = Begin 0xf57f838dc7dc0642a1fe7995d0f8a56c End End End End Begin ComboBox OverlapFlags =85 IMESentenceMode =3 Left =960 Top =1380 TabIndex =3 GUID = Begin 0x76d2247e2d74e341b7c65b42644cb36e End Name ="Combo18" RowSourceType ="Table/Query" Begin Begin Label OverlapFlags =85 Left =60 Top =1380 Width =810 Height =240 Name ="Label19" Caption ="Combo11:" GUID = Begin 0xbc77b41fd0e4f54296e1ea79ddc9a34a End End End End End End End End CodeBehindForm Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = True Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Option Compare Database Option Explicit Public fclsFrm As clsFrm Private Sub Form_Open(Cancel As Integer) Set fclsFrm = New clsFrm fclsFrm.mInit Me End Sub From markamatte at hotmail.com Wed Feb 11 12:19:32 2009 From: markamatte at hotmail.com (Mark A Matte) Date: Wed, 11 Feb 2009 18:19:32 +0000 Subject: [AccessD] Import Bad data? In-Reply-To: <8786a4c00902110906m6abf8200m3913fcb169bf8fee@mail.gmail.com> References: <499039E4.9060903@colbyconsulting.com> <383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> <6A4FC480A30D42958CF1D23ADB1356E0@SusanOne> <8786a4c00902110906m6abf8200m3913fcb169bf8fee@mail.gmail.com> Message-ID: The data is in an Informix database. I only have a link to the table. If I had this exported to text by the DBA...I could easily deal with it...even as a 2 gig text file. The problem was anytime I would reference the table/field in a query or vba...access would crash when it reached this record...I was looking for a way to determine a bad record, skip it...and keep going. I used a slightly manual process to isolate the bad records. This instance has been resolved...but by a manual process. Original question was still how to avoid the crash. Thanks, Mark A. Matte ---------------------------------------- > Date: Wed, 11 Feb 2009 09:06:50 -0800 > From: davidmcafee at gmail.com > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Import Bad data? > > Can you export the file to a CSV and open it in Notepad? > > By looking at the record(s) do you know what character is causing the > problem? If so can you simply do a find & replace in Notepad to change > the character to some other character? > > David > > On Wed, Feb 11, 2009 at 5:55 AM, Susan Harkins wrote: >> I'd run it through Excel first -- import it, save it -- import it into >> Access via the Excel worksheet. Might not work, but I've seen it work. >> >> Susan H. >> ----- Original Message ----- >> From: "Mark A Matte" >> To: >> Sent: Monday, February 09, 2009 11:05 AM >> Subject: [AccessD] Import Bad data? >> >> >> >> Hello All, >> >> I'm not expecting an answer I'll like...but I'll try. >> >> I'm importing a large number of records from Informix to Access via odbc. >> There is a large text/memo field...that apparently has some characters >> access does not like. I do not get an error message...access just says "an >> error has occurred...do you want to tell MS"...then closes. >> >> I'm trying to think of a way to detect/program around this. So far...its a >> very manual process. I loop through 2 days worth at a time...that way I >> don't have to start over from the beginning everytime. When it crashes...I >> pull in just the PKs for that date range...loop through them...imort the >> text field 1 record at a time...store in temp table...when it crashes...I >> compare the PKs to the temp table...the next PK not in the temp is the >> offender. >> >> This is very manual and time consuming...any ideas/suggestions? >> >> Thanks, >> >> Mark A. Matte >> >> >> _________________________________________________________________ >> Windows Live?: E-mail. Chat. Share. Get more ways to connect. >> http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_HM_AE_Faster_022009 >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com _________________________________________________________________ Windows Live?: Keep your life in sync. http://windowslive.com/explore?ocid=TXT_TAGLM_WL_t1_allup_explore_022009 From wdhindman at dejpolsystems.com Wed Feb 11 12:19:14 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 11 Feb 2009 13:19:14 -0500 Subject: [AccessD] Zip+4? References: <499039E4.9060903@colbyconsulting.com><383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net><6A4FC480A30D42958CF1D23ADB1356E0@SusanOne> <8786a4c00902110906m6abf8200m3913fcb169bf8fee@mail.gmail.com><5E553189E6A9401CB3D98B6E922FD5B0@jislaptopdev> <49930FE1.9020302@colbyconsulting.com> Message-ID: <32627967605A48A29FB0830CB69FCCE0@jislaptopdev> JC ...to my utter chagrin, I already know far too much about CASS and NCOA ...the client uses a mailing house that validates his data against the US post office's data and rejects anything that doesn't match ...there is an additional service which we used once for address correction based upon NCOA data but basically what we got was a list of rejections without any data on WHY they were rejected ...with a paltry few actual updates ...he now does this on a quarterly basis against his entire address list. ...but that is only the reason the +4 has become a problem, not a solution to it ...as I noted, the problem is that most zips are still 5 digit but the number of +4 zips is increasing rapidly and the US postal service is now rejecting addresses that it, in its indomitable wisdom, thinks should have the +4 ...but I know of no way to know this before the data is actually rejected by them ...thus I can't force an initial +4 data entry because in most cases it doesn't yet exist ...so I'm dependent upon the data entry people actually entering the +4 data entry, when its available, in a separate field AFTER they've used the Geo cbo to select the right geo record ...and they just are not doing it consistently. ...any ideas besides colbyizing them all would be appreciated :) William -------------------------------------------------- From: "jwcolby" Sent: Wednesday, February 11, 2009 12:50 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Zip+4? > William, > > Correctly handling the postal services requirements is a non-trivial task. > The process is called > CASS and NCOA. CASS stands for Coding Accuracy Support System. > > http://www.nextmark.com/glossary/definition.jsp?glossaryTermId=a0800000000EqQrAAK > > What is essentially does is to verify the addresses against USPS supplied > database (which changes > quarterly), and if a given address passes CASS it means that the address > represents an actual > deliverable address. > > NCOA stands for National Change of Address, and it has its own > requirements but in general the USPS > wants all addresses CASSed and NCOAed no more than 90 days before use to > qualify for bulk mail > discounts and such. > > NCOA states that a specific person moved (no longer lives at the previous > address) and may / may not > supply the current address. NCOA is a much more nebulous thing than CASS > simply because people may > or may not live at an address at all, may have moved and not filed a COA, > may have lived there but > moved years ago etc. > > I am heavily involved in CASS / NCOA, and in fact I am able to provide > such processing if desired. > > John W. Colby > www.ColbyConsulting.com > > > William Hindman wrote: >> Group >> >> I use a separate tblGeo table to manage >> city/state/post/country/region/timezone/dst/lat/long data with an fk join >> on >> tblOrgAddress. >> This is presented as an enforced combo with any new org address entry, >> thus >> ensuring that only valid entries are allowed for that data. >> When US zip codes were only 5 digits, this worked quite well ...but the >> growing number of +4 zips is beginning to grow out of control ...adding >> the >> +4 means an additional 10k entries per US post code are possible ...which >> would drive the db to its knees. >> >> So I've separated out the +4 and isolated them in the tblOrgAddress to >> limit >> the impact on lookups and just concatenate them when I assemble >> addresses. >> This is of course time and code intensive in its own right but limited to >> only those times when a full mailing address is required. >> >> The problem comes in requiring data entry people to enter the +4 separate >> from the post code ...it just isn't getting done ...and the client is now >> seeing address rejections from the postal service bulk mailing because >> the >> +4 is missing. >> >> Question is, does anyone have a better way of handling the zip+4 issue? >> >> William >> >> >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From wdhindman at dejpolsystems.com Wed Feb 11 12:21:03 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 11 Feb 2009 13:21:03 -0500 Subject: [AccessD] Zip+4? References: <499039E4.9060903@colbyconsulting.com><383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net><6A4FC480A30D42958CF1D23ADB1356E0@SusanOne><8786a4c00902110906m6abf8200m3913fcb169bf8fee@mail.gmail.com><5E553189E6A9401CB3D98B6E922FD5B0@jislaptopdev> <8786a4c00902110945q2e160536hcaaa96ac5c16f5ae@mail.gmail.com> Message-ID: <435C88725DC04155927BE0E466D41148@jislaptopdev> David ...thanks ...comforting to know others have reached the same solution ...but what about the data entry? ...how do you force that? William -------------------------------------------------- From: "David McAfee" Sent: Wednesday, February 11, 2009 12:45 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Zip+4? > I do what you do. I have a table (tblCSZ) which is a list of City, > State & Zip Code (5 digit zip). > I store the right 4 characters (if applicable) in the address table > along with the ZipID (PK of tblCSZ) > > David > > On Wed, Feb 11, 2009 at 9:35 AM, William Hindman > wrote: >> Group >> >> I use a separate tblGeo table to manage >> city/state/post/country/region/timezone/dst/lat/long data with an fk join >> on >> tblOrgAddress. >> This is presented as an enforced combo with any new org address entry, >> thus >> ensuring that only valid entries are allowed for that data. >> When US zip codes were only 5 digits, this worked quite well ...but the >> growing number of +4 zips is beginning to grow out of control ...adding >> the >> +4 means an additional 10k entries per US post code are possible ...which >> would drive the db to its knees. >> >> So I've separated out the +4 and isolated them in the tblOrgAddress to >> limit >> the impact on lookups and just concatenate them when I assemble >> addresses. >> This is of course time and code intensive in its own right but limited to >> only those times when a full mailing address is required. >> >> The problem comes in requiring data entry people to enter the +4 separate >> from the post code ...it just isn't getting done ...and the client is now >> seeing address rejections from the postal service bulk mailing because >> the >> +4 is missing. >> >> Question is, does anyone have a better way of handling the zip+4 issue? >> >> William >> >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Wed Feb 11 12:56:41 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 13:56:41 -0500 Subject: [AccessD] Zip+4? In-Reply-To: <32627967605A48A29FB0830CB69FCCE0@jislaptopdev> References: <499039E4.9060903@colbyconsulting.com><383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net><6A4FC480A30D42958CF1D23ADB1356E0@SusanOne> <8786a4c00902110906m6abf8200m3913fcb169bf8fee@mail.gmail.com><5E553189E6A9401CB3D98B6E922FD5B0@jislaptopdev> <49930FE1.9020302@colbyconsulting.com> <32627967605A48A29FB0830CB69FCCE0@jislaptopdev> Message-ID: <49931F69.7000105@colbyconsulting.com> In my system the CASS portion fills in the zip 4 as it returns the addresses. To my knowledge the CASS system database from the USPS has a zip 4 for EVERY valid address in the CASS system. IOW, if it passes CASS, it comes back with a valid zip4. John W. Colby www.ColbyConsulting.com William Hindman wrote: > JC > > ...to my utter chagrin, I already know far too much about CASS and NCOA > ...the client uses a mailing house that validates his data against the US > post office's data and rejects anything that doesn't match ...there is an > additional service which we used once for address correction based upon NCOA > data but basically what we got was a list of rejections without any data on > WHY they were rejected ...with a paltry few actual updates ...he now does > this on a quarterly basis against his entire address list. > > ...but that is only the reason the +4 has become a problem, not a solution > to it ...as I noted, the problem is that most zips are still 5 digit but the > number of +4 zips is increasing rapidly and the US postal service is now > rejecting addresses that it, in its indomitable wisdom, thinks should have > the +4 ...but I know of no way to know this before the data is actually > rejected by them ...thus I can't force an initial +4 data entry because in > most cases it doesn't yet exist ...so I'm dependent upon the data entry > people actually entering the +4 data entry, when its available, in a > separate field AFTER they've used the Geo cbo to select the right geo record > ...and they just are not doing it consistently. > > ...any ideas besides colbyizing them all would be appreciated :) > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Wednesday, February 11, 2009 12:50 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] Zip+4? > >> William, >> >> Correctly handling the postal services requirements is a non-trivial task. >> The process is called >> CASS and NCOA. CASS stands for Coding Accuracy Support System. >> >> http://www.nextmark.com/glossary/definition.jsp?glossaryTermId=a0800000000EqQrAAK >> >> What is essentially does is to verify the addresses against USPS supplied >> database (which changes >> quarterly), and if a given address passes CASS it means that the address >> represents an actual >> deliverable address. >> >> NCOA stands for National Change of Address, and it has its own >> requirements but in general the USPS >> wants all addresses CASSed and NCOAed no more than 90 days before use to >> qualify for bulk mail >> discounts and such. >> >> NCOA states that a specific person moved (no longer lives at the previous >> address) and may / may not >> supply the current address. NCOA is a much more nebulous thing than CASS >> simply because people may >> or may not live at an address at all, may have moved and not filed a COA, >> may have lived there but >> moved years ago etc. >> >> I am heavily involved in CASS / NCOA, and in fact I am able to provide >> such processing if desired. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> William Hindman wrote: >>> Group >>> >>> I use a separate tblGeo table to manage >>> city/state/post/country/region/timezone/dst/lat/long data with an fk join >>> on >>> tblOrgAddress. >>> This is presented as an enforced combo with any new org address entry, >>> thus >>> ensuring that only valid entries are allowed for that data. >>> When US zip codes were only 5 digits, this worked quite well ...but the >>> growing number of +4 zips is beginning to grow out of control ...adding >>> the >>> +4 means an additional 10k entries per US post code are possible ...which >>> would drive the db to its knees. >>> >>> So I've separated out the +4 and isolated them in the tblOrgAddress to >>> limit >>> the impact on lookups and just concatenate them when I assemble >>> addresses. >>> This is of course time and code intensive in its own right but limited to >>> only those times when a full mailing address is required. >>> >>> The problem comes in requiring data entry people to enter the +4 separate >>> from the post code ...it just isn't getting done ...and the client is now >>> seeing address rejections from the postal service bulk mailing because >>> the >>> +4 is missing. >>> >>> Question is, does anyone have a better way of handling the zip+4 issue? >>> >>> William >>> >>> >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From jwcolby at colbyconsulting.com Wed Feb 11 13:04:54 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 14:04:54 -0500 Subject: [AccessD] Zip+4? In-Reply-To: <32627967605A48A29FB0830CB69FCCE0@jislaptopdev> References: <499039E4.9060903@colbyconsulting.com><383872510.2876221234193968992.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net><6A4FC480A30D42958CF1D23ADB1356E0@SusanOne> <8786a4c00902110906m6abf8200m3913fcb169bf8fee@mail.gmail.com><5E553189E6A9401CB3D98B6E922FD5B0@jislaptopdev> <49930FE1.9020302@colbyconsulting.com> <32627967605A48A29FB0830CB69FCCE0@jislaptopdev> Message-ID: <49932156.5010300@colbyconsulting.com> the system I use is Accuzip, a company in California. It is not cheap but if your volumes are high enough it is worthwhile. Accuzip runs locally on my machine, and performs the CASS on my server. They provide me with an update quarterly which includes the CASS database from the USPS and a program that compares addresses against that CASS database. When the "validation" process (what they call the CASS) finishes, I have a new table (DBF) that contains all of my fields plus added fields which explain errors found etc. Included in this database is the zip4 for every address that they think is valid. They then have an NCOA server which (if you buy that service) a part of the program uploads (FTPs) the CASSed data plus person name to the server. The data is run against the NCOA database and then FTPed back down to my server and from there exported to CSV for me to get back into my machine. As you can see, when I am done I have a list of "valid addresses" WITH zip 4 as well as a list of NCOA changes back 18 months. That includes the old address and the new address if any. John W. Colby www.ColbyConsulting.com William Hindman wrote: > JC > > ...to my utter chagrin, I already know far too much about CASS and NCOA > ...the client uses a mailing house that validates his data against the US > post office's data and rejects anything that doesn't match ...there is an > additional service which we used once for address correction based upon NCOA > data but basically what we got was a list of rejections without any data on > WHY they were rejected ...with a paltry few actual updates ...he now does > this on a quarterly basis against his entire address list. > > ...but that is only the reason the +4 has become a problem, not a solution > to it ...as I noted, the problem is that most zips are still 5 digit but the > number of +4 zips is increasing rapidly and the US postal service is now > rejecting addresses that it, in its indomitable wisdom, thinks should have > the +4 ...but I know of no way to know this before the data is actually > rejected by them ...thus I can't force an initial +4 data entry because in > most cases it doesn't yet exist ...so I'm dependent upon the data entry > people actually entering the +4 data entry, when its available, in a > separate field AFTER they've used the Geo cbo to select the right geo record > ...and they just are not doing it consistently. > > ...any ideas besides colbyizing them all would be appreciated :) > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Wednesday, February 11, 2009 12:50 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] Zip+4? > >> William, >> >> Correctly handling the postal services requirements is a non-trivial task. >> The process is called >> CASS and NCOA. CASS stands for Coding Accuracy Support System. >> >> http://www.nextmark.com/glossary/definition.jsp?glossaryTermId=a0800000000EqQrAAK >> >> What is essentially does is to verify the addresses against USPS supplied >> database (which changes >> quarterly), and if a given address passes CASS it means that the address >> represents an actual >> deliverable address. >> >> NCOA stands for National Change of Address, and it has its own >> requirements but in general the USPS >> wants all addresses CASSed and NCOAed no more than 90 days before use to >> qualify for bulk mail >> discounts and such. >> >> NCOA states that a specific person moved (no longer lives at the previous >> address) and may / may not >> supply the current address. NCOA is a much more nebulous thing than CASS >> simply because people may >> or may not live at an address at all, may have moved and not filed a COA, >> may have lived there but >> moved years ago etc. >> >> I am heavily involved in CASS / NCOA, and in fact I am able to provide >> such processing if desired. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> William Hindman wrote: >>> Group >>> >>> I use a separate tblGeo table to manage >>> city/state/post/country/region/timezone/dst/lat/long data with an fk join >>> on >>> tblOrgAddress. >>> This is presented as an enforced combo with any new org address entry, >>> thus >>> ensuring that only valid entries are allowed for that data. >>> When US zip codes were only 5 digits, this worked quite well ...but the >>> growing number of +4 zips is beginning to grow out of control ...adding >>> the >>> +4 means an additional 10k entries per US post code are possible ...which >>> would drive the db to its knees. >>> >>> So I've separated out the +4 and isolated them in the tblOrgAddress to >>> limit >>> the impact on lookups and just concatenate them when I assemble >>> addresses. >>> This is of course time and code intensive in its own right but limited to >>> only those times when a full mailing address is required. >>> >>> The problem comes in requiring data entry people to enter the +4 separate >>> from the post code ...it just isn't getting done ...and the client is now >>> seeing address rejections from the postal service bulk mailing because >>> the >>> +4 is missing. >>> >>> Question is, does anyone have a better way of handling the zip+4 issue? >>> >>> William >>> >>> >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From jwcolby at colbyconsulting.com Wed Feb 11 13:44:49 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 14:44:49 -0500 Subject: [AccessD] IMPORT THE FORM Message-ID: <49932AB1.3080500@colbyconsulting.com> This email will document how to import a form into your database that I provide to you. WARNING! If you have modified frmDemoCtls to be the way you want it, rename the form before performing the following. ? Cut and paste the form definition from the email with that stuff into a text file that you can deal with. As an example I used the path "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt". ? In your database click Insert / Module and immediately save it as basImportForm. ? Insert the following code into the module: Function ExportForm(strFrmName As String, strExportPath As String) Application.SaveAsText acForm, strFrmName, strExportPath End Function Function ImportForm(strFrmName As String, strImportPath As String) Application.LoadFromText acForm, strFrmName, strImportPath End Function These functions are just wrappers to VBA code that allows importing and exporting forms to / froim text files. ? Compile and save basImportform. ? In the debug window cut and paste or type in the following (modifying the path to your own) and then hit enter: ImportForm "frmDemoCtls", "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt" ? Click on the form tab of the database and open frmDemoCtls. ? Notice that the form probably looks different than your old form. ? Tab through the form and notice that the text and combo controls change color as they gain / lose the focus. I will use this method of feeding you forms in the future. If you have any questions or something does not work as planned, let me know. -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Wed Feb 11 14:55:43 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 15:55:43 -0500 Subject: [AccessD] How do I rename an object in Access 2007? Message-ID: <49933B4F.20706@colbyconsulting.com> I do not use 2007 but I need to know how to rename a form (for example) in 2007? It seems that the right click menu does not include the option to rename it. -- John W. Colby www.ColbyConsulting.com From mcp2004 at mail.ru Wed Feb 11 15:02:49 2009 From: mcp2004 at mail.ru (=?koi8-r?Q?=F3=C1=CC=C1=C8=C5=D4=C4=C9=CE=CF=D7_=FB=C1=CD=C9=CC=D8?=) Date: Thu, 12 Feb 2009 00:02:49 +0300 Subject: [AccessD] =?koi8-r?b?SG93IGRvIEkgcmVuYW1lIGFuIG9iamVjdCBpbiBBY2Nl?= =?koi8-r?b?c3MgMjAwNz8=?= In-Reply-To: <49933B4F.20706@colbyconsulting.com> References: <49933B4F.20706@colbyconsulting.com> Message-ID: Use {F2} ! But Access 2007 has Right-Click -> Rename as 5th entry in Popup-Menu, hasn't? -- Shamil From max.wanadoo at gmail.com Wed Feb 11 15:03:37 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 11 Feb 2009 21:03:37 -0000 Subject: [AccessD] How do I rename an object in Access 2007? In-Reply-To: <49933B4F.20706@colbyconsulting.com> References: <49933B4F.20706@colbyconsulting.com> Message-ID: <49933d2d.0269300a.788d.7f09@mx.google.com> Yeah...you change it in the properties of the object...stupid A2k7 Right-click works for the whole universe except A2k7 Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 11 February 2009 20:56 To: Access Developers discussion and problem solving Subject: [AccessD] How do I rename an object in Access 2007? I do not use 2007 but I need to know how to rename a form (for example) in 2007? It seems that the right click menu does not include the option to rename it. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Wed Feb 11 15:10:48 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 11 Feb 2009 22:10:48 +0100 Subject: [AccessD] have some fun Message-ID: Hi all I nearly got killed. Of the "10 ways to prevent corruption" (link below) one is about Macs - or rather the people handling them. This has been brought to a Mac OS forum by some innocent curious person resulting in close to zero useful comments but a lot of the usual Access bashing by anonymous commenteers clearly not having any true idea of what Access (JET) is all about. I commented on this and ... you can imagine: http://macosx.com/forums/showthread.php?t=299674&goto=newpost Luckily - as you all know - some bright Mac people do exist (they are seldom there when we need them at clients), and a couple stepped in bringing the thread to a serious level. For those of you working with Access in a mixed environment, some tips may be of value. Even better, contribute if you feel so. Just remember to tip-toe and weigh your wordings ... it is like being in the lions' cave - and none of the lions is you! /gustav >>> ssharkins at gmail.com 09-04-2008 19:29 >>> http://blogs.techrepublic.com.com/10things/?p=331 ======Gustav wrote an article on Access corruption for TR -- it's making a few people pull hairs and trade insults. After reading the article, be sure to check out the comments -- some of these folks really have too much time on their hands. :) Susan H. From jwcolby at colbyconsulting.com Wed Feb 11 15:12:32 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 16:12:32 -0500 Subject: [AccessD] IMPORT THE FORM In-Reply-To: <49932AB1.3080500@colbyconsulting.com> References: <49932AB1.3080500@colbyconsulting.com> Message-ID: <49933F40.7070608@colbyconsulting.com> I need someone to verify that they successfully imported the form using this methodology. I did it myself, but that means nothing as we all know. Thanks, John W. Colby www.ColbyConsulting.com jwcolby wrote: > This email will document how to import a form into your database that I provide to you. WARNING! > If you have modified frmDemoCtls to be the way you want it, rename the form before performing the > following. > > ? Cut and paste the form definition from the email with that stuff into a text file that you can > deal with. As an example I used the path > "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt". > ? In your database click Insert / Module and immediately save it as basImportForm. > ? Insert the following code into the module: > > Function ExportForm(strFrmName As String, strExportPath As String) > Application.SaveAsText acForm, strFrmName, strExportPath > End Function > > Function ImportForm(strFrmName As String, strImportPath As String) > Application.LoadFromText acForm, strFrmName, strImportPath > End Function > > These functions are just wrappers to VBA code that allows importing and exporting forms to / froim > text files. > > ? Compile and save basImportform. > ? In the debug window cut and paste or type in the following (modifying the path to your own) and > then hit enter: > > ImportForm "frmDemoCtls", "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt" > > ? Click on the form tab of the database and open frmDemoCtls. > ? Notice that the form probably looks different than your old form. > ? Tab through the form and notice that the text and combo controls change color as they gain / lose > the focus. > > I will use this method of feeding you forms in the future. If you have any questions or something > does not work as planned, let me know. > From max.wanadoo at gmail.com Wed Feb 11 15:13:28 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 11 Feb 2009 21:13:28 -0000 Subject: [AccessD] How do I rename an object in Access 2007? In-Reply-To: References: <49933B4F.20706@colbyconsulting.com> Message-ID: <49933f7f.0622300a.52a2.ffff9371@mx.google.com> Hi Shamil John was kindly asking on my behalf because I struggle with A2k7. The problem was that when I created a cls module I hit reply and it was named class1 and I wanted to rename it. On the left of the screen I had the project classes with the properties underneath and code pane to the right I was trying to right-click and rename the class1 module. Eventually I renamed it in the properties and that worked. Thanks all Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of ???????????? ?????? Sent: 11 February 2009 21:03 To: Access Developers discussion and problem solving Subject: Re: [AccessD] How do I rename an object in Access 2007? Use {F2} ! But Access 2007 has Right-Click -> Rename as 5th entry in Popup-Menu, hasn't? -- Shamil -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 11 15:17:54 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 11 Feb 2009 21:17:54 -0000 Subject: [AccessD] IMPORT THE FORM In-Reply-To: <49933F40.7070608@colbyconsulting.com> References: <49932AB1.3080500@colbyconsulting.com> <49933F40.7070608@colbyconsulting.com> Message-ID: <49934088.2115300a.0abc.ffff9bb0@mx.google.com> Yeah, All worked fine John. I didn't change anything. Right as you put. Used the import routine from the IW and had the path set up the same as yours so didn't have to change a thing. Once I had renamed my clsCtlCbo module it compiled straight off and the form opened with an error. Dont know what to do next but as the next drink will be my third and it is getting late I wont be doing much more tonight except skulking and replying. Cheers Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 11 February 2009 21:13 To: Access Developers discussion and problem solving Subject: Re: [AccessD] IMPORT THE FORM I need someone to verify that they successfully imported the form using this methodology. I did it myself, but that means nothing as we all know. Thanks, John W. Colby www.ColbyConsulting.com jwcolby wrote: > This email will document how to import a form into your database that I provide to you. WARNING! > If you have modified frmDemoCtls to be the way you want it, rename the form before performing the > following. > > . Cut and paste the form definition from the email with that stuff into a text file that you can > deal with. As an example I used the path > "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt". > . In your database click Insert / Module and immediately save it as basImportForm. > . Insert the following code into the module: > > Function ExportForm(strFrmName As String, strExportPath As String) > Application.SaveAsText acForm, strFrmName, strExportPath > End Function > > Function ImportForm(strFrmName As String, strImportPath As String) > Application.LoadFromText acForm, strFrmName, strImportPath > End Function > > These functions are just wrappers to VBA code that allows importing and exporting forms to / froim > text files. > > . Compile and save basImportform. > . In the debug window cut and paste or type in the following (modifying the path to your own) and > then hit enter: > > ImportForm "frmDemoCtls", "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt" > > . Click on the form tab of the database and open frmDemoCtls. > . Notice that the form probably looks different than your old form. > . Tab through the form and notice that the text and combo controls change color as they gain / lose > the focus. > > I will use this method of feeding you forms in the future. If you have any questions or something > does not work as planned, let me know. > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 11 15:31:11 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 11 Feb 2009 21:31:11 -0000 Subject: [AccessD] have some fun In-Reply-To: References: Message-ID: <499343a4.1185300a.4b81.ffffa02d@mx.google.com> Just posted a reply - head ducked, helmet on, making a brew... Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 11 February 2009 21:11 To: accessd at databaseadvisors.com Subject: Re: [AccessD] have some fun Hi all I nearly got killed. Of the "10 ways to prevent corruption" (link below) one is about Macs - or rather the people handling them. This has been brought to a Mac OS forum by some innocent curious person resulting in close to zero useful comments but a lot of the usual Access bashing by anonymous commenteers clearly not having any true idea of what Access (JET) is all about. I commented on this and ... you can imagine: http://macosx.com/forums/showthread.php?t=299674&goto=newpost Luckily - as you all know - some bright Mac people do exist (they are seldom there when we need them at clients), and a couple stepped in bringing the thread to a serious level. For those of you working with Access in a mixed environment, some tips may be of value. Even better, contribute if you feel so. Just remember to tip-toe and weigh your wordings ... it is like being in the lions' cave - and none of the lions is you! /gustav >>> ssharkins at gmail.com 09-04-2008 19:29 >>> http://blogs.techrepublic.com.com/10things/?p=331 ======Gustav wrote an article on Access corruption for TR -- it's making a few people pull hairs and trade insults. After reading the article, be sure to check out the comments -- some of these folks really have too much time on their hands. :) Susan H. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Wed Feb 11 15:33:43 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 16:33:43 -0500 Subject: [AccessD] have some fun In-Reply-To: References: Message-ID: <49934437.6040402@colbyconsulting.com> LOL. I wouldn't touch a Mac forum with a ten foot pole. For people who claim to be comfortable in their own skin I see a TON of defensiveness about ANYTHING that even REMOTELY even LOOKS like it MIGHT come CLOSE to saying anything negative about a MAC. And a whole ton of "Windows sux" kinds of things. I don't use Macs, but only because my livelihood is created in MS products. But I have no need to bad mouth them even though they suck big time. ;-) John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi all > > I nearly got killed. Of the "10 ways to prevent corruption" (link below) one is about Macs - or rather the people handling them. > This has been brought to a Mac OS forum by some innocent curious person resulting in close to zero useful comments but a lot of the usual Access bashing by anonymous commenteers clearly not having any true idea of what Access (JET) is all about. I commented on this and ... you can imagine: > > http://macosx.com/forums/showthread.php?t=299674&goto=newpost > > Luckily - as you all know - some bright Mac people do exist (they are seldom there when we need them at clients), and a couple stepped in bringing the thread to a serious level. For those of you working with Access in a mixed environment, some tips may be of value. Even better, contribute if you feel so. Just remember to tip-toe and weigh your wordings ... it is like being in the lions' cave - and none of the lions is you! > > /gustav > > >>>> ssharkins at gmail.com 09-04-2008 19:29 >>> > http://blogs.techrepublic.com.com/10things/?p=331 > > ======Gustav wrote an article on Access corruption for TR -- it's making a > few people pull hairs and trade insults. After reading the article, be sure > to check out the comments -- some of these folks really have too much time > on their hands. :) > > Susan H. > > From rockysmolin at bchacc.com Wed Feb 11 15:36:39 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 11 Feb 2009 13:36:39 -0800 Subject: [AccessD] have some fun In-Reply-To: References: Message-ID: <1D3276D11DF045EB85D1CE935FA6C6A9@HAL9005> Dang! Sounds like OT. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 11, 2009 1:11 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] have some fun Hi all I nearly got killed. Of the "10 ways to prevent corruption" (link below) one is about Macs - or rather the people handling them. This has been brought to a Mac OS forum by some innocent curious person resulting in close to zero useful comments but a lot of the usual Access bashing by anonymous commenteers clearly not having any true idea of what Access (JET) is all about. I commented on this and ... you can imagine: http://macosx.com/forums/showthread.php?t=299674&goto=newpost Luckily - as you all know - some bright Mac people do exist (they are seldom there when we need them at clients), and a couple stepped in bringing the thread to a serious level. For those of you working with Access in a mixed environment, some tips may be of value. Even better, contribute if you feel so. Just remember to tip-toe and weigh your wordings ... it is like being in the lions' cave - and none of the lions is you! /gustav >>> ssharkins at gmail.com 09-04-2008 19:29 >>> http://blogs.techrepublic.com.com/10things/?p=331 ======Gustav wrote an article on Access corruption for TR -- it's making a few people pull hairs and trade insults. After reading the article, be sure to check out the comments -- some of these folks really have too much time on their hands. :) Susan H. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Wed Feb 11 15:36:44 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 16:36:44 -0500 Subject: [AccessD] IMPORT THE FORM In-Reply-To: <49934088.2115300a.0abc.ffff9bb0@mx.google.com> References: <49932AB1.3080500@colbyconsulting.com> <49933F40.7070608@colbyconsulting.com> <49934088.2115300a.0abc.ffff9bb0@mx.google.com> Message-ID: <499344EC.6080108@colbyconsulting.com> ROTFL. And you are sure the error is not drink related? 8~o "Opened with an error" is kind of nebulous though. I have intentionally left out the error handling so as to not obscure the good stuff and also because without an error handler, the code stops on the exact error line. What is the error line and what is the module? John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Yeah, > > All worked fine John. I didn't change anything. Right as you put. Used > the import routine from the IW and had the path set up the same as yours so > didn't have to change a thing. Once I had renamed my clsCtlCbo module it > compiled straight off and the form opened with an error. > > Dont know what to do next but as the next drink will be my third and it is > getting late I wont be doing much more tonight except skulking and replying. > > Cheers > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 11 February 2009 21:13 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] IMPORT THE FORM > > I need someone to verify that they successfully imported the form using this > methodology. I did it > myself, but that means nothing as we all know. > > Thanks, > > John W. Colby > www.ColbyConsulting.com > > > jwcolby wrote: >> This email will document how to import a form into your database that I > provide to you. WARNING! >> If you have modified frmDemoCtls to be the way you want it, rename the > form before performing the >> following. >> >> . Cut and paste the form definition from the email with that stuff > into a text file that you can >> deal with. As an example I used the path >> "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt". >> . In your database click Insert / Module and immediately save it as > basImportForm. >> . Insert the following code into the module: >> >> Function ExportForm(strFrmName As String, strExportPath As String) >> Application.SaveAsText acForm, strFrmName, strExportPath >> End Function >> >> Function ImportForm(strFrmName As String, strImportPath As String) >> Application.LoadFromText acForm, strFrmName, strImportPath >> End Function >> >> These functions are just wrappers to VBA code that allows importing and > exporting forms to / froim >> text files. >> >> . Compile and save basImportform. >> . In the debug window cut and paste or type in the following > (modifying the path to your own) and >> then hit enter: >> >> ImportForm "frmDemoCtls", > "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt" >> . Click on the form tab of the database and open frmDemoCtls. >> . Notice that the form probably looks different than your old form. >> . Tab through the form and notice that the text and combo controls > change color as they gain / lose >> the focus. >> >> I will use this method of feeding you forms in the future. If you have > any questions or something >> does not work as planned, let me know. >> From mcp2004 at mail.ru Wed Feb 11 15:38:50 2009 From: mcp2004 at mail.ru (=?koi8-r?Q?=F3=C1=CC=C1=C8=C5=D4=C4=C9=CE=CF=D7_=FB=C1=CD=C9=CC=D8?=) Date: Thu, 12 Feb 2009 00:38:50 +0300 Subject: [AccessD] =?koi8-r?b?SG93IGRvIEkgcmVuYW1lIGFuIG9iamVjdCBpbiBBY2Nl?= =?koi8-r?b?c3MgMjAwNz8=?= In-Reply-To: <49933f7f.0622300a.52a2.ffff9371@mx.google.com> References: <49933f7f.0622300a.52a2.ffff9371@mx.google.com> Message-ID: Hi Max, OK, sorry for confusion but John asked (on your behave) how to rename Access 2007 object (e.g form). Yes, class module can be renamed both in VBA window in Properties (docked) window, or in Database Window in the list of modules by using popup-menu or {F2}. Thank you. -- Shamil From max.wanadoo at gmail.com Wed Feb 11 15:44:12 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 11 Feb 2009 21:44:12 -0000 Subject: [AccessD] IMPORT THE FORM In-Reply-To: <499344EC.6080108@colbyconsulting.com> References: <49932AB1.3080500@colbyconsulting.com> <49933F40.7070608@colbyconsulting.com> <49934088.2115300a.0abc.ffff9bb0@mx.google.com> <499344EC.6080108@colbyconsulting.com> Message-ID: <499346b2.08eb300a.7f87.ffffaf6c@mx.google.com> Ha! And who is the one who has been drinking. I had NO error. Did you read somebody elses posting and then replied to me? It all went a dream. Worked fine. Did NOT "open with an error" - not my words....oh, yes they were, weren't they...sorry, meant to say "without an error" grin...big grin...I take it all back...it is working GREAT. Ha! I am on my 3rd, you? Ps. Creating Tables in code... http://msdn.microsoft.com/en-us/library/aa258255(SQL.80).aspx Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 11 February 2009 21:37 To: Access Developers discussion and problem solving Subject: Re: [AccessD] IMPORT THE FORM ROTFL. And you are sure the error is not drink related? 8~o "Opened with an error" is kind of nebulous though. I have intentionally left out the error handling so as to not obscure the good stuff and also because without an error handler, the code stops on the exact error line. What is the error line and what is the module? John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Yeah, > > All worked fine John. I didn't change anything. Right as you put. Used > the import routine from the IW and had the path set up the same as yours so > didn't have to change a thing. Once I had renamed my clsCtlCbo module it > compiled straight off and the form opened with an error. > > Dont know what to do next but as the next drink will be my third and it is > getting late I wont be doing much more tonight except skulking and replying. > > Cheers > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 11 February 2009 21:13 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] IMPORT THE FORM > > I need someone to verify that they successfully imported the form using this > methodology. I did it > myself, but that means nothing as we all know. > > Thanks, > > John W. Colby > www.ColbyConsulting.com > > > jwcolby wrote: >> This email will document how to import a form into your database that I > provide to you. WARNING! >> If you have modified frmDemoCtls to be the way you want it, rename the > form before performing the >> following. >> >> . Cut and paste the form definition from the email with that stuff > into a text file that you can >> deal with. As an example I used the path >> "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt". >> . In your database click Insert / Module and immediately save it as > basImportForm. >> . Insert the following code into the module: >> >> Function ExportForm(strFrmName As String, strExportPath As String) >> Application.SaveAsText acForm, strFrmName, strExportPath >> End Function >> >> Function ImportForm(strFrmName As String, strImportPath As String) >> Application.LoadFromText acForm, strFrmName, strImportPath >> End Function >> >> These functions are just wrappers to VBA code that allows importing and > exporting forms to / froim >> text files. >> >> . Compile and save basImportform. >> . In the debug window cut and paste or type in the following > (modifying the path to your own) and >> then hit enter: >> >> ImportForm "frmDemoCtls", > "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt" >> . Click on the form tab of the database and open frmDemoCtls. >> . Notice that the form probably looks different than your old form. >> . Tab through the form and notice that the text and combo controls > change color as they gain / lose >> the focus. >> >> I will use this method of feeding you forms in the future. If you have > any questions or something >> does not work as planned, let me know. >> -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 11 15:44:31 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 11 Feb 2009 21:44:31 -0000 Subject: [AccessD] How do I rename an object in Access 2007? In-Reply-To: References: <49933f7f.0622300a.52a2.ffff9371@mx.google.com> Message-ID: <499346c4.09ed300a.4938.43a3@mx.google.com> No, thank YOU Shamil. It must be very late where you are... Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of ???????????? ?????? Sent: 11 February 2009 21:39 To: Access Developers discussion and problem solving Subject: Re: [AccessD] How do I rename an object in Access 2007? Hi Max, OK, sorry for confusion but John asked (on your behave) how to rename Access 2007 object (e.g form). Yes, class module can be renamed both in VBA window in Properties (docked) window, or in Database Window in the list of modules by using popup-menu or {F2}. Thank you. -- Shamil -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Wed Feb 11 16:03:34 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 17:03:34 -0500 Subject: [AccessD] IMPORT THE FORM In-Reply-To: <499346b2.08eb300a.7f87.ffffaf6c@mx.google.com> References: <49932AB1.3080500@colbyconsulting.com> <49933F40.7070608@colbyconsulting.com> <49934088.2115300a.0abc.ffff9bb0@mx.google.com> <499344EC.6080108@colbyconsulting.com> <499346b2.08eb300a.7f87.ffffaf6c@mx.google.com> Message-ID: <49934B36.8080905@colbyconsulting.com> > Ha! I am on my 3rd, you? I had to quit. Let me see... Cinco de Mayo 1986. No more nothin, including tobacco. I am a caffein kinda guy now. I am thrilled that "it is working GREAT"! That is what I work for. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Ha! And who is the one who has been drinking. > I had NO error. Did you read somebody elses posting and then replied to me? > It all went a dream. Worked fine. Did NOT "open with an error" - not my > words....oh, yes they were, weren't they...sorry, meant to say "without an > error" grin...big grin...I take it all back...it is working GREAT. > > > Ha! I am on my 3rd, you? > > Ps. Creating Tables in code... > http://msdn.microsoft.com/en-us/library/aa258255(SQL.80).aspx > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 11 February 2009 21:37 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] IMPORT THE FORM > > ROTFL. And you are sure the error is not drink related? > > 8~o > > "Opened with an error" is kind of nebulous though. I have intentionally > left out the error handling > so as to not obscure the good stuff and also because without an error > handler, the code stops on the > exact error line. > > What is the error line and what is the module? > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> Yeah, >> >> All worked fine John. I didn't change anything. Right as you put. Used >> the import routine from the IW and had the path set up the same as yours > so >> didn't have to change a thing. Once I had renamed my clsCtlCbo module it >> compiled straight off and the form opened with an error. >> >> Dont know what to do next but as the next drink will be my third and it is >> getting late I wont be doing much more tonight except skulking and > replying. >> Cheers >> >> Max >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: 11 February 2009 21:13 >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] IMPORT THE FORM >> >> I need someone to verify that they successfully imported the form using > this >> methodology. I did it >> myself, but that means nothing as we all know. >> >> Thanks, >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> jwcolby wrote: >>> This email will document how to import a form into your database that I >> provide to you. WARNING! >>> If you have modified frmDemoCtls to be the way you want it, rename the >> form before performing the >>> following. >>> >>> . Cut and paste the form definition from the email with that stuff >> into a text file that you can >>> deal with. As an example I used the path >>> "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt". >>> . In your database click Insert / Module and immediately save it as >> basImportForm. >>> . Insert the following code into the module: >>> >>> Function ExportForm(strFrmName As String, strExportPath As String) >>> Application.SaveAsText acForm, strFrmName, strExportPath >>> End Function >>> >>> Function ImportForm(strFrmName As String, strImportPath As String) >>> Application.LoadFromText acForm, strFrmName, strImportPath >>> End Function >>> >>> These functions are just wrappers to VBA code that allows importing and >> exporting forms to / froim >>> text files. >>> >>> . Compile and save basImportform. >>> . In the debug window cut and paste or type in the following >> (modifying the path to your own) and >>> then hit enter: >>> >>> ImportForm "frmDemoCtls", >> "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt" >>> . Click on the form tab of the database and open frmDemoCtls. >>> . Notice that the form probably looks different than your old form. >>> . Tab through the form and notice that the text and combo controls >> change color as they gain / lose >>> the focus. >>> >>> I will use this method of feeding you forms in the future. If you have >> any questions or something >>> does not work as planned, let me know. >>> From jwcolby at colbyconsulting.com Wed Feb 11 16:05:58 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 17:05:58 -0500 Subject: [AccessD] Where do we go from here? Message-ID: <49934BC6.3000600@colbyconsulting.com> So what would you folks like to see next? I still have a rabbit in the hat and a few things up my sleeve. -- John W. Colby www.ColbyConsulting.com From stuart at lexacorp.com.pg Wed Feb 11 16:14:41 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Thu, 12 Feb 2009 08:14:41 +1000 Subject: [AccessD] Build tables programatically In-Reply-To: <4992D5CC.7030105@colbyconsulting.com> References: <4992D5CC.7030105@colbyconsulting.com> Message-ID: <4993DA71.11434.3F6CA16@stuart.lexacorp.com.pg> Here's something off the top of my head to build an Agency table and populate it from string of values (pipe and comma delimited). Not tested, so may require debugging. Extractring current data from a table and building the string of values is left as an exercise for the reader :-) strSQL = "CREATE TABLE tblAgency " _ & "(AgencyID INTEGER NOT NULL, " _ & "AgencyName TEXT(255) NOT NULL, " _ & "StateFK INTEGER NOT NULL)" CurrentDB.Execute strSQL strSQL = "CREATE INDEX idxAgencyID " _ & "ON tblAgency (AgencyID)" _ & "WITH PRIMARY" CurrentDB.Execute strSQL strSQL1 = "INSERT INTO tblAgency " - & "(AgencyID,AgencyName,StateID)" _ & "VALUES (" strData = "1|Agency1|1,2|Agency2|1,3|Agency3|2,4|Agency4|1" arrData = Split(strData,",") For lngLoop = 0 to UBound(arrData) arrFields = split(arrData(lngLoop) strSQL2 = arrFields(0) & ",'" _ & arrFields(1) & "','" _ & arrFields(2) & ")" CurrentDb.Execute strSQL1 & strSQL2 Next Here's an excellent primer on using SQL in Access. It gives a fair bit of detail about these sorts of operations: Fundamental Microsoft Jet SQL for Access 2000 http://msdn.microsoft.com/en-us/library/aa140011(office.10).aspx On 11 Feb 2009 at 8:42, jwcolby wrote: > For the class lecture it would be handy to be able to build Access tables programatically. I do not > know how to do this, though the authors of books usually do so. > > Does anyone on this list have any code library that would allow me to create field X with data type > Y, that is a PK etc etc. > > Having that, I can build append queries to append specific data into these tables, but if anyone has > such a thing, code to extract actual data from a table and write the SQL Statements that would > append that into a specific table would be nice. > > IOW (for example) I have an existing state table and an agency table with a state ID. In order to > minimize the impact on the readers having to go manually create a state and agency table and > manually input data into those tables, it would be nice to provide code that builds those two tables > and then populates those tables with a few data elements. > > Ideas anyone? > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 11 16:17:42 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 11 Feb 2009 22:17:42 -0000 Subject: [AccessD] IMPORT THE FORM In-Reply-To: <49934B36.8080905@colbyconsulting.com> References: <49932AB1.3080500@colbyconsulting.com> <49933F40.7070608@colbyconsulting.com> <49934088.2115300a.0abc.ffff9bb0@mx.google.com> <499344EC.6080108@colbyconsulting.com> <499346b2.08eb300a.7f87.ffffaf6c@mx.google.com> <49934B36.8080905@colbyconsulting.com> Message-ID: <49934e8b.0269300a.7888.5ff8@mx.google.com> That is good to hear. I started smoking at the age of 55 - really! I stopped a year ago last week - really! Why I ever started heaven knows but I am no better off - the divorce lawyers just hold their hands out (bastards!). I do not drink TOO much, but sometimes I do. Maybe once or twice a week but never daily and don't need it, just like it. Not like cigs - there were bloody addictive. They are drugs no doubt about it. Should be outlawed - ha! See what you're doing to me! I am dropping into the Western Lingo... > I am thrilled that "it is working GREAT"! That is what I work for. Me too. The best kick I get at work is when I hear "thanks Max that's really great". So are you. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 11 February 2009 22:04 To: Access Developers discussion and problem solving Subject: Re: [AccessD] IMPORT THE FORM > Ha! I am on my 3rd, you? I had to quit. Let me see... Cinco de Mayo 1986. No more nothin, including tobacco. I am a caffein kinda guy now. I am thrilled that "it is working GREAT"! That is what I work for. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Ha! And who is the one who has been drinking. > I had NO error. Did you read somebody elses posting and then replied to me? > It all went a dream. Worked fine. Did NOT "open with an error" - not my > words....oh, yes they were, weren't they...sorry, meant to say "without an > error" grin...big grin...I take it all back...it is working GREAT. > > > Ha! I am on my 3rd, you? > > Ps. Creating Tables in code... > http://msdn.microsoft.com/en-us/library/aa258255(SQL.80).aspx > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 11 February 2009 21:37 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] IMPORT THE FORM > > ROTFL. And you are sure the error is not drink related? > > 8~o > > "Opened with an error" is kind of nebulous though. I have intentionally > left out the error handling > so as to not obscure the good stuff and also because without an error > handler, the code stops on the > exact error line. > > What is the error line and what is the module? > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> Yeah, >> >> All worked fine John. I didn't change anything. Right as you put. Used >> the import routine from the IW and had the path set up the same as yours > so >> didn't have to change a thing. Once I had renamed my clsCtlCbo module it >> compiled straight off and the form opened with an error. >> >> Dont know what to do next but as the next drink will be my third and it is >> getting late I wont be doing much more tonight except skulking and > replying. >> Cheers >> >> Max >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: 11 February 2009 21:13 >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] IMPORT THE FORM >> >> I need someone to verify that they successfully imported the form using > this >> methodology. I did it >> myself, but that means nothing as we all know. >> >> Thanks, >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> jwcolby wrote: >>> This email will document how to import a form into your database that I >> provide to you. WARNING! >>> If you have modified frmDemoCtls to be the way you want it, rename the >> form before performing the >>> following. >>> >>> . Cut and paste the form definition from the email with that stuff >> into a text file that you can >>> deal with. As an example I used the path >>> "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt". >>> . In your database click Insert / Module and immediately save it as >> basImportForm. >>> . Insert the following code into the module: >>> >>> Function ExportForm(strFrmName As String, strExportPath As String) >>> Application.SaveAsText acForm, strFrmName, strExportPath >>> End Function >>> >>> Function ImportForm(strFrmName As String, strImportPath As String) >>> Application.LoadFromText acForm, strFrmName, strImportPath >>> End Function >>> >>> These functions are just wrappers to VBA code that allows importing and >> exporting forms to / froim >>> text files. >>> >>> . Compile and save basImportform. >>> . In the debug window cut and paste or type in the following >> (modifying the path to your own) and >>> then hit enter: >>> >>> ImportForm "frmDemoCtls", >> "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt" >>> . Click on the form tab of the database and open frmDemoCtls. >>> . Notice that the form probably looks different than your old form. >>> . Tab through the form and notice that the text and combo controls >> change color as they gain / lose >>> the focus. >>> >>> I will use this method of feeding you forms in the future. If you have >> any questions or something >>> does not work as planned, let me know. >>> -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Wed Feb 11 16:18:37 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 17:18:37 -0500 Subject: [AccessD] Build tables programatically In-Reply-To: <4993DA71.11434.3F6CA16@stuart.lexacorp.com.pg> References: <4992D5CC.7030105@colbyconsulting.com> <4993DA71.11434.3F6CA16@stuart.lexacorp.com.pg> Message-ID: <49934EBD.5040305@colbyconsulting.com> Wow. Thanks! John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > Here's something off the top of my head to build an Agency table and populate it from string > of values (pipe and comma delimited). Not tested, so may require debugging. > > Extractring current data from a table and building the string of values is left as an exercise > for the reader :-) > > strSQL = "CREATE TABLE tblAgency " _ > & "(AgencyID INTEGER NOT NULL, " _ > & "AgencyName TEXT(255) NOT NULL, " _ > & "StateFK INTEGER NOT NULL)" > CurrentDB.Execute strSQL > > strSQL = "CREATE INDEX idxAgencyID " _ > & "ON tblAgency (AgencyID)" _ > & "WITH PRIMARY" > CurrentDB.Execute strSQL > > strSQL1 = "INSERT INTO tblAgency " - > & "(AgencyID,AgencyName,StateID)" _ > & "VALUES (" > > strData = "1|Agency1|1,2|Agency2|1,3|Agency3|2,4|Agency4|1" > arrData = Split(strData,",") > > For lngLoop = 0 to UBound(arrData) > arrFields = split(arrData(lngLoop) > strSQL2 = arrFields(0) & ",'" _ > & arrFields(1) & "','" _ > & arrFields(2) & ")" > CurrentDb.Execute strSQL1 & strSQL2 > Next > > Here's an excellent primer on using SQL in Access. It gives a fair bit of detail about these > sorts of operations: > > Fundamental Microsoft Jet SQL for Access 2000 > http://msdn.microsoft.com/en-us/library/aa140011(office.10).aspx > > > On 11 Feb 2009 at 8:42, jwcolby wrote: > >> For the class lecture it would be handy to be able to build Access tables programatically. I do not >> know how to do this, though the authors of books usually do so. >> >> Does anyone on this list have any code library that would allow me to create field X with data type >> Y, that is a PK etc etc. >> >> Having that, I can build append queries to append specific data into these tables, but if anyone has >> such a thing, code to extract actual data from a table and write the SQL Statements that would >> append that into a specific table would be nice. >> >> IOW (for example) I have an existing state table and an agency table with a state ID. In order to >> minimize the impact on the readers having to go manually create a state and agency table and >> manually input data into those tables, it would be nice to provide code that builds those two tables >> and then populates those tables with a few data elements. >> >> Ideas anyone? >> >> -- >> John W. Colby >> www.ColbyConsulting.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com > > From terry.mace at baesystems.com Wed Feb 11 16:23:47 2009 From: terry.mace at baesystems.com (MACE, Terry) Date: Thu, 12 Feb 2009 09:23:47 +1100 Subject: [AccessD] One millisecond resolution (was: Classes and Events -EVENTS NOT REQUIRED) In-Reply-To: <200902111025.n1BAP9ep023782@bunya.baea.com.au> References: <200902111025.n1BAP9ep023782@bunya.baea.com.au> Message-ID: <3881CF7F5868CA419AAF1179D19F6BAC02B52BB9@abw3ex1.au.baesystems.com> All, Thanks for all the pointers on millisecond timing, I am now much wiser and so are some of my colleagues. Regards Terry Mace Logistics Support Officer & Maintenance Supervisor -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, 11 February 2009 9:24 PM To: accessd at databaseadvisors.com Subject: [AccessD] One millisecond resolution (was: Classes and Events -EVENTS NOT REQUIRED) Hi Terry Your programmers may have to look a bit deeper into this. While I have no reason to doubt the articles of the links from Stuart and John on the hardware limitations, Windows XP behaves a bit clever than stated. Stuart mentions the API call timeBeginPeriod but doesn't show how to use it which is as simple as can be (more on this later). If you are really interested in the millisecond business, not only for timing purposes but also to obtain absolute time, I can recommend the article here: http://www.devx.com/dbzone/Article/39046 A free registration is required to access the page and download. "Warning: The information contained in this email and any attached files is confidential to BAE Systems Australia. If you are not the intended recipient, any use, disclosure or copying of this email or any attachments is expressly prohibited. If you have received this email in error, please notify us immediately. VIRUS: Every care has been taken to ensure this email and its attachments are virus free, however, any loss or damage incurred in using this email is not the sender's responsibility. It is your responsibility to ensure virus checks are completed before installing any data sent in this email to your computer." From max.wanadoo at gmail.com Wed Feb 11 16:24:22 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 11 Feb 2009 22:24:22 -0000 Subject: [AccessD] Where do we go from here? In-Reply-To: <49934BC6.3000600@colbyconsulting.com> References: <49934BC6.3000600@colbyconsulting.com> Message-ID: <49935023.0516300a.08f4.ffffab09@mx.google.com> Well, for me it would be a project. I have suggested a fully functional import/export to text for all objects to help people avoid bloat and recover from disasters. My second project request would be to re-write the whole of my work project which started in 2000 and really, and I mean really, do with a make-over. On second thoughts, my second request is now my first request!!! When do we start? Max Ps. Well, you did ask! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 11 February 2009 22:06 To: Access Developers discussion and problem solving Subject: [AccessD] Where do we go from here? So what would you folks like to see next? I still have a rabbit in the hat and a few things up my sleeve. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Wed Feb 11 16:35:21 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Thu, 12 Feb 2009 08:35:21 +1000 Subject: [AccessD] Build tables programatically In-Reply-To: <4993DA71.11434.3F6CA16@stuart.lexacorp.com.pg> References: <4992D5CC.7030105@colbyconsulting.com>, <4993DA71.11434.3F6CA16@stuart.lexacorp.com.pg> Message-ID: <4993DF49.26159.409B60A@stuart.lexacorp.com.pg> There had to be at least one or should that be "There can be only one!" arrFields = split(arrData(lngLoop) should be arrFields = split(arrData(lngLoop),"|") On 12 Feb 2009 at 8:14, Stuart McLachlan wrote: > Here's something off the top of my head to build an Agency table and populate it from string > of values (pipe and comma delimited). Not tested, so may require debugging. > > arrFields = split(arrData(lngLoop) From jwcolby at colbyconsulting.com Wed Feb 11 16:45:28 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 17:45:28 -0500 Subject: [AccessD] Where do we go from here? In-Reply-To: <49935023.0516300a.08f4.ffffab09@mx.google.com> References: <49934BC6.3000600@colbyconsulting.com> <49935023.0516300a.08f4.ffffab09@mx.google.com> Message-ID: <49935508.4090901@colbyconsulting.com> ROTFL. You laugh but when I learned about classes, I rewrote my entire framework from scratch. It was sooooo much cleaner and so much more functional. Then, with the experience I gained from that I rewrote it a third time. Classes really do rock! In this case however I am looking for ideas on what simple things we can do to better illustrate how and why you would use a class. If you get too complex people will drop like flies. Let them get hooked, then we can do some more complex stuff. Perhaps an audit trail for changes? For now I think the next step will be to build some tables with data and a form to load / edit data for a combo box. Once we have that then I can demonstrate having the combo class double click event automatically open the form, seek to the right record (or the new record) and let the user add new records to the list table. When the form closes, the combo requeries to get the changes to the list data. This is actual stuff that I do with my combo class, and displays how a combo can have behaviors added in the wrapper class to make it more useful. Additionally it demonstrates how these behaviors can be available in any combo in any form, with a very simple "setup" to cause it to happen. Have you ever inherited a database (or designed one for that matter) where dates are entered and displayed in different formats all over the various forms. No consistency, drives the users crazy. I also have a behavior where (in a bound form) I dig down to discover the data type of the field that a control is bound to (DAO here). Once I have the datatype, I automatically cause the text box to display a specific date mask if the text box is bound to a date field. Having this behavior in the text class allows me to tell the system in one place what the date format should look like, and then when any form (that uses the form class) opens, it automatically discovers all date fields and sets them up to a common date mask. Stuff like that. We have pretty much learned how to build classes, and how to sink events in classes, so it is time to put this new knowledge to use. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Well, for me it would be a project. I have suggested a fully functional > import/export to text for all objects to help people avoid bloat and recover > from disasters. My second project request would be to re-write the whole of > my work project which started in 2000 and really, and I mean really, do with > a make-over. On second thoughts, my second request is now my first > request!!! When do we start? > > Max > Ps. Well, you did ask! > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 11 February 2009 22:06 > To: Access Developers discussion and problem solving > Subject: [AccessD] Where do we go from here? > > So what would you folks like to see next? I still have a rabbit in the hat > and a few things up my > sleeve. > From max.wanadoo at gmail.com Wed Feb 11 16:57:42 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 11 Feb 2009 22:57:42 -0000 Subject: [AccessD] Where do we go from here? In-Reply-To: <49935508.4090901@colbyconsulting.com> References: <49934BC6.3000600@colbyconsulting.com> <49935023.0516300a.08f4.ffffab09@mx.google.com> <49935508.4090901@colbyconsulting.com> Message-ID: <499357ec.09ff300a.4454.6e41@mx.google.com> > Perhaps an audit trail for changes Yes, that is topical > Have you ever inherited a database (or designed one for that matter) where dates are entered and displayed in different formats all over the various forms. No consistency, drives the users crazy. That's how I write my programs! Duh! Now you know why it needs a makeover. Ok, and here is another we could look at: Making sure that all code that calculate (say) basic + tax * gross profit - overheads etc etc is the same right across the board by hiding all the calcs in a single class. Only one place to get the calculations for business rules and that is (ie) clsBusinessRules Let people from the List come up with business rules and then, as a lesson, build the class to handle those rules. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 11 February 2009 22:45 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Where do we go from here? ROTFL. You laugh but when I learned about classes, I rewrote my entire framework from scratch. It was sooooo much cleaner and so much more functional. Then, with the experience I gained from that I rewrote it a third time. Classes really do rock! In this case however I am looking for ideas on what simple things we can do to better illustrate how and why you would use a class. If you get too complex people will drop like flies. Let them get hooked, then we can do some more complex stuff. Perhaps an audit trail for changes? For now I think the next step will be to build some tables with data and a form to load / edit data for a combo box. Once we have that then I can demonstrate having the combo class double click event automatically open the form, seek to the right record (or the new record) and let the user add new records to the list table. When the form closes, the combo requeries to get the changes to the list data. This is actual stuff that I do with my combo class, and displays how a combo can have behaviors added in the wrapper class to make it more useful. Additionally it demonstrates how these behaviors can be available in any combo in any form, with a very simple "setup" to cause it to happen. Have you ever inherited a database (or designed one for that matter) where dates are entered and displayed in different formats all over the various forms. No consistency, drives the users crazy. I also have a behavior where (in a bound form) I dig down to discover the data type of the field that a control is bound to (DAO here). Once I have the datatype, I automatically cause the text box to display a specific date mask if the text box is bound to a date field. Having this behavior in the text class allows me to tell the system in one place what the date format should look like, and then when any form (that uses the form class) opens, it automatically discovers all date fields and sets them up to a common date mask. Stuff like that. We have pretty much learned how to build classes, and how to sink events in classes, so it is time to put this new knowledge to use. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Well, for me it would be a project. I have suggested a fully functional > import/export to text for all objects to help people avoid bloat and recover > from disasters. My second project request would be to re-write the whole of > my work project which started in 2000 and really, and I mean really, do with > a make-over. On second thoughts, my second request is now my first > request!!! When do we start? > > Max > Ps. Well, you did ask! > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 11 February 2009 22:06 > To: Access Developers discussion and problem solving > Subject: [AccessD] Where do we go from here? > > So what would you folks like to see next? I still have a rabbit in the hat > and a few things up my > sleeve. > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Wed Feb 11 17:04:18 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 11 Feb 2009 18:04:18 -0500 Subject: [AccessD] Where do we go from here? References: <49934BC6.3000600@colbyconsulting.com><49935023.0516300a.08f4.ffffab09@mx.google.com> <49935508.4090901@colbyconsulting.com> Message-ID: ...well you asked and Max replied ...and as a die-hard user of his incredibly useful EatBloat.mdb for Access, I'd be remiss if I didn't second his motion to retool it from the ground up right here on AccessD ...might not be where you wanted to go with this series but I think you ought to give it a good look ...not only would we learn how to do real world stuff, we'd wind up with a better tool that any Access developer would consider a must have in their toolbox ...if you've never used it, even you might be pleasantly surprised. William -------------------------------------------------- From: "jwcolby" Sent: Wednesday, February 11, 2009 5:45 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Where do we go from here? > ROTFL. > > You laugh but when I learned about classes, I rewrote my entire framework > from scratch. It was > sooooo much cleaner and so much more functional. Then, with the > experience I gained from that I > rewrote it a third time. > > Classes really do rock! > > In this case however I am looking for ideas on what simple things we can > do to better illustrate how > and why you would use a class. If you get too complex people will drop > like flies. Let them get > hooked, then we can do some more complex stuff. Perhaps an audit trail > for changes? > > For now I think the next step will be to build some tables with data and a > form to load / edit data > for a combo box. Once we have that then I can demonstrate having the > combo class double click event > automatically open the form, seek to the right record (or the new record) > and let the user add new > records to the list table. When the form closes, the combo requeries to > get the changes to the list > data. > > This is actual stuff that I do with my combo class, and displays how a > combo can have behaviors > added in the wrapper class to make it more useful. Additionally it > demonstrates how these behaviors > can be available in any combo in any form, with a very simple "setup" to > cause it to happen. > > Have you ever inherited a database (or designed one for that matter) where > dates are entered and > displayed in different formats all over the various forms. No > consistency, drives the users crazy. > > I also have a behavior where (in a bound form) I dig down to discover the > data type of the field > that a control is bound to (DAO here). Once I have the datatype, I > automatically cause the text box > to display a specific date mask if the text box is bound to a date field. > Having this behavior in > the text class allows me to tell the system in one place what the date > format should look like, and > then when any form (that uses the form class) opens, it automatically > discovers all date fields and > sets them up to a common date mask. > > Stuff like that. > > We have pretty much learned how to build classes, and how to sink events > in classes, so it is time > to put this new knowledge to use. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> Well, for me it would be a project. I have suggested a fully functional >> import/export to text for all objects to help people avoid bloat and >> recover >> from disasters. My second project request would be to re-write the whole >> of >> my work project which started in 2000 and really, and I mean really, do >> with >> a make-over. On second thoughts, my second request is now my first >> request!!! When do we start? >> >> Max >> Ps. Well, you did ask! >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: 11 February 2009 22:06 >> To: Access Developers discussion and problem solving >> Subject: [AccessD] Where do we go from here? >> >> So what would you folks like to see next? I still have a rabbit in the >> hat >> and a few things up my >> sleeve. >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From stuart at lexacorp.com.pg Wed Feb 11 17:11:11 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Thu, 12 Feb 2009 09:11:11 +1000 Subject: [AccessD] Where do we go from here? In-Reply-To: <49935508.4090901@colbyconsulting.com> References: <49934BC6.3000600@colbyconsulting.com>, <49935023.0516300a.08f4.ffffab09@mx.google.com>, <49935508.4090901@colbyconsulting.com> Message-ID: <4993E7AF.3454.42A8451@stuart.lexacorp.com.pg> Here's a fairly simple one which would make a good class: A date picker. http://www.fontstuff.com/access/acctut09.htm On 11 Feb 2009 at 17:45, jwcolby wrote: > In this case however I am looking for ideas on what simple things we can do to better illustrate how > and why you would use a class. If you get too complex people will drop like flies. Let them get > hooked, then we can do some more complex stuff. Perhaps an audit trail for changes? > From jwcolby at colbyconsulting.com Wed Feb 11 17:19:15 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 18:19:15 -0500 Subject: [AccessD] Where do we go from here? In-Reply-To: References: <49934BC6.3000600@colbyconsulting.com><49935023.0516300a.08f4.ffffab09@mx.google.com> <49935508.4090901@colbyconsulting.com> Message-ID: <49935CF3.20709@colbyconsulting.com> I will certainly entertain the idea. What I don't want to do is launch into a month long complex project that the beginner class user does not understand and see everyone wander away. There is no reason why it cannot be done as a project for those who already know and love classes. John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...well you asked and Max replied ...and as a die-hard user of his > incredibly useful EatBloat.mdb for Access, I'd be remiss if I didn't second > his motion to retool it from the ground up right here on AccessD ...might > not be where you wanted to go with this series but I think you ought to give > it a good look ...not only would we learn how to do real world stuff, we'd > wind up with a better tool that any Access developer would consider a must > have in their toolbox ...if you've never used it, even you might be > pleasantly surprised. > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Wednesday, February 11, 2009 5:45 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] Where do we go from here? > >> ROTFL. >> >> You laugh but when I learned about classes, I rewrote my entire framework >> from scratch. It was >> sooooo much cleaner and so much more functional. Then, with the >> experience I gained from that I >> rewrote it a third time. >> >> Classes really do rock! >> >> In this case however I am looking for ideas on what simple things we can >> do to better illustrate how >> and why you would use a class. If you get too complex people will drop >> like flies. Let them get >> hooked, then we can do some more complex stuff. Perhaps an audit trail >> for changes? >> >> For now I think the next step will be to build some tables with data and a >> form to load / edit data >> for a combo box. Once we have that then I can demonstrate having the >> combo class double click event >> automatically open the form, seek to the right record (or the new record) >> and let the user add new >> records to the list table. When the form closes, the combo requeries to >> get the changes to the list >> data. >> >> This is actual stuff that I do with my combo class, and displays how a >> combo can have behaviors >> added in the wrapper class to make it more useful. Additionally it >> demonstrates how these behaviors >> can be available in any combo in any form, with a very simple "setup" to >> cause it to happen. >> >> Have you ever inherited a database (or designed one for that matter) where >> dates are entered and >> displayed in different formats all over the various forms. No >> consistency, drives the users crazy. >> >> I also have a behavior where (in a bound form) I dig down to discover the >> data type of the field >> that a control is bound to (DAO here). Once I have the datatype, I >> automatically cause the text box >> to display a specific date mask if the text box is bound to a date field. >> Having this behavior in >> the text class allows me to tell the system in one place what the date >> format should look like, and >> then when any form (that uses the form class) opens, it automatically >> discovers all date fields and >> sets them up to a common date mask. >> >> Stuff like that. >> >> We have pretty much learned how to build classes, and how to sink events >> in classes, so it is time >> to put this new knowledge to use. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> Well, for me it would be a project. I have suggested a fully functional >>> import/export to text for all objects to help people avoid bloat and >>> recover >>> from disasters. My second project request would be to re-write the whole >>> of >>> my work project which started in 2000 and really, and I mean really, do >>> with >>> a make-over. On second thoughts, my second request is now my first >>> request!!! When do we start? >>> >>> Max >>> Ps. Well, you did ask! >>> >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>> Sent: 11 February 2009 22:06 >>> To: Access Developers discussion and problem solving >>> Subject: [AccessD] Where do we go from here? >>> >>> So what would you folks like to see next? I still have a rabbit in the >>> hat >>> and a few things up my >>> sleeve. >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From jwcolby at colbyconsulting.com Wed Feb 11 17:22:40 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 18:22:40 -0500 Subject: [AccessD] Where do we go from here? In-Reply-To: <4993E7AF.3454.42A8451@stuart.lexacorp.com.pg> References: <49934BC6.3000600@colbyconsulting.com>, <49935023.0516300a.08f4.ffffab09@mx.google.com>, <49935508.4090901@colbyconsulting.com> <4993E7AF.3454.42A8451@stuart.lexacorp.com.pg> Message-ID: <49935DC0.3070101@colbyconsulting.com> oooh, good one. I have a date picker class in fact. I also have an OpenArgs class. And of course we will eventually need the SysVars. Log classes, both to text files and to tables. Lots of good things we can do to keep it simple but still show how and why we use classes. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > Here's a fairly simple one which would make a good class: > A date picker. > http://www.fontstuff.com/access/acctut09.htm > > On 11 Feb 2009 at 17:45, jwcolby wrote: > >> In this case however I am looking for ideas on what simple things we can do to better illustrate how >> and why you would use a class. If you get too complex people will drop like flies. Let them get >> hooked, then we can do some more complex stuff. Perhaps an audit trail for changes? >> > From terry.mace at baesystems.com Wed Feb 11 17:47:45 2009 From: terry.mace at baesystems.com (MACE, Terry) Date: Thu, 12 Feb 2009 10:47:45 +1100 Subject: [AccessD] IMPORT THE FORM In-Reply-To: <200902112113.n1BLD3H2020686@bunya.baea.com.au> References: <49932AB1.3080500@colbyconsulting.com> <200902112113.n1BLD3H2020686@bunya.baea.com.au> Message-ID: <3881CF7F5868CA419AAF1179D19F6BAC02B52BEB@abw3ex1.au.baesystems.com> JC, It doesn't work for me. I am using Access97 here at work and get the following error: "Error encountered at line 2. This object was created with a newer version of |9 than you are currently running." Regards Terry Mace Logistics Support Officer & Maintenance Supervisor -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Thursday, 12 February 2009 8:13 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] IMPORT THE FORM I need someone to verify that they successfully imported the form using this methodology. I did it myself, but that means nothing as we all know. Thanks, John W. Colby www.ColbyConsulting.com jwcolby wrote: > This email will document how to import a form into your database that I provide to you. WARNING! > If you have modified frmDemoCtls to be the way you want it, rename the form before performing the > following. > > * Cut and paste the form definition from the email with that stuff into a text file that you can > deal with. As an example I used the path > "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt". > * In your database click Insert / Module and immediately save it as basImportForm. > * Insert the following code into the module: > > Function ExportForm(strFrmName As String, strExportPath As String) > Application.SaveAsText acForm, strFrmName, strExportPath > End Function > > Function ImportForm(strFrmName As String, strImportPath As String) > Application.LoadFromText acForm, strFrmName, strImportPath > End Function > > These functions are just wrappers to VBA code that allows importing and exporting forms to / froim > text files. > > * Compile and save basImportform. > * In the debug window cut and paste or type in the following (modifying the path to your own) and > then hit enter: > > ImportForm "frmDemoCtls", "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt" > > * Click on the form tab of the database and open frmDemoCtls. > * Notice that the form probably looks different than your old form. > * Tab through the form and notice that the text and combo controls change color as they gain / lose > the focus. > > I will use this method of feeding you forms in the future. If you have any questions or something > does not work as planned, let me know. > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com "Warning: The information contained in this email and any attached files is confidential to BAE Systems Australia. If you are not the intended recipient, any use, disclosure or copying of this email or any attachments is expressly prohibited. If you have received this email in error, please notify us immediately. VIRUS: Every care has been taken to ensure this email and its attachments are virus free, however, any loss or damage incurred in using this email is not the sender's responsibility. It is your responsibility to ensure virus checks are completed before installing any data sent in this email to your computer." From jwcolby at colbyconsulting.com Wed Feb 11 17:56:11 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 18:56:11 -0500 Subject: [AccessD] IMPORT THE FORM In-Reply-To: <3881CF7F5868CA419AAF1179D19F6BAC02B52BEB@abw3ex1.au.baesystems.com> References: <49932AB1.3080500@colbyconsulting.com> <200902112113.n1BLD3H2020686@bunya.baea.com.au> <3881CF7F5868CA419AAF1179D19F6BAC02B52BEB@abw3ex1.au.baesystems.com> Message-ID: <4993659B.6070104@colbyconsulting.com> Unfortunately I cannot guarantee that this stuff works at Access 97, and I do not have it to test with. John W. Colby www.ColbyConsulting.com MACE, Terry wrote: > JC, > > It doesn't work for me. I am using Access97 here at work and get the > following error: > > "Error encountered at line 2. > This object was created with a newer version of |9 than you are > currently running." > > Regards > > Terry Mace > Logistics Support Officer & Maintenance Supervisor > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Thursday, 12 February 2009 8:13 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] IMPORT THE FORM > > I need someone to verify that they successfully imported the form using > this methodology. I did it > myself, but that means nothing as we all know. > > Thanks, > > John W. Colby > www.ColbyConsulting.com > > > jwcolby wrote: >> This email will document how to import a form into your database that > I provide to you. WARNING! >> If you have modified frmDemoCtls to be the way you want it, rename the > form before performing the >> following. >> >> * Cut and paste the form definition from the email with that stuff > into a text file that you can >> deal with. As an example I used the path >> > "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt". >> * In your database click Insert / Module and immediately save it > as basImportForm. >> * Insert the following code into the module: >> >> Function ExportForm(strFrmName As String, strExportPath As String) >> Application.SaveAsText acForm, strFrmName, strExportPath >> End Function >> >> Function ImportForm(strFrmName As String, strImportPath As String) >> Application.LoadFromText acForm, strFrmName, strImportPath >> End Function >> >> These functions are just wrappers to VBA code that allows importing > and exporting forms to / froim >> text files. >> >> * Compile and save basImportform. >> * In the debug window cut and paste or type in the following > (modifying the path to your own) and >> then hit enter: >> >> ImportForm "frmDemoCtls", > "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt" >> * Click on the form tab of the database and open frmDemoCtls. >> * Notice that the form probably looks different than your old > form. >> * Tab through the form and notice that the text and combo controls > change color as they gain / lose >> the focus. >> >> I will use this method of feeding you forms in the future. If you > have any questions or something >> does not work as planned, let me know. >> From mcp2004 at mail.ru Wed Feb 11 18:28:02 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Thu, 12 Feb 2009 03:28:02 +0300 Subject: [AccessD] =?koi8-r?b?T1Q6IFZpZXdpbmcgRE9NIHRyZWUgb2YgdGhlIGxvYWRl?= =?koi8-r?b?ZCB3ZWIgcGFnZQ==?= Message-ID: Hi All, Sorry for off-topic but the subject info could be useful for many developers here developing web app and/or using MS Web Browser control in their MS Access applications: - I'm looking for the way to have Web page's DOM tree viewed (as a treeview) for a given web page URL or even viewed/investigated in a splitted window - that page should be a live page URL... I think I have seen such an add-in for FireFox? - sorry, no time for thourough googling now - if anybody have a link/links saved for the subject programs/add-ins could you please post them here? I currently see - Web Code Inspector - http://www.download32.com/web-code-expert-i11308.html and - DOM Inspector - http://www.brownhen.com/DI/ Did anybody use the above programs? Maybe you know other programs to investigate/inspect DOM treeview of a web page? I have to implement web page(s) navigation automation... Thank you. -- Shamil From stuart at lexacorp.com.pg Wed Feb 11 18:29:34 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Thu, 12 Feb 2009 10:29:34 +1000 Subject: [AccessD] IMPORT THE FORM In-Reply-To: <3881CF7F5868CA419AAF1179D19F6BAC02B52BEB@abw3ex1.au.baesystems.com> References: <49932AB1.3080500@colbyconsulting.com>, <200902112113.n1BLD3H2020686@bunya.baea.com.au>, <3881CF7F5868CA419AAF1179D19F6BAC02B52BEB@abw3ex1.au.baesystems.com> Message-ID: <4993FA0E.13029.4724753@stuart.lexacorp.com.pg> Trying editing the first two lines to a lower Version Number: Version =xx VersionRequired =xx JC's form uses 19, I don't know what number would be required for Access97 because this is not the Access Version Number. On 12 Feb 2009 at 10:47, MACE, Terry wrote: > JC, > > It doesn't work for me. I am using Access97 here at work and get the > following error: > > "Error encountered at line 2. > This object was created with a newer version of |9 than you are > currently running." > > Regards > > Terry Mace > Logistics Support Officer & Maintenance Supervisor > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Thursday, 12 February 2009 8:13 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] IMPORT THE FORM > > I need someone to verify that they successfully imported the form using > this methodology. I did it > myself, but that means nothing as we all know. > > Thanks, > > John W. Colby > www.ColbyConsulting.com > > > jwcolby wrote: > > This email will document how to import a form into your database that > I provide to you. WARNING! > > If you have modified frmDemoCtls to be the way you want it, rename the > form before performing the > > following. > > > > * Cut and paste the form definition from the email with that stuff > into a text file that you can > > deal with. As an example I used the path > > > "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt". > > * In your database click Insert / Module and immediately save it > as basImportForm. > > * Insert the following code into the module: > > > > Function ExportForm(strFrmName As String, strExportPath As String) > > Application.SaveAsText acForm, strFrmName, strExportPath > > End Function > > > > Function ImportForm(strFrmName As String, strImportPath As String) > > Application.LoadFromText acForm, strFrmName, strImportPath > > End Function > > > > These functions are just wrappers to VBA code that allows importing > and exporting forms to / froim > > text files. > > > > * Compile and save basImportform. > > * In the debug window cut and paste or type in the following > (modifying the path to your own) and > > then hit enter: > > > > ImportForm "frmDemoCtls", > "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt" > > > > * Click on the form tab of the database and open frmDemoCtls. > > * Notice that the form probably looks different than your old > form. > > * Tab through the form and notice that the text and combo controls > change color as they gain / lose > > the focus. > > > > I will use this method of feeding you forms in the future. If you > have any questions or something > > does not work as planned, let me know. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > "Warning: > The information contained in this email and any attached files is > confidential to BAE Systems Australia. If you are not the intended > recipient, any use, disclosure or copying of this email or any > attachments is expressly prohibited. If you have received this email > in error, please notify us immediately. VIRUS: Every care has been > taken to ensure this email and its attachments are virus free, > however, any loss or damage incurred in using this email is not the > sender's responsibility. It is your responsibility to ensure virus > checks are completed before installing any data sent in this email to > your computer." > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Wed Feb 11 18:51:36 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 19:51:36 -0500 Subject: [AccessD] IMPORT THE FORM In-Reply-To: <4993FA0E.13029.4724753@stuart.lexacorp.com.pg> References: <49932AB1.3080500@colbyconsulting.com>, <200902112113.n1BLD3H2020686@bunya.baea.com.au>, <3881CF7F5868CA419AAF1179D19F6BAC02B52BEB@abw3ex1.au.baesystems.com> <4993FA0E.13029.4724753@stuart.lexacorp.com.pg> Message-ID: <49937298.6010304@colbyconsulting.com> hmmm... Function ExportForm(strFrmName As String, strExportPath As String) Application.SaveAsText acForm, strFrmName, strExportPath End Function That is the code that exported the form. Export a form in 97 and look at that number. Then place that number in the code for the form I sent. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > Trying editing the first two lines to a lower Version Number: > > Version =xx > VersionRequired =xx > > JC's form uses 19, I don't know what number would be required for Access97 because this > is not the Access Version Number. > > > On 12 Feb 2009 at 10:47, MACE, Terry wrote: > >> JC, >> >> It doesn't work for me. I am using Access97 here at work and get the >> following error: >> >> "Error encountered at line 2. >> This object was created with a newer version of |9 than you are >> currently running." >> >> Regards >> >> Terry Mace >> Logistics Support Officer & Maintenance Supervisor >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Thursday, 12 February 2009 8:13 AM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] IMPORT THE FORM >> >> I need someone to verify that they successfully imported the form using >> this methodology. I did it >> myself, but that means nothing as we all know. >> >> Thanks, >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> jwcolby wrote: >>> This email will document how to import a form into your database that >> I provide to you. WARNING! >>> If you have modified frmDemoCtls to be the way you want it, rename the >> form before performing the >>> following. >>> >>> * Cut and paste the form definition from the email with that stuff >> into a text file that you can >>> deal with. As an example I used the path >>> >> "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt". >>> * In your database click Insert / Module and immediately save it >> as basImportForm. >>> * Insert the following code into the module: >>> >>> Function ExportForm(strFrmName As String, strExportPath As String) >>> Application.SaveAsText acForm, strFrmName, strExportPath >>> End Function >>> >>> Function ImportForm(strFrmName As String, strImportPath As String) >>> Application.LoadFromText acForm, strFrmName, strImportPath >>> End Function >>> >>> These functions are just wrappers to VBA code that allows importing >> and exporting forms to / froim >>> text files. >>> >>> * Compile and save basImportform. >>> * In the debug window cut and paste or type in the following >> (modifying the path to your own) and >>> then hit enter: >>> >>> ImportForm "frmDemoCtls", >> "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt" >>> * Click on the form tab of the database and open frmDemoCtls. >>> * Notice that the form probably looks different than your old >> form. >>> * Tab through the form and notice that the text and combo controls >> change color as they gain / lose >>> the focus. >>> >>> I will use this method of feeding you forms in the future. If you >> have any questions or something >>> does not work as planned, let me know. >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> "Warning: >> The information contained in this email and any attached files is >> confidential to BAE Systems Australia. If you are not the intended >> recipient, any use, disclosure or copying of this email or any >> attachments is expressly prohibited. If you have received this email >> in error, please notify us immediately. VIRUS: Every care has been >> taken to ensure this email and its attachments are virus free, >> however, any loss or damage incurred in using this email is not the >> sender's responsibility. It is your responsibility to ensure virus >> checks are completed before installing any data sent in this email to >> your computer." >> >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com > > From dw-murphy at cox.net Wed Feb 11 19:05:13 2009 From: dw-murphy at cox.net (Doug Murphy) Date: Wed, 11 Feb 2009 17:05:13 -0800 Subject: [AccessD] OT: Viewing DOM tree of the loaded web page In-Reply-To: References: Message-ID: Try FireBug -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Salakhetdinov Shamil Sent: Wednesday, February 11, 2009 4:28 PM To: Access Developers discussion and problem solving Subject: [AccessD] OT: Viewing DOM tree of the loaded web page Hi All, Sorry for off-topic but the subject info could be useful for many developers here developing web app and/or using MS Web Browser control in their MS Access applications: - I'm looking for the way to have Web page's DOM tree viewed (as a treeview) for a given web page URL or even viewed/investigated in a splitted window - that page should be a live page URL... I think I have seen such an add-in for FireFox? - sorry, no time for thourough googling now - if anybody have a link/links saved for the subject programs/add-ins could you please post them here? I currently see - Web Code Inspector - http://www.download32.com/web-code-expert-i11308.html and - DOM Inspector - http://www.brownhen.com/DI/ Did anybody use the above programs? Maybe you know other programs to investigate/inspect DOM treeview of a web page? I have to implement web page(s) navigation automation... Thank you. -- Shamil -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From fuller.artful at gmail.com Wed Feb 11 19:07:04 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Wed, 11 Feb 2009 20:07:04 -0500 Subject: [AccessD] IMPORT THE FORM In-Reply-To: <49937298.6010304@colbyconsulting.com> References: <49932AB1.3080500@colbyconsulting.com> <200902112113.n1BLD3H2020686@bunya.baea.com.au> <3881CF7F5868CA419AAF1179D19F6BAC02B52BEB@abw3ex1.au.baesystems.com> <4993FA0E.13029.4724753@stuart.lexacorp.com.pg> <49937298.6010304@colbyconsulting.com> Message-ID: <29f585dd0902111707m5f85fbc9sff4688a021e5c879@mail.gmail.com> This is fun, JC. Thanks for the effort to drag us kicking and screaming into classes. Arthur On Wed, Feb 11, 2009 at 7:51 PM, jwcolby wrote: > hmmm... > > Function ExportForm(strFrmName As String, strExportPath As String) > Application.SaveAsText acForm, strFrmName, strExportPath > End Function > > That is the code that exported the form. Export a form in 97 and look at > that number. Then place > that number in the code for the form I sent. > > John W. Colby > www.ColbyConsulting.com > > > Stuart McLachlan wrote: > > Trying editing the first two lines to a lower Version Number: > > > > Version =xx > > VersionRequired =xx > > > > JC's form uses 19, I don't know what number would be required for > Access97 because this > > is not the Access Version Number. > > > > > > On 12 Feb 2009 at 10:47, MACE, Terry wrote: > > > >> JC, > >> > >> It doesn't work for me. I am using Access97 here at work and get the > >> following error: > >> > >> "Error encountered at line 2. > >> This object was created with a newer version of |9 than you are > >> currently running." > >> > >> Regards > >> > >> Terry Mace > >> Logistics Support Officer & Maintenance Supervisor > >> > >> > >> -----Original Message----- > >> From: accessd-bounces at databaseadvisors.com > >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > >> Sent: Thursday, 12 February 2009 8:13 AM > >> To: Access Developers discussion and problem solving > >> Subject: Re: [AccessD] IMPORT THE FORM > >> > >> I need someone to verify that they successfully imported the form using > >> this methodology. I did it > >> myself, but that means nothing as we all know. > >> > >> Thanks, > >> > >> John W. Colby > >> www.ColbyConsulting.com > >> > >> > >> jwcolby wrote: > >>> This email will document how to import a form into your database that > >> I provide to you. WARNING! > >>> If you have modified frmDemoCtls to be the way you want it, rename the > >> form before performing the > >>> following. > >>> > >>> * Cut and paste the form definition from the email with that stuff > >> into a text file that you can > >>> deal with. As an example I used the path > >>> > >> "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt". > >>> * In your database click Insert / Module and immediately save it > >> as basImportForm. > >>> * Insert the following code into the module: > >>> > >>> Function ExportForm(strFrmName As String, strExportPath As String) > >>> Application.SaveAsText acForm, strFrmName, strExportPath > >>> End Function > >>> > >>> Function ImportForm(strFrmName As String, strImportPath As String) > >>> Application.LoadFromText acForm, strFrmName, strImportPath > >>> End Function > >>> > >>> These functions are just wrappers to VBA code that allows importing > >> and exporting forms to / froim > >>> text files. > >>> > >>> * Compile and save basImportform. > >>> * In the debug window cut and paste or type in the following > >> (modifying the path to your own) and > >>> then hit enter: > >>> > >>> ImportForm "frmDemoCtls", > >> "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt" > >>> * Click on the form tab of the database and open frmDemoCtls. > >>> * Notice that the form probably looks different than your old > >> form. > >>> * Tab through the form and notice that the text and combo controls > >> change color as they gain / lose > >>> the focus. > >>> > >>> I will use this method of feeding you forms in the future. If you > >> have any questions or something > >>> does not work as planned, let me know. > >>> > >> -- > >> AccessD mailing list > >> AccessD at databaseadvisors.com > >> http://databaseadvisors.com/mailman/listinfo/accessd > >> Website: http://www.databaseadvisors.com > >> "Warning: > >> The information contained in this email and any attached files is > >> confidential to BAE Systems Australia. If you are not the intended > >> recipient, any use, disclosure or copying of this email or any > >> attachments is expressly prohibited. If you have received this email > >> in error, please notify us immediately. VIRUS: Every care has been > >> taken to ensure this email and its attachments are virus free, > >> however, any loss or damage incurred in using this email is not the > >> sender's responsibility. It is your responsibility to ensure virus > >> checks are completed before installing any data sent in this email to > >> your computer." > >> > >> > >> > >> -- > >> AccessD mailing list > >> AccessD at databaseadvisors.com > >> http://databaseadvisors.com/mailman/listinfo/accessd > >> Website: http://www.databaseadvisors.com > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From terry.mace at baesystems.com Wed Feb 11 19:08:25 2009 From: terry.mace at baesystems.com (MACE, Terry) Date: Thu, 12 Feb 2009 12:08:25 +1100 Subject: [AccessD] IMPORT THE FORM In-Reply-To: <200902120030.n1C0UhZ1003348@bunya.baea.com.au> References: <49932AB1.3080500@colbyconsulting.com>, <200902112113.n1BLD3H2020686@bunya.baea.com.au>, <3881CF7F5868CA419AAF1179D19F6BAC02B52BEB@abw3ex1.au.baesystems.com> <200902120030.n1C0UhZ1003348@bunya.baea.com.au> Message-ID: <3881CF7F5868CA419AAF1179D19F6BAC02B52C18@abw3ex1.au.baesystems.com> It appears that Access97 doesn't support this method of saving or importing forms. It tries to create a copy of the form with ASCII characters. Fortunately I also have Access2003 on my computer which is only supposed to be for a specific application, so I'll switch over to that where the import does work. Regards Terry Mace Logistics Support Officer & Maintenance Supervisor -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Thursday, 12 February 2009 11:30 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] IMPORT THE FORM Trying editing the first two lines to a lower Version Number: Version =xx VersionRequired =xx JC's form uses 19, I don't know what number would be required for Access97 because this is not the Access Version Number. On 12 Feb 2009 at 10:47, MACE, Terry wrote: > JC, > > It doesn't work for me. I am using Access97 here at work and get the > following error: > > "Error encountered at line 2. > This object was created with a newer version of |9 than you are > currently running." > > Regards > > Terry Mace > Logistics Support Officer & Maintenance Supervisor > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Thursday, 12 February 2009 8:13 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] IMPORT THE FORM > > I need someone to verify that they successfully imported the form using > this methodology. I did it > myself, but that means nothing as we all know. > > Thanks, > > John W. Colby > www.ColbyConsulting.com > > > jwcolby wrote: > > This email will document how to import a form into your database that > I provide to you. WARNING! > > If you have modified frmDemoCtls to be the way you want it, rename the > form before performing the > > following. > > > > * Cut and paste the form definition from the email with that stuff > into a text file that you can > > deal with. As an example I used the path > > > "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt". > > * In your database click Insert / Module and immediately save it > as basImportForm. > > * Insert the following code into the module: > > > > Function ExportForm(strFrmName As String, strExportPath As String) > > Application.SaveAsText acForm, strFrmName, strExportPath > > End Function > > > > Function ImportForm(strFrmName As String, strImportPath As String) > > Application.LoadFromText acForm, strFrmName, strImportPath > > End Function > > > > These functions are just wrappers to VBA code that allows importing > and exporting forms to / froim > > text files. > > > > * Compile and save basImportform. > > * In the debug window cut and paste or type in the following > (modifying the path to your own) and > > then hit enter: > > > > ImportForm "frmDemoCtls", > "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt" > > > > * Click on the form tab of the database and open frmDemoCtls. > > * Notice that the form probably looks different than your old > form. > > * Tab through the form and notice that the text and combo controls > change color as they gain / lose > > the focus. > > > > I will use this method of feeding you forms in the future. If you > have any questions or something > > does not work as planned, let me know. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > "Warning: > The information contained in this email and any attached files is > confidential to BAE Systems Australia. If you are not the intended > recipient, any use, disclosure or copying of this email or any > attachments is expressly prohibited. If you have received this email > in error, please notify us immediately. VIRUS: Every care has been > taken to ensure this email and its attachments are virus free, > however, any loss or damage incurred in using this email is not the > sender's responsibility. It is your responsibility to ensure virus > checks are completed before installing any data sent in this email to > your computer." > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com "Warning: The information contained in this email and any attached files is confidential to BAE Systems Australia. If you are not the intended recipient, any use, disclosure or copying of this email or any attachments is expressly prohibited. If you have received this email in error, please notify us immediately. VIRUS: Every care has been taken to ensure this email and its attachments are virus free, however, any loss or damage incurred in using this email is not the sender's responsibility. It is your responsibility to ensure virus checks are completed before installing any data sent in this email to your computer." From jwcolby at colbyconsulting.com Wed Feb 11 19:18:04 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 20:18:04 -0500 Subject: [AccessD] IMPORT THE FORM In-Reply-To: <3881CF7F5868CA419AAF1179D19F6BAC02B52C18@abw3ex1.au.baesystems.com> References: <49932AB1.3080500@colbyconsulting.com>, <200902112113.n1BLD3H2020686@bunya.baea.com.au>, <3881CF7F5868CA419AAF1179D19F6BAC02B52BEB@abw3ex1.au.baesystems.com> <200902120030.n1C0UhZ1003348@bunya.baea.com.au> <3881CF7F5868CA419AAF1179D19F6BAC02B52C18@abw3ex1.au.baesystems.com> Message-ID: <499378CC.5030601@colbyconsulting.com> Glad you have an alternative Terry. I hate to lose anyone. I don't doubt that Access 97 can't do this stuff. Access 97 does not use the VB editor as I mentioned in a post a few weeks back. The VB editor was picked up in Access 2000, before that A97 had its own code editor right inside of Access. In fact there is another major transition between 2000 and 2002 (XP) which has to do with what order event sinks get control of the event. Between these two versions the order switched, which can wreak havoc with trying to do things with the same code between these two versions. However the 2002 (XP) version also fixed a major bug that could cause Access to crash entirely in certain cases. John W. Colby www.ColbyConsulting.com MACE, Terry wrote: > It appears that Access97 doesn't support this method of saving or > importing forms. It tries to create a copy of the form with ASCII > characters. > > Fortunately I also have Access2003 on my computer which is only supposed > to be for a specific application, so I'll switch over to that where the > import does work. > > Regards > > Terry Mace > Logistics Support Officer & Maintenance Supervisor From jwcolby at colbyconsulting.com Wed Feb 11 19:20:53 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 11 Feb 2009 20:20:53 -0500 Subject: [AccessD] IMPORT THE FORM In-Reply-To: <29f585dd0902111707m5f85fbc9sff4688a021e5c879@mail.gmail.com> References: <49932AB1.3080500@colbyconsulting.com> <200902112113.n1BLD3H2020686@bunya.baea.com.au> <3881CF7F5868CA419AAF1179D19F6BAC02B52BEB@abw3ex1.au.baesystems.com> <4993FA0E.13029.4724753@stuart.lexacorp.com.pg> <49937298.6010304@colbyconsulting.com> <29f585dd0902111707m5f85fbc9sff4688a021e5c879@mail.gmail.com> Message-ID: <49937975.7090301@colbyconsulting.com> LOL, I wish I could see all the kicking and screaming. I have to just imagine it in my head. As Filch says in one of the Harry Potter movies... "A pity they let the old punishment die... Was a time detention found you hanging by your thumbs in the dungeons... God, I miss the screaming." John W. Colby www.ColbyConsulting.com Arthur Fuller wrote: > This is fun, JC. Thanks for the effort to drag us kicking and screaming into > classes. > > Arthur > > On Wed, Feb 11, 2009 at 7:51 PM, jwcolby wrote: > >> hmmm... >> >> Function ExportForm(strFrmName As String, strExportPath As String) >> Application.SaveAsText acForm, strFrmName, strExportPath >> End Function >> >> That is the code that exported the form. Export a form in 97 and look at >> that number. Then place >> that number in the code for the form I sent. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Stuart McLachlan wrote: >>> Trying editing the first two lines to a lower Version Number: >>> >>> Version =xx >>> VersionRequired =xx >>> >>> JC's form uses 19, I don't know what number would be required for >> Access97 because this >>> is not the Access Version Number. >>> >>> >>> On 12 Feb 2009 at 10:47, MACE, Terry wrote: >>> >>>> JC, >>>> >>>> It doesn't work for me. I am using Access97 here at work and get the >>>> following error: >>>> >>>> "Error encountered at line 2. >>>> This object was created with a newer version of |9 than you are >>>> currently running." >>>> >>>> Regards >>>> >>>> Terry Mace >>>> Logistics Support Officer & Maintenance Supervisor >>>> >>>> >>>> -----Original Message----- >>>> From: accessd-bounces at databaseadvisors.com >>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>>> Sent: Thursday, 12 February 2009 8:13 AM >>>> To: Access Developers discussion and problem solving >>>> Subject: Re: [AccessD] IMPORT THE FORM >>>> >>>> I need someone to verify that they successfully imported the form using >>>> this methodology. I did it >>>> myself, but that means nothing as we all know. >>>> >>>> Thanks, >>>> >>>> John W. Colby >>>> www.ColbyConsulting.com >>>> >>>> >>>> jwcolby wrote: >>>>> This email will document how to import a form into your database that >>>> I provide to you. WARNING! >>>>> If you have modified frmDemoCtls to be the way you want it, rename the >>>> form before performing the >>>>> following. >>>>> >>>>> * Cut and paste the form definition from the email with that stuff >>>> into a text file that you can >>>>> deal with. As an example I used the path >>>>> >>>> "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt". >>>>> * In your database click Insert / Module and immediately save it >>>> as basImportForm. >>>>> * Insert the following code into the module: >>>>> >>>>> Function ExportForm(strFrmName As String, strExportPath As String) >>>>> Application.SaveAsText acForm, strFrmName, strExportPath >>>>> End Function >>>>> >>>>> Function ImportForm(strFrmName As String, strImportPath As String) >>>>> Application.LoadFromText acForm, strFrmName, strImportPath >>>>> End Function >>>>> >>>>> These functions are just wrappers to VBA code that allows importing >>>> and exporting forms to / froim >>>>> text files. >>>>> >>>>> * Compile and save basImportform. >>>>> * In the debug window cut and paste or type in the following >>>> (modifying the path to your own) and >>>>> then hit enter: >>>>> >>>>> ImportForm "frmDemoCtls", >>>> "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoCtlsImport.txt" >>>>> * Click on the form tab of the database and open frmDemoCtls. >>>>> * Notice that the form probably looks different than your old >>>> form. >>>>> * Tab through the form and notice that the text and combo controls >>>> change color as they gain / lose >>>>> the focus. >>>>> >>>>> I will use this method of feeding you forms in the future. If you >>>> have any questions or something >>>>> does not work as planned, let me know. >>>>> >>>> -- >>>> AccessD mailing list >>>> AccessD at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>> Website: http://www.databaseadvisors.com >>>> "Warning: >>>> The information contained in this email and any attached files is >>>> confidential to BAE Systems Australia. If you are not the intended >>>> recipient, any use, disclosure or copying of this email or any >>>> attachments is expressly prohibited. If you have received this email >>>> in error, please notify us immediately. VIRUS: Every care has been >>>> taken to ensure this email and its attachments are virus free, >>>> however, any loss or damage incurred in using this email is not the >>>> sender's responsibility. It is your responsibility to ensure virus >>>> checks are completed before installing any data sent in this email to >>>> your computer." >>>> >>>> >>>> >>>> -- >>>> AccessD mailing list >>>> AccessD at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>> Website: http://www.databaseadvisors.com >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> From mcp2004 at mail.ru Wed Feb 11 20:20:39 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Thu, 12 Feb 2009 05:20:39 +0300 Subject: [AccessD] =?koi8-r?b?T1Q6IFZpZXdpbmcgRE9NIHRyZWUgb2YgdGhlIGxvYWRl?= =?koi8-r?b?ZCB3ZWIgcGFnZQ==?= In-Reply-To: References: Message-ID: Thank you, Doug, Maybe you also know/tried IP Traffic Monitor add-ins or programs like this one?: http://ip-traffic-monitor.findmysoft.com/screenshot/ or more simple - I just have to get HTTP requests/responses log file for several web pages I will navigate to manually to simulate later in code those web pages HTTP requests in my program. Do you have any recommendations? Thank you. -- Shamil From mcp2004 at mail.ru Thu Feb 12 02:34:10 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Thu, 12 Feb 2009 11:34:10 +0300 Subject: [AccessD] =?koi8-r?b?SU1QT1JUIFRIRSBGT1JN?= In-Reply-To: <4993659B.6070104@colbyconsulting.com> References: <4993659B.6070104@colbyconsulting.com> Message-ID: BTW, John, Did you ever try to figure out in what format (.BMP?) the images from controls are saved when using Application.SaveAsText for forms? Of course images are saved in text representation of form and coded using hex pairs - the question is what graphical format those hex pairs represent? Maybe Martin knows/can ask MS? (That could be also some graphics "packed" into OLE-file package) I have just checked, and it doesn;t look like this is a clean .bmp format - what it is - anybody any clues? Thank you. -- Shamil From phpons at gmail.com Thu Feb 12 03:14:03 2009 From: phpons at gmail.com (philippe pons) Date: Thu, 12 Feb 2009 10:14:03 +0100 Subject: [AccessD] Where do we go from here? In-Reply-To: <499357ec.09ff300a.4454.6e41@mx.google.com> References: <49934BC6.3000600@colbyconsulting.com> <49935023.0516300a.08f4.ffffab09@mx.google.com> <49935508.4090901@colbyconsulting.com> <499357ec.09ff300a.4454.6e41@mx.google.com> Message-ID: <57144ced0902120114p6da0f929s75970dd1c8a51d64@mail.gmail.com> Using the RaiseEvent is not so easy. If you could give us some tricks on that It would be usefull. Philippe 2009/2/11 Max Wanadoo > > Perhaps an audit trail for changes > Yes, that is topical > > > Have you ever inherited a database (or designed one for that matter) > where > dates are entered and > displayed in different formats all over the various forms. No consistency, > drives the users crazy. > That's how I write my programs! Duh! Now you know why it needs a > makeover. > > Ok, and here is another we could look at: Making sure that all code that > calculate (say) basic + tax * gross profit - overheads etc etc is the same > right across the board by hiding all the calcs in a single class. Only one > place to get the calculations for business rules and that is (ie) > clsBusinessRules Let people from the List come up with business rules and > then, as a lesson, build the class to handle those rules. > > Max > > > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 11 February 2009 22:45 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Where do we go from here? > > ROTFL. > > You laugh but when I learned about classes, I rewrote my entire framework > from scratch. It was > sooooo much cleaner and so much more functional. Then, with the experience > I gained from that I > rewrote it a third time. > > Classes really do rock! > > In this case however I am looking for ideas on what simple things we can do > to better illustrate how > and why you would use a class. If you get too complex people will drop > like > flies. Let them get > hooked, then we can do some more complex stuff. Perhaps an audit trail for > changes? > > For now I think the next step will be to build some tables with data and a > form to load / edit data > for a combo box. Once we have that then I can demonstrate having the combo > class double click event > automatically open the form, seek to the right record (or the new record) > and let the user add new > records to the list table. When the form closes, the combo requeries to > get > the changes to the list > data. > > This is actual stuff that I do with my combo class, and displays how a > combo > can have behaviors > added in the wrapper class to make it more useful. Additionally it > demonstrates how these behaviors > can be available in any combo in any form, with a very simple "setup" to > cause it to happen. > > Have you ever inherited a database (or designed one for that matter) where > dates are entered and > displayed in different formats all over the various forms. No consistency, > drives the users crazy. > > I also have a behavior where (in a bound form) I dig down to discover the > data type of the field > that a control is bound to (DAO here). Once I have the datatype, I > automatically cause the text box > to display a specific date mask if the text box is bound to a date field. > Having this behavior in > the text class allows me to tell the system in one place what the date > format should look like, and > then when any form (that uses the form class) opens, it automatically > discovers all date fields and > sets them up to a common date mask. > > Stuff like that. > > We have pretty much learned how to build classes, and how to sink events in > classes, so it is time > to put this new knowledge to use. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: > > Well, for me it would be a project. I have suggested a fully functional > > import/export to text for all objects to help people avoid bloat and > recover > > from disasters. My second project request would be to re-write the whole > of > > my work project which started in 2000 and really, and I mean really, do > with > > a make-over. On second thoughts, my second request is now my first > > request!!! When do we start? > > > > Max > > Ps. Well, you did ask! > > > > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > > Sent: 11 February 2009 22:06 > > To: Access Developers discussion and problem solving > > Subject: [AccessD] Where do we go from here? > > > > So what would you folks like to see next? I still have a rabbit in the > hat > > and a few things up my > > sleeve. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From Johncliviger at aol.com Thu Feb 12 03:17:44 2009 From: Johncliviger at aol.com (Johncliviger at aol.com) Date: Thu, 12 Feb 2009 04:17:44 EST Subject: [AccessD] Keeping track of the lectures Message-ID: Hi John Colby May I say that your postings on Classes are er.. dare I say it, first class! And thank you for the time and effort. regards john cliviger From fuller.artful at gmail.com Thu Feb 12 04:18:01 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Thu, 12 Feb 2009 05:18:01 -0500 Subject: [AccessD] Compare table structures Message-ID: <29f585dd0902120218q724ce0cfh9ce30e950deb3049@mail.gmail.com> Is there a free tool that will compare two table structures and report the differences? I'd do it manually but in this case there are over 100 fields and it would be very tedious to do it by hand. TIA, Arthur From fuller.artful at gmail.com Thu Feb 12 04:21:30 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Thu, 12 Feb 2009 05:21:30 -0500 Subject: [AccessD] IMPORT THE FORM In-Reply-To: References: <4993659B.6070104@colbyconsulting.com> Message-ID: <29f585dd0902120221h4ec1a9esee965c73813015de@mail.gmail.com> I thought they were ICO images embedded in the Access executable. But no? Arthur 2009/2/12 Salakhetdinov Shamil > BTW, John, > > Did you ever try to figure out in what format (.BMP?) the images from > controls are saved when using Application.SaveAsText for forms? Of course > images are saved in text representation of form and coded using hex pairs - > the question is what graphical format those hex pairs represent? Maybe > Martin knows/can ask MS? (That could be also some graphics "packed" into > OLE-file package) > > I have just checked, and it doesn;t look like this is a clean .bmp format - > what it is - anybody any clues? > > Thank you. > > -- > Shamil > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From Gustav at cactus.dk Thu Feb 12 04:22:48 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Thu, 12 Feb 2009 11:22:48 +0100 Subject: [AccessD] the form for A97 Message-ID: Hi Terry and John SaveAsText acForm, "frmName", "Form97.txt" and LoadFromText acForm, "frmName", "Form97.txt" work nicely in A97 as well, though undocumented. Below please find the form for A97. /gustav Version = 17 VersionRequired = 17 Checksum = -930099809 Begin Form DefaultView = 0 RecordLocks = 2 TabularFamily = 0 PictureAlignment = 2 DatasheetGridlinesBehavior = 3 GridX = 24 GridY = 24 Width = 3240 DatasheetFontHeight = 10 ItemSuffix = 20 DatasheetGridlinesColor = 12632256 RecSrcDt = Begin 0x3a86509cea75e340 End OnOpen ="[Event Procedure]" DatasheetFontName ="Arial" Begin Begin Label BackStyle = 0 FontName ="Tahoma" End Begin CommandButton FontSize = 8 FontWeight = 400 ForeColor = -2147483630 FontName ="Tahoma" End Begin OptionButton SpecialEffect = 2 LabelX = 230 LabelY = -30 End Begin CheckBox SpecialEffect = 2 LabelX = 230 LabelY = -30 End Begin OptionGroup SpecialEffect = 3 End Begin TextBox SpecialEffect = 2 OldBorderStyle = 0 FontName ="Tahoma" End Begin ListBox SpecialEffect = 2 FontName ="Tahoma" End Begin ComboBox SpecialEffect = 2 FontName ="Tahoma" End Begin ToggleButton FontSize = 8 FontWeight = 400 ForeColor = -2147483630 FontName ="Tahoma" End Begin Section Height = 5100 BackColor = -2147483633 Name ="Detail" Begin Begin TextBox OverlapFlags = 85 Left = 660 Top = 360 Name ="Text1" Begin Begin Label OverlapFlags = 85 Left = 60 Top = 360 Width = 555 Height = 240 Name ="Label2" Caption ="Text1:" End End End Begin Label OverlapFlags = 85 Left = 60 Top = 60 Width = 2220 Height = 210 Name ="Label3" Caption ="Label" End Begin OptionGroup OverlapFlags = 85 Left = 480 Top = 3360 Height = 480 TabIndex = 7 Name ="Frame4" Begin Begin Label BackStyle = 1 OverlapFlags = 215 Left = 600 Top = 3240 Width = 615 Height = 240 BackColor = -2147483633 Name ="Label5" Caption ="Frame4" End End End Begin ToggleButton OverlapFlags = 85 Left = 780 Top = 3960 TabIndex = 8 Name ="Toggle6" End Begin OptionButton OverlapFlags = 85 Left = 960 Top = 2550 TabIndex = 5 Name ="Option7" Begin Begin Label OverlapFlags = 247 Left = 1190 Top = 2520 Width = 645 Height = 240 Name ="Label8" Caption ="Option7" End End End Begin CheckBox OverlapFlags = 85 Left = 960 Top = 2940 TabIndex = 6 Name ="Check9" Begin Begin Label OverlapFlags = 247 Left = 1190 Top = 2910 Width = 600 Height = 240 Name ="Label10" Caption ="Check9" End End End Begin ComboBox OverlapFlags = 85 Left = 960 Top = 660 TabIndex = 1 Name ="Combo11" RowSourceType ="Table/Query" Begin Begin Label OverlapFlags = 85 Left = 60 Top = 660 Width = 810 Height = 240 Name ="Label12" Caption ="Combo11:" End End End Begin ListBox OverlapFlags = 85 Left = 960 Top = 1680 Height = 600 TabIndex = 4 Name ="List13" RowSourceType ="Table/Query" Begin Begin Label OverlapFlags = 85 Left = 60 Top = 1680 Width = 555 Height = 240 Name ="Label14" Caption ="List13:" End End End Begin CommandButton OverlapFlags = 85 Left = 480 Top = 4740 TabIndex = 9 Name ="Command15" Caption ="Command15" End Begin ComboBox OverlapFlags = 85 Left = 960 Top = 1020 TabIndex = 2 Name ="Combo16" RowSourceType ="Table/Query" Begin Begin Label OverlapFlags = 85 Left = 60 Top = 1020 Width = 810 Height = 240 Name ="Label17" Caption ="Combo11:" End End End Begin ComboBox OverlapFlags = 85 Left = 960 Top = 1380 TabIndex = 3 Name ="Combo18" RowSourceType ="Table/Query" Begin Begin Label OverlapFlags = 85 Left = 60 Top = 1380 Width = 810 Height = 240 Name ="Label19" Caption ="Combo11:" End End End End End End End CodeBehindForm Option Compare Database Option Explicit Public fclsFrm As clsFrm Private Sub Form_Open(Cancel As Integer) Set fclsFrm = New clsFrm fclsFrm.mInit Me End Sub From fuller.artful at gmail.com Thu Feb 12 05:30:47 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Thu, 12 Feb 2009 06:30:47 -0500 Subject: [AccessD] Hidden Tables Message-ID: <29f585dd0902120330s75339608r11c4907cfe8acc4e@mail.gmail.com> I know that you can hide a table by right clicking and then choosing Properties and filling the Hidden checkbox. But once it's hidden, how do you unHide it? TIA, Arthur From phpons at gmail.com Thu Feb 12 05:32:11 2009 From: phpons at gmail.com (philippe pons) Date: Thu, 12 Feb 2009 12:32:11 +0100 Subject: [AccessD] Compare table structures In-Reply-To: <29f585dd0902120218q724ce0cfh9ce30e950deb3049@mail.gmail.com> References: <29f585dd0902120218q724ce0cfh9ce30e950deb3049@mail.gmail.com> Message-ID: <57144ced0902120332m65478d7bvc8052bede87704c1@mail.gmail.com> Arthur, I use this one: http://www.logicielappui.com/tips/ goto: *Trouver rapidement les diff?rences de structures entre 2 bases de donn?es *at the end of the list. It's in French! Philippe 2009/2/12 Arthur Fuller > Is there a free tool that will compare two table structures and report the > differences? I'd do it manually but in this case there are over 100 fields > and it would be very tedious to do it by hand. > > TIA, > Arthur > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Thu Feb 12 05:49:02 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 12 Feb 2009 06:49:02 -0500 Subject: [AccessD] Hidden Tables In-Reply-To: <29f585dd0902120330s75339608r11c4907cfe8acc4e@mail.gmail.com> References: <29f585dd0902120330s75339608r11c4907cfe8acc4e@mail.gmail.com> Message-ID: <49940CAE.3020204@colbyconsulting.com> There is a property in Tools / options / views, the hidden check box. If that is checked then the hidden objects will (I believe) be shown as grayish but still visible. John W. Colby www.ColbyConsulting.com Arthur Fuller wrote: > I know that you can hide a table by right clicking and then choosing > Properties and filling the Hidden checkbox. But once it's hidden, how do you > unHide it? > > TIA, > Arthur From jwcolby at colbyconsulting.com Thu Feb 12 05:49:36 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 12 Feb 2009 06:49:36 -0500 Subject: [AccessD] the form for A97 In-Reply-To: References: Message-ID: <49940CD0.5010901@colbyconsulting.com> Thanks Gustav. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi Terry and John > > SaveAsText acForm, "frmName", "Form97.txt" > and > LoadFromText acForm, "frmName", "Form97.txt" > > work nicely in A97 as well, though undocumented. > Below please find the form for A97. > > /gustav > > > > Version = 17 > VersionRequired = 17 > Checksum = -930099809 > Begin Form > > DefaultView = 0 > RecordLocks = 2 > TabularFamily = 0 > PictureAlignment = 2 > DatasheetGridlinesBehavior = 3 > GridX = 24 > GridY = 24 > Width = 3240 > DatasheetFontHeight = 10 > ItemSuffix = 20 > DatasheetGridlinesColor = 12632256 > RecSrcDt = Begin > 0x3a86509cea75e340 > End > OnOpen ="[Event Procedure]" > DatasheetFontName ="Arial" > Begin > Begin Label > BackStyle = 0 > FontName ="Tahoma" > End > Begin CommandButton > FontSize = 8 > FontWeight = 400 > ForeColor = -2147483630 > FontName ="Tahoma" > End > Begin OptionButton > SpecialEffect = 2 > LabelX = 230 > LabelY = -30 > End > Begin CheckBox > SpecialEffect = 2 > LabelX = 230 > LabelY = -30 > End > Begin OptionGroup > SpecialEffect = 3 > End > Begin TextBox > > SpecialEffect = 2 > OldBorderStyle = 0 > FontName ="Tahoma" > End > Begin ListBox > SpecialEffect = 2 > FontName ="Tahoma" > End > Begin ComboBox > SpecialEffect = 2 > FontName ="Tahoma" > End > Begin ToggleButton > FontSize = 8 > FontWeight = 400 > ForeColor = -2147483630 > FontName ="Tahoma" > End > Begin Section > Height = 5100 > BackColor = -2147483633 > Name ="Detail" > > Begin > Begin TextBox > OverlapFlags = 85 > > Left = 660 > Top = 360 > Name ="Text1" > > Begin > Begin Label > OverlapFlags = 85 > Left = 60 > Top = 360 > Width = 555 > Height = 240 > Name ="Label2" > Caption ="Text1:" > > End > End > End > Begin Label > OverlapFlags = 85 > Left = 60 > Top = 60 > Width = 2220 > Height = 210 > Name ="Label3" > Caption ="Label" > > End > Begin OptionGroup > OverlapFlags = 85 > Left = 480 > Top = 3360 > Height = 480 > TabIndex = 7 > Name ="Frame4" > > Begin > Begin Label > BackStyle = 1 > OverlapFlags = 215 > Left = 600 > Top = 3240 > Width = 615 > Height = 240 > BackColor = -2147483633 > Name ="Label5" > Caption ="Frame4" > > End > End > End > Begin ToggleButton > OverlapFlags = 85 > Left = 780 > Top = 3960 > TabIndex = 8 > Name ="Toggle6" > > End > Begin OptionButton > OverlapFlags = 85 > Left = 960 > Top = 2550 > TabIndex = 5 > Name ="Option7" > > Begin > Begin Label > OverlapFlags = 247 > Left = 1190 > Top = 2520 > Width = 645 > Height = 240 > Name ="Label8" > Caption ="Option7" > > End > End > End > Begin CheckBox > OverlapFlags = 85 > Left = 960 > Top = 2940 > TabIndex = 6 > Name ="Check9" > > Begin > Begin Label > OverlapFlags = 247 > Left = 1190 > Top = 2910 > Width = 600 > Height = 240 > Name ="Label10" > Caption ="Check9" > > End > End > End > Begin ComboBox > OverlapFlags = 85 > > Left = 960 > Top = 660 > TabIndex = 1 > > Name ="Combo11" > RowSourceType ="Table/Query" > Begin > Begin Label > OverlapFlags = 85 > Left = 60 > Top = 660 > Width = 810 > Height = 240 > Name ="Label12" > Caption ="Combo11:" > > End > End > End > Begin ListBox > OverlapFlags = 85 > > Left = 960 > Top = 1680 > Height = 600 > TabIndex = 4 > Name ="List13" > RowSourceType ="Table/Query" > > Begin > Begin Label > OverlapFlags = 85 > Left = 60 > Top = 1680 > Width = 555 > Height = 240 > Name ="Label14" > Caption ="List13:" > > End > End > End > Begin CommandButton > OverlapFlags = 85 > Left = 480 > Top = 4740 > TabIndex = 9 > Name ="Command15" > Caption ="Command15" > > End > Begin ComboBox > OverlapFlags = 85 > > Left = 960 > Top = 1020 > TabIndex = 2 > > Name ="Combo16" > RowSourceType ="Table/Query" > Begin > Begin Label > OverlapFlags = 85 > Left = 60 > Top = 1020 > Width = 810 > Height = 240 > Name ="Label17" > Caption ="Combo11:" > > End > End > End > Begin ComboBox > OverlapFlags = 85 > > Left = 960 > Top = 1380 > TabIndex = 3 > > Name ="Combo18" > RowSourceType ="Table/Query" > Begin > Begin Label > OverlapFlags = 85 > Left = 60 > Top = 1380 > Width = 810 > Height = 240 > Name ="Label19" > Caption ="Combo11:" > > End > End > End > End > End > End > End > CodeBehindForm > > Option Compare Database > Option Explicit > > Public fclsFrm As clsFrm > > Private Sub Form_Open(Cancel As Integer) > Set fclsFrm = New clsFrm > fclsFrm.mInit Me > End Sub > > From jwcolby at colbyconsulting.com Thu Feb 12 05:50:21 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 12 Feb 2009 06:50:21 -0500 Subject: [AccessD] IMPORT THE FORM In-Reply-To: References: <4993659B.6070104@colbyconsulting.com> Message-ID: <49940CFD.7090303@colbyconsulting.com> Shamil, I have no idea. John W. Colby www.ColbyConsulting.com Salakhetdinov Shamil wrote: > BTW, John, > > Did you ever try to figure out in what format (.BMP?) the images from controls are saved when using Application.SaveAsText for forms? Of course images are saved in text representation of form and coded using hex pairs - the question is what graphical format those hex pairs represent? Maybe Martin knows/can ask MS? (That could be also some graphics "packed" into OLE-file package) > > I have just checked, and it doesn;t look like this is a clean .bmp format - what it is - anybody any clues? > > Thank you. > > -- > Shamil From jwcolby at colbyconsulting.com Thu Feb 12 05:51:14 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 12 Feb 2009 06:51:14 -0500 Subject: [AccessD] Where do we go from here? In-Reply-To: <57144ced0902120114p6da0f929s75970dd1c8a51d64@mail.gmail.com> References: <49934BC6.3000600@colbyconsulting.com> <49935023.0516300a.08f4.ffffab09@mx.google.com> <49935508.4090901@colbyconsulting.com> <499357ec.09ff300a.4454.6e41@mx.google.com> <57144ced0902120114p6da0f929s75970dd1c8a51d64@mail.gmail.com> Message-ID: <49940D32.7060204@colbyconsulting.com> Using RaiseEvents is not difficult and I will do that next. Thanks for reminding me. John W. Colby www.ColbyConsulting.com philippe pons wrote: > Using the RaiseEvent is not so easy. > If you could give us some tricks on that > It would be usefull. > > Philippe > > > > 2009/2/11 Max Wanadoo > >>> Perhaps an audit trail for changes >> Yes, that is topical >> >>> Have you ever inherited a database (or designed one for that matter) >> where >> dates are entered and >> displayed in different formats all over the various forms. No consistency, >> drives the users crazy. >> That's how I write my programs! Duh! Now you know why it needs a >> makeover. >> >> Ok, and here is another we could look at: Making sure that all code that >> calculate (say) basic + tax * gross profit - overheads etc etc is the same >> right across the board by hiding all the calcs in a single class. Only one >> place to get the calculations for business rules and that is (ie) >> clsBusinessRules Let people from the List come up with business rules and >> then, as a lesson, build the class to handle those rules. >> >> Max >> >> >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: 11 February 2009 22:45 >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Where do we go from here? >> >> ROTFL. >> >> You laugh but when I learned about classes, I rewrote my entire framework >> from scratch. It was >> sooooo much cleaner and so much more functional. Then, with the experience >> I gained from that I >> rewrote it a third time. >> >> Classes really do rock! >> >> In this case however I am looking for ideas on what simple things we can do >> to better illustrate how >> and why you would use a class. If you get too complex people will drop >> like >> flies. Let them get >> hooked, then we can do some more complex stuff. Perhaps an audit trail for >> changes? >> >> For now I think the next step will be to build some tables with data and a >> form to load / edit data >> for a combo box. Once we have that then I can demonstrate having the combo >> class double click event >> automatically open the form, seek to the right record (or the new record) >> and let the user add new >> records to the list table. When the form closes, the combo requeries to >> get >> the changes to the list >> data. >> >> This is actual stuff that I do with my combo class, and displays how a >> combo >> can have behaviors >> added in the wrapper class to make it more useful. Additionally it >> demonstrates how these behaviors >> can be available in any combo in any form, with a very simple "setup" to >> cause it to happen. >> >> Have you ever inherited a database (or designed one for that matter) where >> dates are entered and >> displayed in different formats all over the various forms. No consistency, >> drives the users crazy. >> >> I also have a behavior where (in a bound form) I dig down to discover the >> data type of the field >> that a control is bound to (DAO here). Once I have the datatype, I >> automatically cause the text box >> to display a specific date mask if the text box is bound to a date field. >> Having this behavior in >> the text class allows me to tell the system in one place what the date >> format should look like, and >> then when any form (that uses the form class) opens, it automatically >> discovers all date fields and >> sets them up to a common date mask. >> >> Stuff like that. >> >> We have pretty much learned how to build classes, and how to sink events in >> classes, so it is time >> to put this new knowledge to use. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> Well, for me it would be a project. I have suggested a fully functional >>> import/export to text for all objects to help people avoid bloat and >> recover >>> from disasters. My second project request would be to re-write the whole >> of >>> my work project which started in 2000 and really, and I mean really, do >> with >>> a make-over. On second thoughts, my second request is now my first >>> request!!! When do we start? >>> >>> Max >>> Ps. Well, you did ask! >>> >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>> Sent: 11 February 2009 22:06 >>> To: Access Developers discussion and problem solving >>> Subject: [AccessD] Where do we go from here? >>> >>> So what would you folks like to see next? I still have a rabbit in the >> hat >>> and a few things up my >>> sleeve. >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> From fuller.artful at gmail.com Thu Feb 12 05:52:56 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Thu, 12 Feb 2009 06:52:56 -0500 Subject: [AccessD] Compare table structures In-Reply-To: <57144ced0902120332m65478d7bvc8052bede87704c1@mail.gmail.com> References: <29f585dd0902120218q724ce0cfh9ce30e950deb3049@mail.gmail.com> <57144ced0902120332m65478d7bvc8052bede87704c1@mail.gmail.com> Message-ID: <29f585dd0902120352u406eed01u254e26eab2ee8fe1@mail.gmail.com> Merci, Philippe. Je parle francais :) A. On Thu, Feb 12, 2009 at 6:32 AM, philippe pons wrote: > Arthur, > > I use this one: > > http://www.logicielappui.com/tips/ > > goto: *Trouver rapidement les diff?rences de structures entre 2 bases de > donn?es > *at the end of the list. > > It's in French! > > Philippe > > > From fuller.artful at gmail.com Thu Feb 12 05:57:58 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Thu, 12 Feb 2009 06:57:58 -0500 Subject: [AccessD] Compare table structures In-Reply-To: <29f585dd0902120352u406eed01u254e26eab2ee8fe1@mail.gmail.com> References: <29f585dd0902120218q724ce0cfh9ce30e950deb3049@mail.gmail.com> <57144ced0902120332m65478d7bvc8052bede87704c1@mail.gmail.com> <29f585dd0902120352u406eed01u254e26eab2ee8fe1@mail.gmail.com> Message-ID: <29f585dd0902120357k3044a792p3e06983fcd2c58b2@mail.gmail.com> I just grabbed it, Philippe, and it appears to want to compare two entire MDBs, not two tables. Or am I missing something? TIA, Arthur On Thu, Feb 12, 2009 at 6:52 AM, Arthur Fuller wrote: > Merci, Philippe. Je parle francais :) > > A. > > On Thu, Feb 12, 2009 at 6:32 AM, philippe pons wrote: > >> Arthur, >> >> I use this one: >> >> http://www.logicielappui.com/tips/ >> >> goto: *Trouver rapidement les diff?rences de structures entre 2 bases de >> donn?es >> *at the end of the list. >> >> It's in French! >> >> Philippe >> >> >> From fuller.artful at gmail.com Thu Feb 12 05:59:15 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Thu, 12 Feb 2009 06:59:15 -0500 Subject: [AccessD] Hidden Tables In-Reply-To: <49940CAE.3020204@colbyconsulting.com> References: <29f585dd0902120330s75339608r11c4907cfe8acc4e@mail.gmail.com> <49940CAE.3020204@colbyconsulting.com> Message-ID: <29f585dd0902120359l3650b825ua46dd886b48d8982@mail.gmail.com> I'll check that out. Thanks. On Thu, Feb 12, 2009 at 6:49 AM, jwcolby wrote: > There is a property in Tools / options / views, the hidden check box. If > that is checked then the > hidden objects will (I believe) be shown as grayish but still visible. > From stuart at lexacorp.com.pg Thu Feb 12 06:19:04 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Thu, 12 Feb 2009 22:19:04 +1000 Subject: [AccessD] Hidden Tables In-Reply-To: <49940CAE.3020204@colbyconsulting.com> References: <29f585dd0902120330s75339608r11c4907cfe8acc4e@mail.gmail.com>, <49940CAE.3020204@colbyconsulting.com> Message-ID: <4994A058.24687.6FBD981@stuart.lexacorp.com.pg> Once you have selected Tools-Options-View-Hidden Objects, you can right click on the table, select Properties and "unhide" it Also, you can also create a System Table by naming it usysxxxxxxxx or msysxxxxxxx If the table starts with either of these four character strings, it is only visible if you check the box Tools-Options-View-System Objects. It's not a good idea to use msysxxxxxxx because Access uses that for real system tables, but usysxxxxx is handy for hiding your own tables. I use it quite often for tables holding system information, user login data etc On 12 Feb 2009 at 6:49, jwcolby wrote: > There is a property in Tools / options / views, the hidden check box. If that is checked then the > hidden objects will (I believe) be shown as grayish but still visible. > > John W. Colby > www.ColbyConsulting.com > > > Arthur Fuller wrote: > > I know that you can hide a table by right clicking and then choosing > > Properties and filling the Hidden checkbox. But once it's hidden, how do you > > unHide it? > > > > TIA, > > Arthur > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Thu Feb 12 06:54:41 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Thu, 12 Feb 2009 07:54:41 -0500 Subject: [AccessD] Compare table structures References: <29f585dd0902120218q724ce0cfh9ce30e950deb3049@mail.gmail.com> Message-ID: http://www.access-programmers.co.uk/forums/showthread.php?t=127628 William -------------------------------------------------- From: "Arthur Fuller" Sent: Thursday, February 12, 2009 5:18 AM To: "Access Developers discussion and problem solving" Subject: [AccessD] Compare table structures > Is there a free tool that will compare two table structures and report the > differences? I'd do it manually but in this case there are over 100 fields > and it would be very tedious to do it by hand. > > TIA, > Arthur > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Thu Feb 12 07:57:06 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 12 Feb 2009 08:57:06 -0500 Subject: [AccessD] SINKING EVENTS IN MULTIPLE PLACES Message-ID: <49942AB2.9090900@colbyconsulting.com> Events are used to tell the object containing another object that the contained object has done something. To put that into English, if a form contains a command button (an object) the command button can raise an event called the OnClick (the click event). The Click event of the command button is used to tell the containing object (the form) that the user clicked on the command button. Remember back in the first lecture I said that while classes are modules, modules are not classes, and that only classes could sink or source events. Our classes can source or ?raise? an event. Before we get into that, you need to understand that like the radio signal that I used as analogy for events, more than one containing object can sink an event, in fact when we use classes it is quite common for two objects to sink an event. Oftentimes we will build a wrapper class for a control such as a combo, and that class will sink the combo?s events. However what happens if we need to perform processing on the combo?s events that are specific to the form that the combo is in? The answer is to build a normal event sink in the form itself, do form specific processing in that event sink, then do generic processing in the wrapper class. I am going to demonstrate an object event being sunk in two places by building an event sink for the first combo in the form I sent you, in the form itself. ? Open frmDemoCtls in design view ? Paste the following code into the form: Private Sub Combo11_AfterUpdate() Debug.Print Me.Name & ": AfterUpdate" End Sub This code simply creates an event sink in the form for combo1 AfterUpdate and prints the form?s name and ?AfterUpdate? to the debug window when the event fires. ? Open the form, click into the top combo in the form and type in some characters, then hit enter. In the debug window you should see the following: GotFocus: Text1 LostFocus: Text1 GotFocus: Combo11 BeforeUpdate: Combo11 frmDemoCtls: AfterUpdate AfterUpdate: Combo11 LostFocus: Combo11 GotFocus: Combo16 Notice that when the combo?s AfterUpdate event fired, the form got control first! So the control was able to perform some processing that it needed to do before our wrapper class got control. Once the form was done and execution stepped out of the event sink on the form, our wrapper class clsCtlCbo got control and ran its AfterUpdate event sink code. This brings up an interesting question though, what happens if the form needs to do some processing AFTER our wrapper class processes the event? It isn?t extremely common but that scenario does occur and I have had to handle it on occasion. I am going to leave that to another lecture because I want you to simply absorb the fact that more than one container class can sink an event. In fact it is quite possible to sink an event in many different classes. Just to drop an interesting idea, it is possible to build a command button on a form, then on another form entirely you can sink the click event of the button on the first form! In other words, click the button on FormA and run code in FormB when the button is clicked! Or run code in BOTH forms when the button is clicked. In fact you could have the button event sunk on as many forms as you wanted. Now I know that doesn?t sound very useful but this example is just used to get you thinking about and understanding that events are broadcast by an object (the button) and sunk by anybody that needs to know about the event. Furthermore the event can be sunk in as many different places as required by your program. In order to sink an event from a command button on form1 over in form2, you have to dimension a variable for a command button in form2. Not that you have a command button variable you must get a pointer to the command button on form1, and SET the command button variable in form2 to the command button passed in. Whew, THAT was a mouthful. In general we have to: 1. Inside of our class, dimension a pointer to the object we want to sink events for 2. Get a pointer to the object that we want to sink events for. 3. Store the pointer in the variable in our class 4. In our class, build an event sink for the event we want to sink. 5. Write code in that event sink to do whatever we want done. Remember that a form module is in fact a class, so we can do all of that stuff right in our form class. In this lecture we have learned that it is possible to sink events in more than one class. We have added an event sink in our form to sink the AfterUpdate of one of the combos on the form and we debug.print to the command window to demonstrate that the event sink in the class is in fact getting control. We also looked in the command window to verify that the form got control first, then our combo wrapper class clsCtlCbo got control and its AfterUpdate event sink ran. Finally we learned that an event can be sunk in many different places if needed. -- John W. Colby www.ColbyConsulting.com From phpons at gmail.com Thu Feb 12 08:07:54 2009 From: phpons at gmail.com (philippe pons) Date: Thu, 12 Feb 2009 15:07:54 +0100 Subject: [AccessD] Compare table structures In-Reply-To: <29f585dd0902120357k3044a792p3e06983fcd2c58b2@mail.gmail.com> References: <29f585dd0902120218q724ce0cfh9ce30e950deb3049@mail.gmail.com> <57144ced0902120332m65478d7bvc8052bede87704c1@mail.gmail.com> <29f585dd0902120352u406eed01u254e26eab2ee8fe1@mail.gmail.com> <29f585dd0902120357k3044a792p3e06983fcd2c58b2@mail.gmail.com> Message-ID: <57144ced0902120607w5dba3ed1p5bb7658380eea3dc@mail.gmail.com> Arthur, you're right, it will compare 2 entire mdb's. you'll need to have the tables you want to check in 2 different mdb's. Probably not the tool you expected! Sorry, Philippe 2009/2/12 Arthur Fuller > I just grabbed it, Philippe, and it appears to want to compare two entire > MDBs, not two tables. Or am I missing something? > > TIA, > Arthur > > On Thu, Feb 12, 2009 at 6:52 AM, Arthur Fuller >wrote: > > > Merci, Philippe. Je parle francais :) > > > > A. > > > > On Thu, Feb 12, 2009 at 6:32 AM, philippe pons > wrote: > > > >> Arthur, > >> > >> I use this one: > >> > >> http://www.logicielappui.com/tips/ > >> > >> goto: *Trouver rapidement les diff?rences de structures entre 2 bases de > >> donn?es > >> *at the end of the list. > >> > >> It's in French! > >> > >> Philippe > >> > >> > >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From fuller.artful at gmail.com Thu Feb 12 08:15:03 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Thu, 12 Feb 2009 09:15:03 -0500 Subject: [AccessD] Compare table structures In-Reply-To: References: <29f585dd0902120218q724ce0cfh9ce30e950deb3049@mail.gmail.com> Message-ID: <29f585dd0902120615q12f00247ha930a4f91cd8399a@mail.gmail.com> Thanks, William, but unfortunately that one compares the data. I need to compare the structures. Arthur On Thu, Feb 12, 2009 at 7:54 AM, William Hindman < wdhindman at dejpolsystems.com> wrote: > http://www.access-programmers.co.uk/forums/showthread.php?t=127628 > > William > From jwcolby at colbyconsulting.com Thu Feb 12 08:19:35 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 12 Feb 2009 09:19:35 -0500 Subject: [AccessD] The form for demo event sink in two places Message-ID: <49942FF7.5050101@colbyconsulting.com> The following is the text for a form to import into the demo database. Save this into a file called frmDemoSinkingCommandButtonEvent.txt in a path you can work with. Then do the following modifying the path as needed: ImportForm "frmDemoCtls", "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoSinkingCommandButtonEvent.txt" That will import the form into your demo database. My next email will demonstrate the use of this form. Version =19 VersionRequired =19 Checksum =570145595 Begin Form AllowDesignChanges = NotDefault DefaultView =0 RecordLocks =2 TabularFamily =0 PictureAlignment =2 DatasheetGridlinesBehavior =3 GridX =24 GridY =24 DatasheetFontHeight =10 ItemSuffix =2 Left =270 Top =600 Right =9255 Bottom =5520 DatasheetGridlinesColor =12632256 RecSrcDt = Begin 0xadbae61e0c76e340 End GUID = Begin 0xce4b8bda887c504e8a23fedefb80807a End NameMap = Begin 0x0acc0e5500000000000000000000000000000000000000000c00000003000000 , 0x0000000000000000000000000000 End DatasheetFontName ="Arial" OnLoad ="[Event Procedure]" Begin Begin Label BackStyle =0 FontName ="Tahoma" End Begin CommandButton FontSize =8 FontWeight =400 ForeColor =-2147483630 FontName ="Tahoma" End Begin FormHeader Height =360 BackColor =-2147483633 Name ="FormHeader" GUID = Begin 0xb5abe32a309f324d8f00067aa83acb32 End Begin Begin Label OverlapFlags =85 Left =600 Top =60 Width =2715 Height =210 Name ="Label1" Caption ="Demo sinking command button event" GUID = Begin 0x1533eb00bf216746812aaf771531439e End End End End Begin Section Height =660 BackColor =-2147483633 Name ="Detail" GUID = Begin 0xb187e3478b2ea14da76df919daf58bae End End Begin FormFooter Height =696 BackColor =-2147483633 Name ="FormFooter" GUID = Begin 0x6b8f07fee023894fb43f4a9eab240c0b End Begin Begin CommandButton OverlapFlags =85 Left =60 Top =60 Width =576 Height =576 Name ="cmdClose" Caption ="Command0" OnClick ="[Event Procedure]" PictureData = Begin 0x2800000010000000100000000100040000000000800000000000000000000000 , 0x0000000000000000000000000000800000800000008080008000000080008000 , 0x8080000080808000c0c0c0000000ff00c0c0c00000ffff00ff000000c0c0c000 , 0xffff0000ffffff00dadad0dadadadadaadad00adadadadaddad030dadadadada , 0xad0330adadadadad0033300000000adaa03330ff0dadadadd03300ff0adad4da , 0xa03330ff0dad44add03330ff0ad44444a03330ff0d444444d03330ff0ad44444 , 0xa0330fff0dad44add030ffff0adad4daa00fffff0dadadadd00000000adadada , 0xadadadadadadadad000000000000000000000000000000000000000000000000 , 0x0000000000000000000000000000000000000000000000000000000000000000 , 0x0000000000000000000000000000000000000000000000000000000000000000 , 0x0000000000000000000000000000000000000000000000000000000000000000 , 0x0000000000000000000000000000000000000000000000000000000000000000 , 0x0000000000000000000000000000000000000000000000000000000000000000 , 0x0000000000000000000000000000000000000000000000000000000000000000 , 0x0000000000000000000000000000000000000000000000000000000000000000 , 0x0000000000000000 End ObjectPalette = Begin 0x0003100000000000800000000080000080800000000080008000800000808000 , 0x80808000c0c0c000ff000000c0c0c000ffff00000000ff00c0c0c00000ffff00 , 0xffffff0000000000 End ControlTipText ="Close Form" GUID = Begin 0xdbd2723a0eb9004a9798854b2ec099fa End End End End End End CodeBehindForm Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = True Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Option Compare Database Option Explicit Dim WithEvents cmd As CommandButton Private Sub cmd_Click() MsgBox Me.Name & ": " & cmd.Name & ": Click event" End Sub Private Sub Form_Load() On Error Resume Next Set cmd = Forms!frmDemoCtls!Command15 MsgBox cmd.Name End Sub Private Sub cmdClose_Click() On Error GoTo Err_cmdClose_Click DoCmd.Close Exit_cmdClose_Click: Exit Sub Err_cmdClose_Click: MsgBox Err.Description Resume Exit_cmdClose_Click End Sub From jwcolby at colbyconsulting.com Thu Feb 12 08:27:06 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 12 Feb 2009 09:27:06 -0500 Subject: [AccessD] EMERGENCY HALT: was Re: The form for demo event sink in two places In-Reply-To: <49942FF7.5050101@colbyconsulting.com> References: <49942FF7.5050101@colbyconsulting.com> Message-ID: <499431BA.3000903@colbyconsulting.com> WAIT!!! THAT WILL OVERWRITE frmDemoCtls WITH THIS NEW FORM! Please execute the following code instead: ImportForm "frmDemoSinkingCommandButtonEvent", "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoSinkingCommandButtonEvent.txt" If you have already overwritten frmDemoCtls please refer to the email "Import the form" to reimport frmDemoCtls. My apologies. John W. Colby www.ColbyConsulting.com jwcolby wrote: > The following is the text for a form to import into the demo database. Save this into a file called > frmDemoSinkingCommandButtonEvent.txt in a path you can work with. Then do the following modifying > the path as needed: > > ImportForm "frmDemoCtls", > "c:\Users\jwcolby\Documents\ClassesAndEventsDemo\frmDemoSinkingCommandButtonEvent.txt" > > That will import the form into your demo database. My next email will demonstrate the use of this form. > > > Version =19 > VersionRequired =19 > Checksum =570145595 > Begin Form > AllowDesignChanges = NotDefault > DefaultView =0 > RecordLocks =2 > TabularFamily =0 > PictureAlignment =2 > DatasheetGridlinesBehavior =3 > GridX =24 > GridY =24 > DatasheetFontHeight =10 > ItemSuffix =2 > Left =270 > Top =600 > Right =9255 > Bottom =5520 > DatasheetGridlinesColor =12632256 > RecSrcDt = Begin > 0xadbae61e0c76e340 > End > GUID = Begin > 0xce4b8bda887c504e8a23fedefb80807a > End > NameMap = Begin > 0x0acc0e5500000000000000000000000000000000000000000c00000003000000 , > 0x0000000000000000000000000000 > End > DatasheetFontName ="Arial" > OnLoad ="[Event Procedure]" > Begin > Begin Label > BackStyle =0 > FontName ="Tahoma" > End > Begin CommandButton > FontSize =8 > FontWeight =400 > ForeColor =-2147483630 > FontName ="Tahoma" > End > Begin FormHeader > Height =360 > BackColor =-2147483633 > Name ="FormHeader" > GUID = Begin > 0xb5abe32a309f324d8f00067aa83acb32 > End > Begin > Begin Label > OverlapFlags =85 > Left =600 > Top =60 > Width =2715 > Height =210 > Name ="Label1" > Caption ="Demo sinking command button event" > GUID = Begin > 0x1533eb00bf216746812aaf771531439e > End > End > End > End > Begin Section > Height =660 > BackColor =-2147483633 > Name ="Detail" > GUID = Begin > 0xb187e3478b2ea14da76df919daf58bae > End > End > Begin FormFooter > Height =696 > BackColor =-2147483633 > Name ="FormFooter" > GUID = Begin > 0x6b8f07fee023894fb43f4a9eab240c0b > End > Begin > Begin CommandButton > OverlapFlags =85 > Left =60 > Top =60 > Width =576 > Height =576 > Name ="cmdClose" > Caption ="Command0" > OnClick ="[Event Procedure]" > PictureData = Begin > 0x2800000010000000100000000100040000000000800000000000000000000000 , > 0x0000000000000000000000000000800000800000008080008000000080008000 , > 0x8080000080808000c0c0c0000000ff00c0c0c00000ffff00ff000000c0c0c000 , > 0xffff0000ffffff00dadad0dadadadadaadad00adadadadaddad030dadadadada , > 0xad0330adadadadad0033300000000adaa03330ff0dadadadd03300ff0adad4da , > 0xa03330ff0dad44add03330ff0ad44444a03330ff0d444444d03330ff0ad44444 , > 0xa0330fff0dad44add030ffff0adad4daa00fffff0dadadadd00000000adadada , > 0xadadadadadadadad000000000000000000000000000000000000000000000000 , > 0x0000000000000000000000000000000000000000000000000000000000000000 , > 0x0000000000000000000000000000000000000000000000000000000000000000 , > 0x0000000000000000000000000000000000000000000000000000000000000000 , > 0x0000000000000000000000000000000000000000000000000000000000000000 , > 0x0000000000000000000000000000000000000000000000000000000000000000 , > 0x0000000000000000000000000000000000000000000000000000000000000000 , > 0x0000000000000000000000000000000000000000000000000000000000000000 , > 0x0000000000000000 > End > ObjectPalette = Begin > 0x0003100000000000800000000080000080800000000080008000800000808000 , > 0x80808000c0c0c000ff000000c0c0c000ffff00000000ff00c0c0c00000ffff00 , > 0xffffff0000000000 > End > ControlTipText ="Close Form" > GUID = Begin > 0xdbd2723a0eb9004a9798854b2ec099fa > End > End > End > End > End > End > CodeBehindForm > Attribute VB_GlobalNameSpace = False > Attribute VB_Creatable = True > Attribute VB_PredeclaredId = True > Attribute VB_Exposed = False > Option Compare Database > Option Explicit > > Dim WithEvents cmd As CommandButton > > > Private Sub cmd_Click() > MsgBox Me.Name & ": " & cmd.Name & ": Click event" > End Sub > > > Private Sub Form_Load() > On Error Resume Next > Set cmd = Forms!frmDemoCtls!Command15 > MsgBox cmd.Name > End Sub > Private Sub cmdClose_Click() > On Error GoTo Err_cmdClose_Click > > > DoCmd.Close > > Exit_cmdClose_Click: > Exit Sub > > Err_cmdClose_Click: > MsgBox Err.Description > Resume Exit_cmdClose_Click > > End Sub > From jwcolby at colbyconsulting.com Thu Feb 12 09:10:39 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 12 Feb 2009 10:10:39 -0500 Subject: [AccessD] Demo sinking events in two places Message-ID: <49943BEF.3020800@colbyconsulting.com> Boy did I ever mess that one up. IF you did not overwrite your original form frmDemoCtls then you SHOULD be able to: * open frmDemoCtls FIRST * Open frmDemoSinkingCommandButtonEvent * Notice that the form pops up a message box telling you the name of that form plus the name of the command button back on frmDemoCtls * Click the button on frmDemoCtls * Notice a message box telling you the name of frmDemoCtls plus the name of the command control * Close that message box. Notice a message box telling you the name of frmDemoSinkingCommandButtonEvent plus the name of the control. Whew. So what happened? frmDemoSinkingCommandButtonEvent has the following code inside of it: Dim WithEvents cmd As CommandButton Private Sub cmd_Click() MsgBox Me.Name & ": " & cmd.Name & ": Click event" End Sub Private Sub Form_Load() On Error Resume Next Set cmd = Forms!frmDemoCtls!Command15 MsgBox cmd.Name End Sub Let's break that code down. Dim WithEvents cmd As CommandButton Here we dim a command button Withevents which tells VBA that this class will be sinking events for a command button named cmd. Private Sub Form_Load() On Error Resume Next Set cmd = Forms!frmDemoCtls!Command15 MsgBox cmd.Name End Sub The load event reaches over to frmDemoCtls and grabs a pointer to Command15, and SETs cmd = to that pointer. It then pops up a message box telling you the name of the command button. I placed the OnError line in there in case frmDemoCtls was not open yet. The code will NOT run correctly if you load frmDemoCtls last. Private Sub cmd_Click() MsgBox Me.Name & ": " & cmd.Name & ": Click event" End Sub And finally, we build an event sink in frmDemoSinkingCommandButtonEvent to run when the command button is clicked. This might be a strange concept, sinking an event from an object in a form somewhere else but that is precisely what our clsCtlXXX is doing with combos, text boxes and eventually other control wrappers for objects such as radio buttons etc. The important thing to understand in all this is that an event can be sunk in as many places as you want. All you have to do is set it up. frmDemoSinkingCommandButtonEvent simly demonstrates how to sut up such a scenario. In this lecture we have demonstrated that a form can sink an event for a control on another form. We have also demonstrated again that the form that contains the control gets code execution control first and runs its code. Once it is finished, any other class that is also sinking that event gets control, in this case frmDemoSinkingCommandButtonEvent gets control. Isn't this stuff FUN? ;-) -- John W. Colby www.ColbyConsulting.com From rockysmolin at bchacc.com Thu Feb 12 09:15:35 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Thu, 12 Feb 2009 07:15:35 -0800 Subject: [AccessD] Compare table structures In-Reply-To: <29f585dd0902120218q724ce0cfh9ce30e950deb3049@mail.gmail.com> References: <29f585dd0902120218q724ce0cfh9ce30e950deb3049@mail.gmail.com> Message-ID: <50778FC87D614FE9888ED535ADC5D75C@HAL9005> I use a program called mdbdiff. It's available for 97 or 2000 but I think it should work on a 2003 mdb. I can send it to you off line if you want. Wait, looks like you can get it here: http://www.softlookup.com/display.asp?id=10699 Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Arthur Fuller Sent: Thursday, February 12, 2009 2:18 AM To: Access Developers discussion and problem solving Subject: [AccessD] Compare table structures Is there a free tool that will compare two table structures and report the differences? I'd do it manually but in this case there are over 100 fields and it would be very tedious to do it by hand. TIA, Arthur -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Thu Feb 12 09:16:21 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 12 Feb 2009 10:16:21 -0500 Subject: [AccessD] I have to work too! Message-ID: <49943D45.3090602@colbyconsulting.com> I have to go to work for awhile now. Stuff that needs my attention. Please work through the things I have written and feel free to ask questions, or make comments. A discussion among yourselves would be nice to let people (and me) know how much you have figured out from this, what still puzzles you, what you would like to see etc. Please speak up folks. I will get to RaiseEvents but I do have to do some other stuff first. -- John W. Colby www.ColbyConsulting.com From rockysmolin at bchacc.com Thu Feb 12 09:16:44 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Thu, 12 Feb 2009 07:16:44 -0800 Subject: [AccessD] Compare table structures In-Reply-To: <29f585dd0902120357k3044a792p3e06983fcd2c58b2@mail.gmail.com> References: <29f585dd0902120218q724ce0cfh9ce30e950deb3049@mail.gmail.com><57144ced0902120332m65478d7bvc8052bede87704c1@mail.gmail.com><29f585dd0902120352u406eed01u254e26eab2ee8fe1@mail.gmail.com> <29f585dd0902120357k3044a792p3e06983fcd2c58b2@mail.gmail.com> Message-ID: <040B323C398843469AE87BBC7F973956@HAL9005> Oops, the one I recommended does the same thing. Well, export the two tables to two different mdbs and walla! Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Arthur Fuller Sent: Thursday, February 12, 2009 3:58 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Compare table structures I just grabbed it, Philippe, and it appears to want to compare two entire MDBs, not two tables. Or am I missing something? TIA, Arthur On Thu, Feb 12, 2009 at 6:52 AM, Arthur Fuller wrote: > Merci, Philippe. Je parle francais :) > > A. > > On Thu, Feb 12, 2009 at 6:32 AM, philippe pons wrote: > >> Arthur, >> >> I use this one: >> >> http://www.logicielappui.com/tips/ >> >> goto: *Trouver rapidement les diff?rences de structures entre 2 bases >> de donn?es *at the end of the list. >> >> It's in French! >> >> Philippe >> >> >> -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From fuller.artful at gmail.com Thu Feb 12 09:28:17 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Thu, 12 Feb 2009 10:28:17 -0500 Subject: [AccessD] Compare table structures In-Reply-To: <040B323C398843469AE87BBC7F973956@HAL9005> References: <29f585dd0902120218q724ce0cfh9ce30e950deb3049@mail.gmail.com> <57144ced0902120332m65478d7bvc8052bede87704c1@mail.gmail.com> <29f585dd0902120352u406eed01u254e26eab2ee8fe1@mail.gmail.com> <29f585dd0902120357k3044a792p3e06983fcd2c58b2@mail.gmail.com> <040B323C398843469AE87BBC7F973956@HAL9005> Message-ID: <29f585dd0902120728t3c2e4e44j466d6470a32156@mail.gmail.com> Yeah, I guess that's what I will have to do. Jiggery pokery. On Thu, Feb 12, 2009 at 10:16 AM, Rocky Smolin at Beach Access Software < rockysmolin at bchacc.com> wrote: > Oops, the one I recommended does the same thing. Well, export the two > tables to two different mdbs and walla! > From fuller.artful at gmail.com Thu Feb 12 09:29:28 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Thu, 12 Feb 2009 10:29:28 -0500 Subject: [AccessD] Hidden Tables In-Reply-To: <4994A058.24687.6FBD981@stuart.lexacorp.com.pg> References: <29f585dd0902120330s75339608r11c4907cfe8acc4e@mail.gmail.com> <49940CAE.3020204@colbyconsulting.com> <4994A058.24687.6FBD981@stuart.lexacorp.com.pg> Message-ID: <29f585dd0902120729j7892397anb584ebd0a892a0cb@mail.gmail.com> This works a treat. Exactly what I wanted. Arthur On Thu, Feb 12, 2009 at 7:19 AM, Stuart McLachlan wrote: > Once you have selected Tools-Options-View-Hidden Objects, you can right > click on the > table, select Properties and "unhide" it > > Also, you can also create a System Table by naming it > usysxxxxxxxx or msysxxxxxxx > > If the table starts with either of these four character strings, it is only > visible if you check the > box Tools-Options-View-System Objects. > > It's not a good idea to use msysxxxxxxx because Access uses that for real > system tables, > but usysxxxxx is handy for hiding your own tables. > > I use it quite often for tables holding system information, user login data > etc > > > From jwcolby at colbyconsulting.com Thu Feb 12 10:20:39 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 12 Feb 2009 11:20:39 -0500 Subject: [AccessD] More Class lectures? Message-ID: <49944C57.6030308@colbyconsulting.com> As you might guess, I have spent a fair amount of time writing up this series of class lectures. I really need to know that the time is well spent. I am asking everybody that has actually studied any of the lectures to please respond by Monday and let me know how far you have gotten in the series. This gives the weekend those who need more time to take a look. This will allow me to determine how to proceed. I understand that many people just flat do not have the time now, but I also know that people make time for what they want or need to learn, and I have intentionally broken down the lectures such that each one should take well under an hour to absorb, in fact many of them should be well under a half hour. Please understand that it is perfectly fine to decide that this isn't something you care about, but if you do care then all there is is today. My own experience says that if I never get started I never get it done. I really do not want to seem like I am nagging people to do this, but I need some feedback saying that people are actually studying this stuff in order for me to do more. I also need to know how far people have gotten to determine whether I am way ahead of the curve or there are people right on my heels so to speak, waiting for more. Just a quick email telling me where you are would be a huge help to me. Thanks guys, -- John W. Colby www.ColbyConsulting.com From j.r.porter at strath.ac.uk Thu Feb 12 11:02:50 2009 From: j.r.porter at strath.ac.uk (John Porter) Date: Thu, 12 Feb 2009 17:02:50 +0000 Subject: [AccessD] More Class lectures? In-Reply-To: <49944C57.6030308@colbyconsulting.com> References: <49944C57.6030308@colbyconsulting.com> Message-ID: I've been following the lectures with graet interest. Please continue. Regards, John R. Porter IT Services University of Strathclyde Jordanhill Campus 86 Southbrae Drive Glasgow G13 1PP e-mail: j.r.porter at strath.ac.uk Tel.: 0141 950 3289 The University of Strathclyde is a charitable body, registered in Scotland, with registration number SC015263 -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 12 February 2009 16:21 To: Access Developers discussion and problem solving Subject: [AccessD] More Class lectures? As you might guess, I have spent a fair amount of time writing up this series of class lectures. I really need to know that the time is well spent. I am asking everybody that has actually studied any of the lectures to please respond by Monday and let me know how far you have gotten in the series. This gives the weekend those who need more time to take a look. This will allow me to determine how to proceed. I understand that many people just flat do not have the time now, but I also know that people make time for what they want or need to learn, and I have intentionally broken down the lectures such that each one should take well under an hour to absorb, in fact many of them should be well under a half hour. Please understand that it is perfectly fine to decide that this isn't something you care about, but if you do care then all there is is today. My own experience says that if I never get started I never get it done. I really do not want to seem like I am nagging people to do this, but I need some feedback saying that people are actually studying this stuff in order for me to do more. I also need to know how far people have gotten to determine whether I am way ahead of the curve or there are people right on my heels so to speak, waiting for more. Just a quick email telling me where you are would be a huge help to me. Thanks guys, -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Thu Feb 12 11:08:30 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 12 Feb 2009 12:08:30 -0500 Subject: [AccessD] More Class lectures? In-Reply-To: References: <49944C57.6030308@colbyconsulting.com> Message-ID: <4994578E.5080204@colbyconsulting.com> Are you nipping at my heels or only partway complete with the series? John W. Colby www.ColbyConsulting.com John Porter wrote: > I've been following the lectures with graet interest. Please continue. > > Regards, > > > John R. Porter > IT Services > University of Strathclyde > Jordanhill Campus > 86 Southbrae Drive > Glasgow > G13 1PP > e-mail: j.r.porter at strath.ac.uk > Tel.: 0141 950 3289 > > The University of Strathclyde is a charitable body, registered in Scotland, with registration number SC015263 > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 12 February 2009 16:21 > To: Access Developers discussion and problem solving > Subject: [AccessD] More Class lectures? > > As you might guess, I have spent a fair amount of time writing up this series of class lectures. I really need to know that the time is well spent. I am asking everybody that has actually studied any of the lectures to please respond by Monday and let me know how far you have gotten in the series. This gives the weekend those who need more time to take a look. > > This will allow me to determine how to proceed. I understand that many people just flat do not have the time now, but I also know that people make time for what they want or need to learn, and I have intentionally broken down the lectures such that each one should take well under an hour to absorb, in fact many of them should be well under a half hour. > > Please understand that it is perfectly fine to decide that this isn't something you care about, but if you do care then all there is is today. My own experience says that if I never get started I never get it done. > > I really do not want to seem like I am nagging people to do this, but I need some feedback saying that people are actually studying this stuff in order for me to do more. I also need to know how far people have gotten to determine whether I am way ahead of the curve or there are people right on my heels so to speak, waiting for more. > > Just a quick email telling me where you are would be a huge help to me. > > Thanks guys, > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From dwaters at usinternet.com Thu Feb 12 11:21:16 2009 From: dwaters at usinternet.com (Dan Waters) Date: Thu, 12 Feb 2009 11:21:16 -0600 Subject: [AccessD] More Class lectures? In-Reply-To: <49944C57.6030308@colbyconsulting.com> References: <49944C57.6030308@colbyconsulting.com> Message-ID: Hi John, I've been quite busy recently, so I haven't been following. Would it be possible to 'package' these lessons and post them on your web site? Thanks! Dan From jwcolby at colbyconsulting.com Thu Feb 12 11:33:31 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 12 Feb 2009 12:33:31 -0500 Subject: [AccessD] More Class lectures? In-Reply-To: References: <49944C57.6030308@colbyconsulting.com> Message-ID: <49945D6B.10506@colbyconsulting.com> I will be doing that. Not sure how soon. John W. Colby www.ColbyConsulting.com Dan Waters wrote: > Hi John, > > I've been quite busy recently, so I haven't been following. Would it be > possible to 'package' these lessons and post them on your web site? > > Thanks! > Dan > > > > From adtp at airtelmail.in Thu Feb 12 11:32:05 2009 From: adtp at airtelmail.in (A.D.Tejpal) Date: Thu, 12 Feb 2009 23:02:05 +0530 Subject: [AccessD] Compare table structures References: <29f585dd0902120218q724ce0cfh9ce30e950deb3049@mail.gmail.com> Message-ID: <016001c98d38$1d41db30$bb5ea27a@personald6374f> Arthur, Interestingly, this very topic came up in MS_Access_Professionals group at Yahoo today. Extract of the routine suggested by Clive Williams is placed below. You might like to try it out. (It has not yet been tested at my end). Best wishes, A.D. Tejpal ------------ ' Extract of sample code (by Clive Williams) to compare ' two tables. It compares the FieldTypes then displays the ' Filenames and FieldTypes in the DebugWindow: '====================================== Private Sub cmdCompareTableStructures_Click() ' Compare the FieldTypes of the source table and the specified table Dim db As DAO.Database Dim tbli As DAO.TableDef Dim tblj As DAO.TableDef Dim i As Integer Dim booMismatch As Boolean On Error GoTo Err_cmdCompareTableStructures_Click If vbYes = MsgBox("Comparing Table Structures. Stop, Yes/No", vbYesNo + vbDefaultButton2) Then Stop Set db = CurrentDb Set tbli = db.TableDefs(Me.RecordSource) Set tblj = db.TableDefs(Me.cboTables.Column(0)) (from ComboBox) Debug.Print "Tables: "; tbli.Name & " " & tblj.Name If tbli.Fields.Count <> tblj.Fields.Count Then MsgBox tbli.Name & " has " & tbli.Fields.Count & _ " fields" & vbCrLf & vbCrLf & _ tblj.Name & " has " & tblj.Fields.Count & _ " fields." & vbCrLf & " Quitting..." Else For i = 0 To tbli.Fields.Count - 1 Debug.Print "Names", tbli.Fields(i).Name, _ tblj.Fields(i).Name, ; Debug.Print "Types", tbli.Fields(i).Type, _ tblj.Fields(i).Type If tbli.Fields(i).Type <> tblj.Fields(i).Type Then Debug.Print "", "", "", " Mismatch>", "***", "***" booMismatch = True End If Next i If booMismatch Then DoCmd.RunCommand acCmdDebugWindow Else MsgBox "Compared Successfully." End If End If Exit_cmdCompareTableStructures_Click: Set tblj = Nothing Set tbli = Nothing Set db = Nothing Exit Sub Err_cmdCompareTableStructures_Click: MsgBox Err.Description Resume Exit_cmdCompareTableStructures_Click End Sub '======================================== ----- Original Message ----- From: Arthur Fuller To: Access Developers discussion and problem solving Sent: Thursday, February 12, 2009 15:48 Subject: [AccessD] Compare table structures Is there a free tool that will compare two table structures and report the differences? I'd do it manually but in this case there are over 100 fields and it would be very tedious to do it by hand. TIA, Arthur From j.r.porter at strath.ac.uk Thu Feb 12 11:35:56 2009 From: j.r.porter at strath.ac.uk (John Porter) Date: Thu, 12 Feb 2009 17:35:56 +0000 Subject: [AccessD] More Class lectures? In-Reply-To: <4994578E.5080204@colbyconsulting.com> References: <49944C57.6030308@colbyconsulting.com> <4994578E.5080204@colbyconsulting.com> Message-ID: I've read all the lectures so far. Don't want to nip at your heels. Please take your time, but I'd really like more of this stuff. Regards, John John R. Porter IT Services University of Strathclyde Jordanhill Campus 86 Southbrae Drive Glasgow G13 1PP e-mail: j.r.porter at strath.ac.uk Tel.: 0141 950 3289 The University of Strathclyde is a charitable body, registered in Scotland, with registration number SC015263 -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 12 February 2009 17:09 To: Access Developers discussion and problem solving Subject: Re: [AccessD] More Class lectures? Are you nipping at my heels or only partway complete with the series? John W. Colby www.ColbyConsulting.com John Porter wrote: > I've been following the lectures with graet interest. Please continue. > > Regards, > > > John R. Porter > IT Services > University of Strathclyde > Jordanhill Campus > 86 Southbrae Drive > Glasgow > G13 1PP > e-mail: j.r.porter at strath.ac.uk > Tel.: 0141 950 3289 > > The University of Strathclyde is a charitable body, registered in > Scotland, with registration number SC015263 > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 12 February 2009 16:21 > To: Access Developers discussion and problem solving > Subject: [AccessD] More Class lectures? > > As you might guess, I have spent a fair amount of time writing up this series of class lectures. I really need to know that the time is well spent. I am asking everybody that has actually studied any of the lectures to please respond by Monday and let me know how far you have gotten in the series. This gives the weekend those who need more time to take a look. > > This will allow me to determine how to proceed. I understand that many people just flat do not have the time now, but I also know that people make time for what they want or need to learn, and I have intentionally broken down the lectures such that each one should take well under an hour to absorb, in fact many of them should be well under a half hour. > > Please understand that it is perfectly fine to decide that this isn't something you care about, but if you do care then all there is is today. My own experience says that if I never get started I never get it done. > > I really do not want to seem like I am nagging people to do this, but I need some feedback saying that people are actually studying this stuff in order for me to do more. I also need to know how far people have gotten to determine whether I am way ahead of the curve or there are people right on my heels so to speak, waiting for more. > > Just a quick email telling me where you are would be a huge help to me. > > Thanks guys, > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From fahooper at trapo.com Thu Feb 12 11:40:14 2009 From: fahooper at trapo.com (Fred Hooper) Date: Thu, 12 Feb 2009 12:40:14 -0500 Subject: [AccessD] More Class lectures? In-Reply-To: <49944C57.6030308@colbyconsulting.com> Message-ID: <0443F06B855D4A5B8ED4870A79FCFE06@FRED6998B25045> John, I've read everything, looking at the code saying "That makes sense" but not working through the examples. I've tried to learn classes in the past but never got to where I could use them; I'm now confident that even with just what you've done so far I can learn to effectively use it. Thanks, Fred From Donald.A.McGillivray at sprint.com Thu Feb 12 12:03:46 2009 From: Donald.A.McGillivray at sprint.com (McGillivray, Don [IT]) Date: Thu, 12 Feb 2009 12:03:46 -0600 Subject: [AccessD] More Class lectures? In-Reply-To: <49944C57.6030308@colbyconsulting.com> References: <49944C57.6030308@colbyconsulting.com> Message-ID: <59F4C79E0A20B74990A3775EF2388A89422B002065@PDAWM03C.ad.sprint.com> As luck would have it, I actually have enough time right now to read the lectures carefully, do the exercises and study the results. For that reason, I'm right with you and hankering after more. Obviously, it will take some repetition and effort applying the concepts to some real-world situations before I can do it without looking at the notes, but this stuff is clearer to me now than it has been after the other attempts I've made to "get it". If you had been the teacher of the Java class I attempted at the local JC last year, I probbly wouldn't have dropped out. Talk about obtuse. I know I'm smart enough to learn that stuff, but it seemed like that guy was deliberately working to obstruct understanding (or prove his own superiority with the subject, maybe) rather than helping us get it. Anyway, (for my level, at least) your approach and methods are working. Keep it coming, please . . . Don -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Thursday, February 12, 2009 8:21 AM To: Access Developers discussion and problem solving Subject: [AccessD] More Class lectures? As you might guess, I have spent a fair amount of time writing up this series of class lectures. I really need to know that the time is well spent. I am asking everybody that has actually studied any of the lectures to please respond by Monday and let me know how far you have gotten in the series. This gives the weekend those who need more time to take a look. This will allow me to determine how to proceed. I understand that many people just flat do not have the time now, but I also know that people make time for what they want or need to learn, and I have intentionally broken down the lectures such that each one should take well under an hour to absorb, in fact many of them should be well under a half hour. Please understand that it is perfectly fine to decide that this isn't something you care about, but if you do care then all there is is today. My own experience says that if I never get started I never get it done. I really do not want to seem like I am nagging people to do this, but I need some feedback saying that people are actually studying this stuff in order for me to do more. I also need to know how far people have gotten to determine whether I am way ahead of the curve or there are people right on my heels so to speak, waiting for more. Just a quick email telling me where you are would be a huge help to me. Thanks guys, -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com This e-mail may contain Sprint Nextel Company proprietary information intended for the sole use of the recipient(s). Any use by others is prohibited. If you are not the intended recipient, please contact the sender and delete all copies of the message. From jwcolby at colbyconsulting.com Thu Feb 12 12:27:27 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 12 Feb 2009 13:27:27 -0500 Subject: [AccessD] More Class lectures? In-Reply-To: <59F4C79E0A20B74990A3775EF2388A89422B002065@PDAWM03C.ad.sprint.com> References: <49944C57.6030308@colbyconsulting.com> <59F4C79E0A20B74990A3775EF2388A89422B002065@PDAWM03C.ad.sprint.com> Message-ID: <49946A0F.3090901@colbyconsulting.com> 8-) John W. Colby www.ColbyConsulting.com McGillivray, Don [IT] wrote: > As luck would have it, I actually have enough time right now to read the lectures carefully, do the exercises and study the results. For that reason, I'm right with you and hankering after more. Obviously, it will take some repetition and effort applying the concepts to some real-world situations before I can do it without looking at the notes, but this stuff is clearer to me now than it has been after the other attempts I've made to "get it". > > If you had been the teacher of the Java class I attempted at the local JC last year, I probbly wouldn't have dropped out. Talk about obtuse. I know I'm smart enough to learn that stuff, but it seemed like that guy was deliberately working to obstruct understanding (or prove his own superiority with the subject, maybe) rather than helping us get it. Anyway, (for my level, at least) your approach and methods are working. Keep it coming, please . . . > > Don > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Thursday, February 12, 2009 8:21 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] More Class lectures? > > As you might guess, I have spent a fair amount of time writing up this series of class lectures. I > really need to know that the time is well spent. I am asking everybody that has actually studied > any of the lectures to please respond by Monday and let me know how far you have gotten in the > series. This gives the weekend those who need more time to take a look. > > This will allow me to determine how to proceed. I understand that many people just flat do not have > the time now, but I also know that people make time for what they want or need to learn, and I have > intentionally broken down the lectures such that each one should take well under an hour to absorb, > in fact many of them should be well under a half hour. > > Please understand that it is perfectly fine to decide that this isn't something you care about, but > if you do care then all there is is today. My own experience says that if I never get started I > never get it done. > > I really do not want to seem like I am nagging people to do this, but I need some feedback saying > that people are actually studying this stuff in order for me to do more. I also need to know how > far people have gotten to determine whether I am way ahead of the curve or there are people right on > my heels so to speak, waiting for more. > > Just a quick email telling me where you are would be a huge help to me. > > Thanks guys, > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > > This e-mail may contain Sprint Nextel Company proprietary information intended for the sole use of the recipient(s). Any use by others is prohibited. If you are not the intended recipient, please contact the sender and delete all copies of the message. > > From Donald.A.McGillivray at sprint.com Thu Feb 12 12:44:55 2009 From: Donald.A.McGillivray at sprint.com (McGillivray, Don [IT]) Date: Thu, 12 Feb 2009 12:44:55 -0600 Subject: [AccessD] Demo sinking events in two places In-Reply-To: <49943BEF.3020800@colbyconsulting.com> References: <49943BEF.3020800@colbyconsulting.com> Message-ID: <59F4C79E0A20B74990A3775EF2388A89422B002140@PDAWM03C.ad.sprint.com> OK, I know I'm WAY more jazzed by this than I should be, but after following your instructions, the forms failed to behave as advertised. So, pulling together what we've learned so far, I dug into the code, and uncovered a small but significant omission. In the Form_Load event of the "...Sinking..." form, The reference to the "...Demo..." form's command button was established, but the OnClick event wasn't "hooked" by setting its value to [Event Procedure]. Inserted this line in the Form_Load event's code: Cmd.OnClick = [Event Procedure] and it worked. I AM getting this . . . :o) -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Thursday, February 12, 2009 7:11 AM To: Access Developers discussion and problem solving Subject: [AccessD] Demo sinking events in two places Boy did I ever mess that one up. IF you did not overwrite your original form frmDemoCtls then you SHOULD be able to: * open frmDemoCtls FIRST * Open frmDemoSinkingCommandButtonEvent * Notice that the form pops up a message box telling you the name of that form plus the name of the command button back on frmDemoCtls * Click the button on frmDemoCtls * Notice a message box telling you the name of frmDemoCtls plus the name of the command control * Close that message box. Notice a message box telling you the name of frmDemoSinkingCommandButtonEvent plus the name of the control. Whew. So what happened? frmDemoSinkingCommandButtonEvent has the following code inside of it: Dim WithEvents cmd As CommandButton Private Sub cmd_Click() MsgBox Me.Name & ": " & cmd.Name & ": Click event" End Sub Private Sub Form_Load() On Error Resume Next Set cmd = Forms!frmDemoCtls!Command15 MsgBox cmd.Name End Sub Let's break that code down. Dim WithEvents cmd As CommandButton Here we dim a command button Withevents which tells VBA that this class will be sinking events for a command button named cmd. Private Sub Form_Load() On Error Resume Next Set cmd = Forms!frmDemoCtls!Command15 MsgBox cmd.Name End Sub The load event reaches over to frmDemoCtls and grabs a pointer to Command15, and SETs cmd = to that pointer. It then pops up a message box telling you the name of the command button. I placed the OnError line in there in case frmDemoCtls was not open yet. The code will NOT run correctly if you load frmDemoCtls last. Private Sub cmd_Click() MsgBox Me.Name & ": " & cmd.Name & ": Click event" End Sub And finally, we build an event sink in frmDemoSinkingCommandButtonEvent to run when the command button is clicked. This might be a strange concept, sinking an event from an object in a form somewhere else but that is precisely what our clsCtlXXX is doing with combos, text boxes and eventually other control wrappers for objects such as radio buttons etc. The important thing to understand in all this is that an event can be sunk in as many places as you want. All you have to do is set it up. frmDemoSinkingCommandButtonEvent simly demonstrates how to sut up such a scenario. In this lecture we have demonstrated that a form can sink an event for a control on another form. We have also demonstrated again that the form that contains the control gets code execution control first and runs its code. Once it is finished, any other class that is also sinking that event gets control, in this case frmDemoSinkingCommandButtonEvent gets control. Isn't this stuff FUN? ;-) -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com This e-mail may contain Sprint Nextel Company proprietary information intended for the sole use of the recipient(s). Any use by others is prohibited. If you are not the intended recipient, please contact the sender and delete all copies of the message. From dw-murphy at cox.net Thu Feb 12 12:50:23 2009 From: dw-murphy at cox.net (Doug Murphy) Date: Thu, 12 Feb 2009 10:50:23 -0800 Subject: [AccessD] OT: Viewing DOM tree of the loaded web page In-Reply-To: References: Message-ID: <2960F97CD2CB4D1F98CDB78CBBD8C5B2@murphy3234aaf1> Hi Shamil, I have a free ware network monitor called WireShark that show you the traffic, plus lots more. Too much most of the time to be usefull. I haven't spent much time on filtering or using it. I saw another nice little utility called HTTPREquest. I think I got if off Code Project and it was an example of a C# project. If you can't find it I'll send. I bought such a utility a few years ago when I was trying to get an Access project to communicate with a web site and wanted to see what was actually going back and forth. That utility was called HTTP-Inceptor. I don't know if it is still available. Let me know if you want any of these files. Doug -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Salakhetdinov Shamil Sent: Wednesday, February 11, 2009 6:21 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD]OT: Viewing DOM tree of the loaded web page Thank you, Doug, Maybe you also know/tried IP Traffic Monitor add-ins or programs like this one?: http://ip-traffic-monitor.findmysoft.com/screenshot/ or more simple - I just have to get HTTP requests/responses log file for several web pages I will navigate to manually to simulate later in code those web pages HTTP requests in my program. Do you have any recommendations? Thank you. -- Shamil -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Thu Feb 12 12:55:14 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Thu, 12 Feb 2009 13:55:14 -0500 Subject: [AccessD] More Class lectures? References: <49944C57.6030308@colbyconsulting.com> <59F4C79E0A20B74990A3775EF2388A89422B002065@PDAWM03C.ad.sprint.com> Message-ID: ...when I first ran across jc many long years ago when he was still playing expatriate down in old Mexico, I purchased his first jit sample mdb with documentation ...great sample much of which I still use today ...but the document was the most obtuse thing I'd tried to read in ages ...and I've poked him more than a few times over the years when he starts talking above my head again ...but I must admit he's learned a trick or two over that time :) ...as for the lessons, I'm barking up his shins and afraid to go any further north lest I find something truly hairy ...I've used With Events since Shamil first started hawking them on this list but never got into classes with Access ...so far today I've managed to get a couple classes working in in a major rewrite of a client app I'm doing and quite pleased with the results so far. William -------------------------------------------------- From: "McGillivray, Don [IT]" Sent: Thursday, February 12, 2009 1:03 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] More Class lectures? > As luck would have it, I actually have enough time right now to read the > lectures carefully, do the exercises and study the results. For that > reason, I'm right with you and hankering after more. Obviously, it will > take some repetition and effort applying the concepts to some real-world > situations before I can do it without looking at the notes, but this stuff > is clearer to me now than it has been after the other attempts I've made > to "get it". > > If you had been the teacher of the Java class I attempted at the local JC > last year, I probbly wouldn't have dropped out. Talk about obtuse. I > know I'm smart enough to learn that stuff, but it seemed like that guy was > deliberately working to obstruct understanding (or prove his own > superiority with the subject, maybe) rather than helping us get it. > Anyway, (for my level, at least) your approach and methods are working. > Keep it coming, please . . . > > Don > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Thursday, February 12, 2009 8:21 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] More Class lectures? > > As you might guess, I have spent a fair amount of time writing up this > series of class lectures. I > really need to know that the time is well spent. I am asking everybody > that has actually studied > any of the lectures to please respond by Monday and let me know how far > you have gotten in the > series. This gives the weekend those who need more time to take a look. > > This will allow me to determine how to proceed. I understand that many > people just flat do not have > the time now, but I also know that people make time for what they want or > need to learn, and I have > intentionally broken down the lectures such that each one should take well > under an hour to absorb, > in fact many of them should be well under a half hour. > > Please understand that it is perfectly fine to decide that this isn't > something you care about, but > if you do care then all there is is today. My own experience says that if > I never get started I > never get it done. > > I really do not want to seem like I am nagging people to do this, but I > need some feedback saying > that people are actually studying this stuff in order for me to do more. > I also need to know how > far people have gotten to determine whether I am way ahead of the curve or > there are people right on > my heels so to speak, waiting for more. > > Just a quick email telling me where you are would be a huge help to me. > > Thanks guys, > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > > This e-mail may contain Sprint Nextel Company proprietary information > intended for the sole use of the recipient(s). Any use by others is > prohibited. If you are not the intended recipient, please contact the > sender and delete all copies of the message. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Thu Feb 12 13:10:57 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 12 Feb 2009 14:10:57 -0500 Subject: [AccessD] Demo sinking events in two places In-Reply-To: <59F4C79E0A20B74990A3775EF2388A89422B002140@PDAWM03C.ad.sprint.com> References: <49943BEF.3020800@colbyconsulting.com> <59F4C79E0A20B74990A3775EF2388A89422B002140@PDAWM03C.ad.sprint.com> Message-ID: <49947441.2050009@colbyconsulting.com> Hey, that is a good catch. And good application of the theory. My problem is I know this stuff too well, which leads to slips. I THOUGHT I had sent an email where I had you create an event sink in frmDemoCtls for that command button control. If not, then in frmDemoCtls paste the following code: Private Sub Command15_Click() MsgBox Me.Name & ": command15 Click" End Sub By the way, TYPING in the code into the form class does not "hook" the event for the command button, whereas cutting and pasting that code in DOES hook the command button event, i.e. adds the "[Event Procedure]" to the click property of the command button. I mentioned that once somewhere in a past lecture, but it bears repeating for those who like to type stuff in for the practice. Isn't it cool though that a control on this form can directly cause code on that form to execute? The power of Events! John W. Colby www.ColbyConsulting.com McGillivray, Don [IT] wrote: > OK, I know I'm WAY more jazzed by this than I should be, but after following your instructions, the forms failed to behave as advertised. So, pulling together what we've learned so far, I dug into the code, and uncovered a small but significant omission. In the Form_Load event of the "...Sinking..." form, The reference to the "...Demo..." form's command button was established, but the OnClick event wasn't "hooked" by setting its value to [Event Procedure]. Inserted this line in the Form_Load event's code: > > Cmd.OnClick = [Event Procedure] > > and it worked. > > I AM getting this . . . :o) From jwcolby at colbyconsulting.com Thu Feb 12 13:51:42 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 12 Feb 2009 14:51:42 -0500 Subject: [AccessD] More Class lectures? In-Reply-To: References: <49944C57.6030308@colbyconsulting.com> <59F4C79E0A20B74990A3775EF2388A89422B002065@PDAWM03C.ad.sprint.com> Message-ID: <49947DCE.701@colbyconsulting.com> >so far today I've managed to get a couple classes working in in a major rewrite of a client app I'm doing and quite pleased with the results so far. YEA GO WILLIAM!!! Now THAT makes it all worthwhile! ;) I have indeed learned a trick or three in the years since. The basics of classes is really pretty simple but the things you can do with them OTOH are mostly limited by your imagination. It is definitely true that as you apply them, your mind starts to expand to see how you could do other things as well. The more you use them the more you can think of ways to use them. I have a state machine in a client application, the Disability Insurance call center. Events that occur to the claim directly determine the current state of the claim, and the state of the claim determines the possible states that the claim can go to. The state of the claim determines what events can occur to the claim. So you have two tables that have possibilities, the tlkpClaimStatus table (the statuses that the claim can be in) and the tlkpClaimEvent table (the events that can occur to the claim). The tmmValidNextStatus says "if you are in this status, then you can go to these other statuses". For example: Status Next Status Appeal > Re-Opened Appeal > Terminated Appeal > Open Open > Terminated Open > Suspended Open > Transferred Out The claim has an event child table that stores all of the events (and current status) that have occurred to the claim, and there is a combo that tracks what the current status is, and displays the events that can occur, and what status each event would place the claim in (assuming it would change the status). It is a rather complex state machine system, but it is critical that it function correctly because if it doesn't then the user could place the claim in a disallowed state by selecting an event that is not allowed in the current state. That event combo MUST only present events to the user that will not place the claim into a disallowed state. That kind of thing is what classes are about. As you might imagine this requires a handful of classes to efficiently process the system. One of the classes handles this combo. It builds up a query of the valid events, it handles the after update to build the event and store it in the event table, then build up the query that displays the valid events based on whatever the current status is after processing that last event. It would likely be impossible to really build a complex system like that without classes, or if it were possible it would be so wonky that maintenance would be horrendous. Even with classes it was not a trivial programming project but I wrote it and it works well. More importantly the whole thing is table driven, meaning the client can add entries into tables to add events that can occur, what state the event would cause the claim to be placed in (if any) and so forth. Furthermore code can add events to tblClaimEvents, for example when they mail merge a document request to a doctor, an event is created that shows the document request was created (the claim state did not change). This kind of Event / Status system can be used in many different businesses and classes can help you build such a system. John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...when I first ran across jc many long years ago when he was still playing > expatriate down in old Mexico, I purchased his first jit sample mdb with > documentation ...great sample much of which I still use today ...but the > document was the most obtuse thing I'd tried to read in ages ...and I've > poked him more than a few times over the years when he starts talking above > my head again ...but I must admit he's learned a trick or two over that time > :) > > ...as for the lessons, I'm barking up his shins and afraid to go any further > north lest I find something truly hairy ...I've used With Events since > Shamil first started hawking them on this list but never got into classes > with Access ...so far today I've managed to get a couple classes working in > in a major rewrite of a client app I'm doing and quite pleased with the > results so far. > > William From fuller.artful at gmail.com Thu Feb 12 14:37:17 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Thu, 12 Feb 2009 15:37:17 -0500 Subject: [AccessD] EMERGENCY HALT: was Re: The form for demo event sink in two places In-Reply-To: <499431BA.3000903@colbyconsulting.com> References: <49942FF7.5050101@colbyconsulting.com> <499431BA.3000903@colbyconsulting.com> Message-ID: <29f585dd0902121237nbe645edn650ee16c1c7ad4cb@mail.gmail.com> That's pretty slick, JC. I have often had to fire events on another form, but this approach makes is ludicrously simple. A. From nd500_lo at charter.net Thu Feb 12 14:56:19 2009 From: nd500_lo at charter.net (Dian) Date: Thu, 12 Feb 2009 12:56:19 -0800 Subject: [AccessD] Classes and Events - Feedback In-Reply-To: <4991BF66.1080302@colbyconsulting.com> References: <4991BF66.1080302@colbyconsulting.com> Message-ID: <9782380737C74550B4B789C594B573EA@dsunit1> I'm studying...always looking to learn something new, so this is extremely interesting...ty for taking the time, John -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, February 10, 2009 9:55 AM To: Access Developers discussion and problem solving Subject: [AccessD] Classes and Events - Feedback Any "instructor" needs feedback on how they are doing. Just so I can get a feel for how much further to take this and in what detail, could I get a show of hands on who is following the thread. Perhaps: 1) Glancing at it 2) Reading each email 3) Studying each email 4) More detail would be nice 5) Detail is just about right 6) Too much detail 7) Irrelevant detail 8) How would I .... -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Thu Feb 12 15:07:21 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 12 Feb 2009 16:07:21 -0500 Subject: [AccessD] Pushing an object reference vs pulling a reference. In-Reply-To: <29f585dd0902121237nbe645edn650ee16c1c7ad4cb@mail.gmail.com> References: <49942FF7.5050101@colbyconsulting.com> <499431BA.3000903@colbyconsulting.com> <29f585dd0902121237nbe645edn650ee16c1c7ad4cb@mail.gmail.com> Message-ID: <49948F89.2080706@colbyconsulting.com> > That's pretty slick, JC. I have often had to fire events on another form, but this approach makes is ludicrously simple. Just fine other than the method of obtaining the reference back to the control... Another method is to create a method on the target form that the calling form can use to pass in the control. This allows the target form to be opened from any other form and the control to sink passed in. Paste the following code into frmDemoSinkingCommandButtonEvent. NOTICE that you are replacing the Open event of the form, and creating a brand new function mCmd() to use to pass the control that you want to sink events for. Public Function mCmd(lcmd As CommandButton) Set cmd = lcmd MsgBox cmd.Name End Function Private Sub Form_Load() On Error Resume Next End Sub Now, over in frmDemoCtls replace the form_Open with the following code: Private Sub Form_Open(Cancel As Integer) Set fclsFrm = New clsFrm fclsFrm.mInit Me DoCmd.OpenForm "frmDemoSinkingCommandButtonEvent" Forms!frmDemoSinkingCommandButtonEvent.mCmd Me!Command15 End Sub Close both forms and open frmDemoCtls. Notice that frmDemoSinkingCommandButtonEvent opens "before" frmDemoCtls. DoCmd.OpenForm "frmDemoSinkingCommandButtonEvent" In fact the form is being opened by frmDemoCtls and so appears to open first. Forms!frmDemoSinkingCommandButtonEvent.mCmd Me!Command15 In any event it then passes in me!Command15, a pointer to it's button and voila, instant communication. Done this way ANY form can open frmDemoSinkingCommandButtonEvent since frmDemoSinkingCommandButtonEvent no longer depends on a specific form being opened. As might be imagined, the first method is called "pulling" since the reference to the command button is being "pulled" into frmDemoSinkingCommandButtonEvent as it opens. The second method is called "pushing" since the opening form is pushing the control reference into frmDemoSinkingCommandButtonEvent after it opens it. John W. Colby www.ColbyConsulting.com Arthur Fuller wrote: > That's pretty slick, JC. I have often had to fire events on another form, > but this approach makes is ludicrously simple. > > A. From jwcolby at colbyconsulting.com Thu Feb 12 15:09:10 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 12 Feb 2009 16:09:10 -0500 Subject: [AccessD] Classes and Events - Feedback In-Reply-To: <9782380737C74550B4B789C594B573EA@dsunit1> References: <4991BF66.1080302@colbyconsulting.com> <9782380737C74550B4B789C594B573EA@dsunit1> Message-ID: <49948FF6.9060401@colbyconsulting.com> Good to have you with us Dian. How far along are you? Have you finished all of them? John W. Colby www.ColbyConsulting.com Dian wrote: > I'm studying...always looking to learn something new, so this is extremely > interesting...ty for taking the time, John > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, February 10, 2009 9:55 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Classes and Events - Feedback > > Any "instructor" needs feedback on how they are doing. Just so I can get a > feel for how much further to take this and in what detail, could I get a > show of hands on who is following the thread. > Perhaps: > > > 1) Glancing at it > 2) Reading each email > 3) Studying each email > > 4) More detail would be nice > 5) Detail is just about right > 6) Too much detail > 7) Irrelevant detail > > 8) How would I .... From fuller.artful at gmail.com Thu Feb 12 15:18:17 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Thu, 12 Feb 2009 16:18:17 -0500 Subject: [AccessD] More Class lectures? In-Reply-To: <49947DCE.701@colbyconsulting.com> References: <49944C57.6030308@colbyconsulting.com> <59F4C79E0A20B74990A3775EF2388A89422B002065@PDAWM03C.ad.sprint.com> <49947DCE.701@colbyconsulting.com> Message-ID: <29f585dd0902121318t502fea6ft806ddfdab8df6cc5@mail.gmail.com> I've gone all the way with you, JC, and this weekend I plan to try an experiment bearing on the "Sinking Events in Multiple Places" concept -- specifically, two related forms open and navigation on one causes parallel navigation on the other, so they stay in synch. Seems like a perfect application of this concept. Arthur From jwcolby at colbyconsulting.com Thu Feb 12 15:43:57 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 12 Feb 2009 16:43:57 -0500 Subject: [AccessD] More Class lectures? In-Reply-To: <29f585dd0902121318t502fea6ft806ddfdab8df6cc5@mail.gmail.com> References: <49944C57.6030308@colbyconsulting.com> <59F4C79E0A20B74990A3775EF2388A89422B002065@PDAWM03C.ad.sprint.com> <49947DCE.701@colbyconsulting.com> <29f585dd0902121318t502fea6ft806ddfdab8df6cc5@mail.gmail.com> Message-ID: <4994981D.3040303@colbyconsulting.com> Yep, that will work just fine. What is the implementation idea? I have a behavior that I actually have embedded in my framework where the dbl-Click event of the combo can cause a list form to open, navigate to the record in the combo, or if the combo item is "not in list" opens the list form in Add mode. Suppose that you have something being displayed in a combo box. Perhaps a name / SSN for a person. A user is trying to add people in a form using that combo, but notices that the name / ssn in the combo box appears to be correct but the SSN is off by a digit (just an example scenario). The user can select that person, then dbl click in the combo. The combo class has to have been fed a form to open in case of the dbl click. If it has, then the combo opens the form. Since the PKID is in column 0 of the combo, the combo class "passes in" the PKID of the person selected in the combo. The form as it opens, grabs the PKID and moves to that PKID and places the form into Edit mode. Voila, instant edit of exactly the correct record in another form. John W. Colby www.ColbyConsulting.com Arthur Fuller wrote: > I've gone all the way with you, JC, and this weekend I plan to try an > experiment bearing on the "Sinking Events in Multiple Places" concept -- > specifically, two related forms open and navigation on one causes parallel > navigation on the other, so they stay in synch. Seems like a perfect > application of this concept. > > Arthur From fuller.artful at gmail.com Thu Feb 12 16:01:09 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Thu, 12 Feb 2009 17:01:09 -0500 Subject: [AccessD] More Class lectures? In-Reply-To: <4994981D.3040303@colbyconsulting.com> References: <49944C57.6030308@colbyconsulting.com> <59F4C79E0A20B74990A3775EF2388A89422B002065@PDAWM03C.ad.sprint.com> <49947DCE.701@colbyconsulting.com> <29f585dd0902121318t502fea6ft806ddfdab8df6cc5@mail.gmail.com> <4994981D.3040303@colbyconsulting.com> Message-ID: <29f585dd0902121401l2d38affbl2eaf3e3d919e1251@mail.gmail.com> I've done that with the NotInList event too. I did it with a function that accepts the name of a form, but a class is a cleaner way to go. What I was thinking here is that I could have a customer form open and and orders+details form open at the same time, and that navigating on the customer form would automatically refresh the orders form, even though they are separate forms. The same thing could be done with the order details subform and the products form. Arthur On Thu, Feb 12, 2009 at 4:43 PM, jwcolby wrote: > Yep, that will work just fine. What is the implementation idea? > > I have a behavior that I actually have embedded in my framework where the > dbl-Click event of the > combo can cause a list form to open, navigate to the record in the combo, > or if the combo item is > "not in list" opens the list form in Add mode. > > Suppose that you have something being displayed in a combo box. Perhaps a > name / SSN for a person. > A user is trying to add people in a form using that combo, but notices that > the name / ssn in the > combo box appears to be correct but the SSN is off by a digit (just an > example scenario). The user > can select that person, then dbl click in the combo. The combo class has > to have been fed a form to > open in case of the dbl click. If it has, then the combo opens the form. > Since the PKID is in > column 0 of the combo, the combo class "passes in" the PKID of the person > selected in the combo. > > The form as it opens, grabs the PKID and moves to that PKID and places the > form into Edit mode. > Voila, instant edit of exactly the correct record in another form. > > John W. Colby > www.ColbyConsulting.com > > > Arthur Fuller wrote: > > I've gone all the way with you, JC, and this weekend I plan to try an > > experiment bearing on the "Sinking Events in Multiple Places" concept -- > > specifically, two related forms open and navigation on one causes > parallel > > navigation on the other, so they stay in synch. Seems like a perfect > > application of this concept. > > > > Arthur > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From nd500_lo at charter.net Thu Feb 12 16:13:07 2009 From: nd500_lo at charter.net (Dian) Date: Thu, 12 Feb 2009 14:13:07 -0800 Subject: [AccessD] Classes and Events - Feedback In-Reply-To: <49948FF6.9060401@colbyconsulting.com> References: <4991BF66.1080302@colbyconsulting.com><9782380737C74550B4B789C594B573EA@dsunit1> <49948FF6.9060401@colbyconsulting.com> Message-ID: I'm catching up...was in Santa Barbara with my folks for a couple of days...if I run into trouble, I WILL give a shout, but I'll be working through the last couple of emails this weekend. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Thursday, February 12, 2009 1:09 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Classes and Events - Feedback Good to have you with us Dian. How far along are you? Have you finished all of them? John W. Colby www.ColbyConsulting.com Dian wrote: > I'm studying...always looking to learn something new, so this is > extremely interesting...ty for taking the time, John > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, February 10, 2009 9:55 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Classes and Events - Feedback > > Any "instructor" needs feedback on how they are doing. Just so I can > get a feel for how much further to take this and in what detail, could > I get a show of hands on who is following the thread. > Perhaps: > > > 1) Glancing at it > 2) Reading each email > 3) Studying each email > > 4) More detail would be nice > 5) Detail is just about right > 6) Too much detail > 7) Irrelevant detail > > 8) How would I .... -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Thu Feb 12 16:21:21 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 12 Feb 2009 17:21:21 -0500 Subject: [AccessD] More Class lectures? In-Reply-To: <29f585dd0902121401l2d38affbl2eaf3e3d919e1251@mail.gmail.com> References: <49944C57.6030308@colbyconsulting.com> <59F4C79E0A20B74990A3775EF2388A89422B002065@PDAWM03C.ad.sprint.com> <49947DCE.701@colbyconsulting.com> <29f585dd0902121318t502fea6ft806ddfdab8df6cc5@mail.gmail.com> <4994981D.3040303@colbyconsulting.com> <29f585dd0902121401l2d38affbl2eaf3e3d919e1251@mail.gmail.com> Message-ID: <4994A0E1.3020000@colbyconsulting.com> I would suggest that kind of behavior is much easier to implement by using the message class that I floated past a few weeks ago. Given that many of you were not using classes, that email might have gone right over your head. The basics are that we have a class that raises events which I call "messages". The clsMsg is a global class that any class can grab a pointer to. The clsMsg has a method to call which sends a message, and raises the Message event whenever anyone calls that message. That class has an "email" like syntax, with a From, To, Subject and Body variables. So... Customer form grabs a pointer to clsMsg. Orders form grabs a pointer to clsMsg. Customer form calls the Message event of clsMsg, passing off it's form name (frmCustomer) in the from field, the name of the form that the message is intended for (frmOrders) in the To field, and perhaps the CustomerID in the Subject field. The order form is sinking the Message event. Its message sink gets every message going by, but it filters on the To field looking for its own name in the To field. If it sees a message with its name in the To field, it then grabs the CustomerID out of the subject field and uses that to look up the correct customer's orders. Notice that this message class (which I actually have in my framework and use in my applications) is a "generic" communication channel between parts of your program. I will send it along in the next email. John W. Colby www.ColbyConsulting.com Arthur Fuller wrote: > I've done that with the NotInList event too. I did it with a function that > accepts the name of a form, but a class is a cleaner way to go. > > What I was thinking here is that I could have a customer form open and and > orders+details form open at the same time, and that navigating on the > customer form would automatically refresh the orders form, even though they > are separate forms. The same thing could be done with the order details > subform and the products form. > > Arthur > > On Thu, Feb 12, 2009 at 4:43 PM, jwcolby wrote: > >> Yep, that will work just fine. What is the implementation idea? >> >> I have a behavior that I actually have embedded in my framework where the >> dbl-Click event of the >> combo can cause a list form to open, navigate to the record in the combo, >> or if the combo item is >> "not in list" opens the list form in Add mode. >> >> Suppose that you have something being displayed in a combo box. Perhaps a >> name / SSN for a person. >> A user is trying to add people in a form using that combo, but notices that >> the name / ssn in the >> combo box appears to be correct but the SSN is off by a digit (just an >> example scenario). The user >> can select that person, then dbl click in the combo. The combo class has >> to have been fed a form to >> open in case of the dbl click. If it has, then the combo opens the form. >> Since the PKID is in >> column 0 of the combo, the combo class "passes in" the PKID of the person >> selected in the combo. >> >> The form as it opens, grabs the PKID and moves to that PKID and places the >> form into Edit mode. >> Voila, instant edit of exactly the correct record in another form. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Arthur Fuller wrote: >>> I've gone all the way with you, JC, and this weekend I plan to try an >>> experiment bearing on the "Sinking Events in Multiple Places" concept -- >>> specifically, two related forms open and navigation on one causes >> parallel >>> navigation on the other, so they stay in synch. Seems like a perfect >>> application of this concept. >>> >>> Arthur >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> From Donald.A.McGillivray at sprint.com Thu Feb 12 16:58:31 2009 From: Donald.A.McGillivray at sprint.com (McGillivray, Don [IT]) Date: Thu, 12 Feb 2009 16:58:31 -0600 Subject: [AccessD] More Class lectures? In-Reply-To: <4994A0E1.3020000@colbyconsulting.com> References: <49944C57.6030308@colbyconsulting.com> <59F4C79E0A20B74990A3775EF2388A89422B002065@PDAWM03C.ad.sprint.com> <49947DCE.701@colbyconsulting.com> <29f585dd0902121318t502fea6ft806ddfdab8df6cc5@mail.gmail.com> <4994981D.3040303@colbyconsulting.com> <29f585dd0902121401l2d38affbl2eaf3e3d919e1251@mail.gmail.com> <4994A0E1.3020000@colbyconsulting.com> Message-ID: <59F4C79E0A20B74990A3775EF2388A89422B002699@PDAWM03C.ad.sprint.com> John, I swiped that class off ya some time back. I use it to send progress update messages from a long running procedure back to the form that triggers it. Before I implemented that, I used a separate function that accepted the message string and placed it on the form if it was open. I'm chagrined to admit that I've never really taken the time to understand exactly how it works. I do recall that I tweaked it slightly so that I can target messages to specific text boxes on the target form (i.e., file being processed, main process, sub-process, etc.), so I guess I understood something. Now, thanks to your efforts, it's all getting clearer . . . Don -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Thursday, February 12, 2009 2:21 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] More Class lectures? I would suggest that kind of behavior is much easier to implement by using the message class that I floated past a few weeks ago. Given that many of you were not using classes, that email might have gone right over your head. The basics are that we have a class that raises events which I call "messages". The clsMsg is a global class that any class can grab a pointer to. The clsMsg has a method to call which sends a message, and raises the Message event whenever anyone calls that message. That class has an "email" like syntax, with a From, To, Subject and Body variables. So... Customer form grabs a pointer to clsMsg. Orders form grabs a pointer to clsMsg. Customer form calls the Message event of clsMsg, passing off it's form name (frmCustomer) in the from field, the name of the form that the message is intended for (frmOrders) in the To field, and perhaps the CustomerID in the Subject field. The order form is sinking the Message event. Its message sink gets every message going by, but it filters on the To field looking for its own name in the To field. If it sees a message with its name in the To field, it then grabs the CustomerID out of the subject field and uses that to look up the correct customer's orders. Notice that this message class (which I actually have in my framework and use in my applications) is a "generic" communication channel between parts of your program. I will send it along in the next email. John W. Colby www.ColbyConsulting.com Arthur Fuller wrote: > I've done that with the NotInList event too. I did it with a function that > accepts the name of a form, but a class is a cleaner way to go. > > What I was thinking here is that I could have a customer form open and and > orders+details form open at the same time, and that navigating on the > customer form would automatically refresh the orders form, even though they > are separate forms. The same thing could be done with the order details > subform and the products form. > > Arthur > > On Thu, Feb 12, 2009 at 4:43 PM, jwcolby wrote: > >> Yep, that will work just fine. What is the implementation idea? >> >> I have a behavior that I actually have embedded in my framework where the >> dbl-Click event of the >> combo can cause a list form to open, navigate to the record in the combo, >> or if the combo item is >> "not in list" opens the list form in Add mode. >> >> Suppose that you have something being displayed in a combo box. Perhaps a >> name / SSN for a person. >> A user is trying to add people in a form using that combo, but notices that >> the name / ssn in the >> combo box appears to be correct but the SSN is off by a digit (just an >> example scenario). The user >> can select that person, then dbl click in the combo. The combo class has >> to have been fed a form to >> open in case of the dbl click. If it has, then the combo opens the form. >> Since the PKID is in >> column 0 of the combo, the combo class "passes in" the PKID of the person >> selected in the combo. >> >> The form as it opens, grabs the PKID and moves to that PKID and places the >> form into Edit mode. >> Voila, instant edit of exactly the correct record in another form. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Arthur Fuller wrote: >>> I've gone all the way with you, JC, and this weekend I plan to try an >>> experiment bearing on the "Sinking Events in Multiple Places" concept -- >>> specifically, two related forms open and navigation on one causes >> parallel >>> navigation on the other, so they stay in synch. Seems like a perfect >>> application of this concept. >>> >>> Arthur >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com This e-mail may contain Sprint Nextel Company proprietary information intended for the sole use of the recipient(s). Any use by others is prohibited. If you are not the intended recipient, please contact the sender and delete all copies of the message. From terry.mace at baesystems.com Thu Feb 12 17:08:37 2009 From: terry.mace at baesystems.com (MACE, Terry) Date: Fri, 13 Feb 2009 10:08:37 +1100 Subject: [AccessD] the form for A97 In-Reply-To: <200902121024.n1CAO3UY002424@bunya.baea.com.au> References: <200902121024.n1CAO3UY002424@bunya.baea.com.au> Message-ID: <3881CF7F5868CA419AAF1179D19F6BAC02B52D3F@abw3ex1.au.baesystems.com> Gustav, Thanks, works fine in A97 Regards Terry Mace Logistics Support Officer & Maintenance Supervisor -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Thursday, 12 February 2009 9:23 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] the form for A97 Hi Terry and John SaveAsText acForm, "frmName", "Form97.txt" and LoadFromText acForm, "frmName", "Form97.txt" work nicely in A97 as well, though undocumented. Below please find the form for A97. /gustav Version = 17 VersionRequired = 17 Checksum = -930099809 Begin Form DefaultView = 0 RecordLocks = 2 TabularFamily = 0 PictureAlignment = 2 DatasheetGridlinesBehavior = 3 GridX = 24 GridY = 24 Width = 3240 DatasheetFontHeight = 10 ItemSuffix = 20 DatasheetGridlinesColor = 12632256 RecSrcDt = Begin 0x3a86509cea75e340 End OnOpen ="[Event Procedure]" DatasheetFontName ="Arial" Begin Begin Label BackStyle = 0 FontName ="Tahoma" End Begin CommandButton FontSize = 8 FontWeight = 400 ForeColor = -2147483630 FontName ="Tahoma" End Begin OptionButton SpecialEffect = 2 LabelX = 230 LabelY = -30 End Begin CheckBox SpecialEffect = 2 LabelX = 230 LabelY = -30 End Begin OptionGroup SpecialEffect = 3 End Begin TextBox SpecialEffect = 2 OldBorderStyle = 0 FontName ="Tahoma" End Begin ListBox SpecialEffect = 2 FontName ="Tahoma" End Begin ComboBox SpecialEffect = 2 FontName ="Tahoma" End Begin ToggleButton FontSize = 8 FontWeight = 400 ForeColor = -2147483630 FontName ="Tahoma" End Begin Section Height = 5100 BackColor = -2147483633 Name ="Detail" Begin Begin TextBox OverlapFlags = 85 Left = 660 Top = 360 Name ="Text1" Begin Begin Label OverlapFlags = 85 Left = 60 Top = 360 Width = 555 Height = 240 Name ="Label2" Caption ="Text1:" End End End Begin Label OverlapFlags = 85 Left = 60 Top = 60 Width = 2220 Height = 210 Name ="Label3" Caption ="Label" End Begin OptionGroup OverlapFlags = 85 Left = 480 Top = 3360 Height = 480 TabIndex = 7 Name ="Frame4" Begin Begin Label BackStyle = 1 OverlapFlags = 215 Left = 600 Top = 3240 Width = 615 Height = 240 BackColor = -2147483633 Name ="Label5" Caption ="Frame4" End End End Begin ToggleButton OverlapFlags = 85 Left = 780 Top = 3960 TabIndex = 8 Name ="Toggle6" End Begin OptionButton OverlapFlags = 85 Left = 960 Top = 2550 TabIndex = 5 Name ="Option7" Begin Begin Label OverlapFlags = 247 Left = 1190 Top = 2520 Width = 645 Height = 240 Name ="Label8" Caption ="Option7" End End End Begin CheckBox OverlapFlags = 85 Left = 960 Top = 2940 TabIndex = 6 Name ="Check9" Begin Begin Label OverlapFlags = 247 Left = 1190 Top = 2910 Width = 600 Height = 240 Name ="Label10" Caption ="Check9" End End End Begin ComboBox OverlapFlags = 85 Left = 960 Top = 660 TabIndex = 1 Name ="Combo11" RowSourceType ="Table/Query" Begin Begin Label OverlapFlags = 85 Left = 60 Top = 660 Width = 810 Height = 240 Name ="Label12" Caption ="Combo11:" End End End Begin ListBox OverlapFlags = 85 Left = 960 Top = 1680 Height = 600 TabIndex = 4 Name ="List13" RowSourceType ="Table/Query" Begin Begin Label OverlapFlags = 85 Left = 60 Top = 1680 Width = 555 Height = 240 Name ="Label14" Caption ="List13:" End End End Begin CommandButton OverlapFlags = 85 Left = 480 Top = 4740 TabIndex = 9 Name ="Command15" Caption ="Command15" End Begin ComboBox OverlapFlags = 85 Left = 960 Top = 1020 TabIndex = 2 Name ="Combo16" RowSourceType ="Table/Query" Begin Begin Label OverlapFlags = 85 Left = 60 Top = 1020 Width = 810 Height = 240 Name ="Label17" Caption ="Combo11:" End End End Begin ComboBox OverlapFlags = 85 Left = 960 Top = 1380 TabIndex = 3 Name ="Combo18" RowSourceType ="Table/Query" Begin Begin Label OverlapFlags = 85 Left = 60 Top = 1380 Width = 810 Height = 240 Name ="Label19" Caption ="Combo11:" End End End End End End End CodeBehindForm Option Compare Database Option Explicit Public fclsFrm As clsFrm Private Sub Form_Open(Cancel As Integer) Set fclsFrm = New clsFrm fclsFrm.mInit Me End Sub -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com "Warning: The information contained in this email and any attached files is confidential to BAE Systems Australia. If you are not the intended recipient, any use, disclosure or copying of this email or any attachments is expressly prohibited. If you have received this email in error, please notify us immediately. VIRUS: Every care has been taken to ensure this email and its attachments are virus free, however, any loss or damage incurred in using this email is not the sender's responsibility. It is your responsibility to ensure virus checks are completed before installing any data sent in this email to your computer." From jwcolby at colbyconsulting.com Thu Feb 12 17:21:06 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 12 Feb 2009 18:21:06 -0500 Subject: [AccessD] ClsMsg Message-ID: <4994AEE2.8010204@colbyconsulting.com> THE MESSAGE CLASS The following class demonstrates raising events. It is about as simple a class as you will find. It has a pair of events that it can raise, and a pair of methods that can be called and passed in variables. The methods simply raise the event and pass along the variables passed in. ? In the demo database, click Insert / Class. ? Cut and paste the following code into that class Option Compare Database Option Explicit Public Event Message(varFrom As Variant, varTo As Variant, _ varSubj As Variant, varMsg As Variant) Public Event MessageSimple(varMsg As Variant) Function Send(varFrom As Variant, varTo As Variant, _ varSubj As Variant, varMsg As Variant) RaiseEvent Message(varFrom, varTo, varSubj, varMsg) ' Debug.Print "From: " & varFrom & vbCrLf & "To: " & varTo & vbCrLf & "Subj: " & varSubj & vbCrLf & "Msg: " & varMsg End Function Function SendSimple(varMsg As Variant) RaiseEvent MessageSimple(varMsg) ' Debug.Print varMsg End Function ? Compile and save the class as clsMsg Public Event Message(varFrom As Variant, varTo As Variant, _ varSubj As Variant, varMsg As Variant) Public Event MessageSimple(varMsg As Variant) Here we have defined TWO events that this class can raise. Notice that we are defining several parameters that the Event will pass along to the event sink. Function Send(varFrom As Variant, varTo As Variant, _ varSubj As Variant, varMsg As Variant) RaiseEvent Message(varFrom, varTo, varSubj, varMsg) ' Debug.Print "From: " & varFrom & vbCrLf & "To: " & varTo & vbCrLf & "Subj: " & varSubj & vbCrLf & "Msg: " & varMsg End Function This is the first event and mimics an email with a From, To, Subject, and Body. Function SendSimple(varMsg As Variant) RaiseEvent MessageSimple(varMsg) ' Debug.Print varMsg End Function This code is a very simple send routine that just passes along a variable. ? In this case we need to build a module to initialize and tear down this message class. Click Insert / Module. ? Cut and paste the following code into that module. Private mclsMsg As clsMsg Function mMsgInit() If mclsMsg Is Nothing Then Set mclsMsg = New clsMsg End If End Function Function mMsgTerm() Set mclsMsg = Nothing End Function Function cMsg() As clsMsg mMsgInit Set cMsg = mclsMsg End Function ? Compile and save as basInitMsg. Private mclsMsg As clsMsg Notice that we have a PRIVATE global variable mclsMsg. Function mMsgInit() If mclsMsg Is Nothing Then Set mclsMsg = New clsMsg End If End Function Here we have a function that initializes the mclsMsg variable ONLY IF the pointer is not already initialized. Function mMsgTerm() Set mclsMsg = Nothing End Function Here we have a function that will clean up the class whenever we no longer need it. Function cMsg() As clsMsg mMsgInit Set cMsg = mclsMsg End Function This function gets the pointer to the class, initializing it if it isn?t already initialized. This email defines a new clsMsg. This class can raise two events, a msg and a msgSimple. Each can pass on parameters. We also define a module where we can set up, tear down, and get a pointer to the message class. I will create a demo for this class later tonight. -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Thu Feb 12 18:46:36 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 12 Feb 2009 19:46:36 -0500 Subject: [AccessD] More Class lectures? In-Reply-To: <29f585dd0902121401l2d38affbl2eaf3e3d919e1251@mail.gmail.com> References: <49944C57.6030308@colbyconsulting.com> <59F4C79E0A20B74990A3775EF2388A89422B002065@PDAWM03C.ad.sprint.com> <49947DCE.701@colbyconsulting.com> <29f585dd0902121318t502fea6ft806ddfdab8df6cc5@mail.gmail.com> <4994981D.3040303@colbyconsulting.com> <29f585dd0902121401l2d38affbl2eaf3e3d919e1251@mail.gmail.com> Message-ID: <4994C2EC.3030407@colbyconsulting.com> Arthur, OK, so now that you have a message class, dimension a variable WithEvents in both of the form's headers. Private WithEvents fclsMsg As clsMsg In the orders form build an event sink for the clsMsg: Private Sub fclsMsg_Message(varFrom As Variant, varTo As Variant, varSubj As Variant, varMsg As Variant) If varFrom = "frmCustomers" Then If varTo = "frmOrders" Then If varsubject = "CustomerID" Then 'Sync frmOrders to CustomerID End If End If End If End Sub Notice that the sender (frmCustomer) has to call the clsMsg.Message and pass in a string with its name in From, the order form's name in To, "customerID" in varSubject, and the CustomerID itself (a long?) in varMsg. Private Sub Form_Current() Dim lngCustomerID lngCustomerID = 1 fclsMsg.Send Me.Name, "FrmOrders", "CustomerID", lngCustomerID End Sub John W. Colby www.ColbyConsulting.com Arthur Fuller wrote: > I've done that with the NotInList event too. I did it with a function that > accepts the name of a form, but a class is a cleaner way to go. > > What I was thinking here is that I could have a customer form open and and > orders+details form open at the same time, and that navigating on the > customer form would automatically refresh the orders form, even though they > are separate forms. The same thing could be done with the order details > subform and the products form. > > Arthur > > On Thu, Feb 12, 2009 at 4:43 PM, jwcolby wrote: > >> Yep, that will work just fine. What is the implementation idea? >> >> I have a behavior that I actually have embedded in my framework where the >> dbl-Click event of the >> combo can cause a list form to open, navigate to the record in the combo, >> or if the combo item is >> "not in list" opens the list form in Add mode. >> >> Suppose that you have something being displayed in a combo box. Perhaps a >> name / SSN for a person. >> A user is trying to add people in a form using that combo, but notices that >> the name / ssn in the >> combo box appears to be correct but the SSN is off by a digit (just an >> example scenario). The user >> can select that person, then dbl click in the combo. The combo class has >> to have been fed a form to >> open in case of the dbl click. If it has, then the combo opens the form. >> Since the PKID is in >> column 0 of the combo, the combo class "passes in" the PKID of the person >> selected in the combo. >> >> The form as it opens, grabs the PKID and moves to that PKID and places the >> form into Edit mode. >> Voila, instant edit of exactly the correct record in another form. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Arthur Fuller wrote: >>> I've gone all the way with you, JC, and this weekend I plan to try an >>> experiment bearing on the "Sinking Events in Multiple Places" concept -- >>> specifically, two related forms open and navigation on one causes >> parallel >>> navigation on the other, so they stay in synch. Seems like a perfect >>> application of this concept. >>> >>> Arthur >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> From terry.mace at baesystems.com Thu Feb 12 22:29:39 2009 From: terry.mace at baesystems.com (MACE, Terry) Date: Fri, 13 Feb 2009 15:29:39 +1100 Subject: [AccessD] More Class lectures? In-Reply-To: <200902121621.n1CGLklL019661@bunya.baea.com.au> References: <200902121621.n1CGLklL019661@bunya.baea.com.au> Message-ID: <3881CF7F5868CA419AAF1179D19F6BAC02B52E1D@abw3ex1.au.baesystems.com> JC, So far my work load has allowed me to keep up with you, and the pace is about right for me to work out what is going on, although I did have to have quick read of Don's reply to realise why the last sample didn't work. I've managed to put the remote sinking into my A97dB and get it working from scratch - so you doing well at instructing. Regards Terry Mace Logistics Support Officer & Maintenance Supervisor -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, 13 February 2009 3:21 AM To: Access Developers discussion and problem solving Subject: [AccessD] More Class lectures? As you might guess, I have spent a fair amount of time writing up this series of class lectures. I really need to know that the time is well spent. I am asking everybody that has actually studied any of the lectures to please respond by Monday and let me know how far you have gotten in the series. This gives the weekend those who need more time to take a look. This will allow me to determine how to proceed. I understand that many people just flat do not have the time now, but I also know that people make time for what they want or need to learn, and I have intentionally broken down the lectures such that each one should take well under an hour to absorb, in fact many of them should be well under a half hour. Please understand that it is perfectly fine to decide that this isn't something you care about, but if you do care then all there is is today. My own experience says that if I never get started I never get it done. I really do not want to seem like I am nagging people to do this, but I need some feedback saying that people are actually studying this stuff in order for me to do more. I also need to know how far people have gotten to determine whether I am way ahead of the curve or there are people right on my heels so to speak, waiting for more. Just a quick email telling me where you are would be a huge help to me. Thanks guys, -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com "Warning: The information contained in this email and any attached files is confidential to BAE Systems Australia. If you are not the intended recipient, any use, disclosure or copying of this email or any attachments is expressly prohibited. If you have received this email in error, please notify us immediately. VIRUS: Every care has been taken to ensure this email and its attachments are virus free, however, any loss or damage incurred in using this email is not the sender's responsibility. It is your responsibility to ensure virus checks are completed before installing any data sent in this email to your computer." From terry.mace at baesystems.com Thu Feb 12 23:04:19 2009 From: terry.mace at baesystems.com (MACE, Terry) Date: Fri, 13 Feb 2009 16:04:19 +1100 Subject: [AccessD] the form for A97 In-Reply-To: <200902122311.n1CNBTAV026918@bunya.baea.com.au> References: <200902121024.n1CAO3UY002424@bunya.baea.com.au> <200902122311.n1CNBTAV026918@bunya.baea.com.au> Message-ID: <3881CF7F5868CA419AAF1179D19F6BAC02B52E31@abw3ex1.au.baesystems.com> Gustav, The last txt form that JC sent out I tried to get working in A97 using the code you sent, and using A97 or A2003 I couldn't create a text file that would load a form into A97. How did you generate the A97 text file that you sent out? Regards Terry Mace Logistics Support Officer & Maintenance Supervisor -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of MACE, Terry Sent: Friday, 13 February 2009 10:09 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] the form for A97 Gustav, Thanks, works fine in A97 Regards Terry Mace Logistics Support Officer & Maintenance Supervisor -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Thursday, 12 February 2009 9:23 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] the form for A97 Hi Terry and John SaveAsText acForm, "frmName", "Form97.txt" and LoadFromText acForm, "frmName", "Form97.txt" work nicely in A97 as well, though undocumented. Below please find the form for A97. /gustav Version = 17 VersionRequired = 17 Checksum = -930099809 Begin Form DefaultView = 0 RecordLocks = 2 TabularFamily = 0 PictureAlignment = 2 DatasheetGridlinesBehavior = 3 GridX = 24 GridY = 24 Width = 3240 DatasheetFontHeight = 10 ItemSuffix = 20 DatasheetGridlinesColor = 12632256 RecSrcDt = Begin 0x3a86509cea75e340 End OnOpen ="[Event Procedure]" DatasheetFontName ="Arial" Begin Begin Label BackStyle = 0 FontName ="Tahoma" End Begin CommandButton FontSize = 8 FontWeight = 400 ForeColor = -2147483630 FontName ="Tahoma" End Begin OptionButton SpecialEffect = 2 LabelX = 230 LabelY = -30 End Begin CheckBox SpecialEffect = 2 LabelX = 230 LabelY = -30 End Begin OptionGroup SpecialEffect = 3 End Begin TextBox SpecialEffect = 2 OldBorderStyle = 0 FontName ="Tahoma" End Begin ListBox SpecialEffect = 2 FontName ="Tahoma" End Begin ComboBox SpecialEffect = 2 FontName ="Tahoma" End Begin ToggleButton FontSize = 8 FontWeight = 400 ForeColor = -2147483630 FontName ="Tahoma" End Begin Section Height = 5100 BackColor = -2147483633 Name ="Detail" Begin Begin TextBox OverlapFlags = 85 Left = 660 Top = 360 Name ="Text1" Begin Begin Label OverlapFlags = 85 Left = 60 Top = 360 Width = 555 Height = 240 Name ="Label2" Caption ="Text1:" End End End Begin Label OverlapFlags = 85 Left = 60 Top = 60 Width = 2220 Height = 210 Name ="Label3" Caption ="Label" End Begin OptionGroup OverlapFlags = 85 Left = 480 Top = 3360 Height = 480 TabIndex = 7 Name ="Frame4" Begin Begin Label BackStyle = 1 OverlapFlags = 215 Left = 600 Top = 3240 Width = 615 Height = 240 BackColor = -2147483633 Name ="Label5" Caption ="Frame4" End End End Begin ToggleButton OverlapFlags = 85 Left = 780 Top = 3960 TabIndex = 8 Name ="Toggle6" End Begin OptionButton OverlapFlags = 85 Left = 960 Top = 2550 TabIndex = 5 Name ="Option7" Begin Begin Label OverlapFlags = 247 Left = 1190 Top = 2520 Width = 645 Height = 240 Name ="Label8" Caption ="Option7" End End End Begin CheckBox OverlapFlags = 85 Left = 960 Top = 2940 TabIndex = 6 Name ="Check9" Begin Begin Label OverlapFlags = 247 Left = 1190 Top = 2910 Width = 600 Height = 240 Name ="Label10" Caption ="Check9" End End End Begin ComboBox OverlapFlags = 85 Left = 960 Top = 660 TabIndex = 1 Name ="Combo11" RowSourceType ="Table/Query" Begin Begin Label OverlapFlags = 85 Left = 60 Top = 660 Width = 810 Height = 240 Name ="Label12" Caption ="Combo11:" End End End Begin ListBox OverlapFlags = 85 Left = 960 Top = 1680 Height = 600 TabIndex = 4 Name ="List13" RowSourceType ="Table/Query" Begin Begin Label OverlapFlags = 85 Left = 60 Top = 1680 Width = 555 Height = 240 Name ="Label14" Caption ="List13:" End End End Begin CommandButton OverlapFlags = 85 Left = 480 Top = 4740 TabIndex = 9 Name ="Command15" Caption ="Command15" End Begin ComboBox OverlapFlags = 85 Left = 960 Top = 1020 TabIndex = 2 Name ="Combo16" RowSourceType ="Table/Query" Begin Begin Label OverlapFlags = 85 Left = 60 Top = 1020 Width = 810 Height = 240 Name ="Label17" Caption ="Combo11:" End End End Begin ComboBox OverlapFlags = 85 Left = 960 Top = 1380 TabIndex = 3 Name ="Combo18" RowSourceType ="Table/Query" Begin Begin Label OverlapFlags = 85 Left = 60 Top = 1380 Width = 810 Height = 240 Name ="Label19" Caption ="Combo11:" End End End End End End End CodeBehindForm Option Compare Database Option Explicit Public fclsFrm As clsFrm Private Sub Form_Open(Cancel As Integer) Set fclsFrm = New clsFrm fclsFrm.mInit Me End Sub -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com "Warning: The information contained in this email and any attached files is confidential to BAE Systems Australia. If you are not the intended recipient, any use, disclosure or copying of this email or any attachments is expressly prohibited. If you have received this email in error, please notify us immediately. VIRUS: Every care has been taken to ensure this email and its attachments are virus free, however, any loss or damage incurred in using this email is not the sender's responsibility. It is your responsibility to ensure virus checks are completed before installing any data sent in this email to your computer." -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com "Warning: The information contained in this email and any attached files is confidential to BAE Systems Australia. If you are not the intended recipient, any use, disclosure or copying of this email or any attachments is expressly prohibited. If you have received this email in error, please notify us immediately. VIRUS: Every care has been taken to ensure this email and its attachments are virus free, however, any loss or damage incurred in using this email is not the sender's responsibility. It is your responsibility to ensure virus checks are completed before installing any data sent in this email to your computer." From jwcolby at colbyconsulting.com Thu Feb 12 23:04:47 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 13 Feb 2009 00:04:47 -0500 Subject: [AccessD] More Class lectures? In-Reply-To: <3881CF7F5868CA419AAF1179D19F6BAC02B52E1D@abw3ex1.au.baesystems.com> References: <200902121621.n1CGLklL019661@bunya.baea.com.au> <3881CF7F5868CA419AAF1179D19F6BAC02B52E1D@abw3ex1.au.baesystems.com> Message-ID: <4994FF6F.6040902@colbyconsulting.com> > I've managed to put the remote sinking into my A97dB and get it working from scratch - so you doing well at instructing. Wow, I guess I am doing alright. Just a word of warning, there is one difference between the pre 2002 version and the 2002 and later version, which is that if you sink an event in multiple places, the order that they get control will be backwards. IIRC (and I will have to experiment), in Access 97 and 2K the first sink to get dimensioned and set will be the last to receive control, whereas in 2002 and later it will be the first to get control. As you might imagine, this makes for some coding issues if the order that the event sinks run makes a difference. Just something to keep in mind. John W. Colby www.ColbyConsulting.com MACE, Terry wrote: > JC, > > So far my work load has allowed me to keep up with you, and the pace is > about right for me to work out what is going on, although I did have to > have quick read of Don's reply to realise why the last sample didn't > work. > > I've managed to put the remote sinking into my A97dB and get it working > from scratch - so you doing well at instructing. > > Regards > > Terry Mace > Logistics Support Officer & Maintenance Supervisor From Gustav at cactus.dk Fri Feb 13 04:55:04 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Fri, 13 Feb 2009 11:55:04 +0100 Subject: [AccessD] the form for A97 Message-ID: Hi Terry Easy! The same way as in newer versions: SaveAsText acForm, "frmName", "Form97.txt" /gustav >>> terry.mace at baesystems.com 13-02-2009 06:04 >>> Gustav, The last txt form that JC sent out I tried to get working in A97 using the code you sent, and using A97 or A2003 I couldn't create a text file that would load a form into A97. How did you generate the A97 text file that you sent out? Regards Terry Mace Logistics Support Officer & Maintenance Supervisor -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of MACE, Terry Sent: Friday, 13 February 2009 10:09 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] the form for A97 Gustav, Thanks, works fine in A97 Regards Terry Mace Logistics Support Officer & Maintenance Supervisor -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Thursday, 12 February 2009 9:23 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] the form for A97 Hi Terry and John SaveAsText acForm, "frmName", "Form97.txt" and LoadFromText acForm, "frmName", "Form97.txt" work nicely in A97 as well, though undocumented. Below please find the form for A97. /gustav Version = 17 VersionRequired = 17 Checksum = -930099809 Begin Form DefaultView = 0 RecordLocks = 2 TabularFamily = 0 PictureAlignment = 2 DatasheetGridlinesBehavior = 3 GridX = 24 GridY = 24 Width = 3240 DatasheetFontHeight = 10 ItemSuffix = 20 DatasheetGridlinesColor = 12632256 RecSrcDt = Begin 0x3a86509cea75e340 End OnOpen ="[Event Procedure]" DatasheetFontName ="Arial" Begin Begin Label BackStyle = 0 FontName ="Tahoma" End Begin CommandButton FontSize = 8 FontWeight = 400 ForeColor = -2147483630 FontName ="Tahoma" End Begin OptionButton SpecialEffect = 2 LabelX = 230 LabelY = -30 End Begin CheckBox SpecialEffect = 2 LabelX = 230 LabelY = -30 End Begin OptionGroup SpecialEffect = 3 End Begin TextBox SpecialEffect = 2 OldBorderStyle = 0 FontName ="Tahoma" End Begin ListBox SpecialEffect = 2 FontName ="Tahoma" End Begin ComboBox SpecialEffect = 2 FontName ="Tahoma" End Begin ToggleButton FontSize = 8 FontWeight = 400 ForeColor = -2147483630 FontName ="Tahoma" End Begin Section Height = 5100 BackColor = -2147483633 Name ="Detail" Begin Begin TextBox OverlapFlags = 85 Left = 660 Top = 360 Name ="Text1" Begin Begin Label OverlapFlags = 85 Left = 60 Top = 360 Width = 555 Height = 240 Name ="Label2" Caption ="Text1:" End End End Begin Label OverlapFlags = 85 Left = 60 Top = 60 Width = 2220 Height = 210 Name ="Label3" Caption ="Label" End Begin OptionGroup OverlapFlags = 85 Left = 480 Top = 3360 Height = 480 TabIndex = 7 Name ="Frame4" Begin Begin Label BackStyle = 1 OverlapFlags = 215 Left = 600 Top = 3240 Width = 615 Height = 240 BackColor = -2147483633 Name ="Label5" Caption ="Frame4" End End End Begin ToggleButton OverlapFlags = 85 Left = 780 Top = 3960 TabIndex = 8 Name ="Toggle6" End Begin OptionButton OverlapFlags = 85 Left = 960 Top = 2550 TabIndex = 5 Name ="Option7" Begin Begin Label OverlapFlags = 247 Left = 1190 Top = 2520 Width = 645 Height = 240 Name ="Label8" Caption ="Option7" End End End Begin CheckBox OverlapFlags = 85 Left = 960 Top = 2940 TabIndex = 6 Name ="Check9" Begin Begin Label OverlapFlags = 247 Left = 1190 Top = 2910 Width = 600 Height = 240 Name ="Label10" Caption ="Check9" End End End Begin ComboBox OverlapFlags = 85 Left = 960 Top = 660 TabIndex = 1 Name ="Combo11" RowSourceType ="Table/Query" Begin Begin Label OverlapFlags = 85 Left = 60 Top = 660 Width = 810 Height = 240 Name ="Label12" Caption ="Combo11:" End End End Begin ListBox OverlapFlags = 85 Left = 960 Top = 1680 Height = 600 TabIndex = 4 Name ="List13" RowSourceType ="Table/Query" Begin Begin Label OverlapFlags = 85 Left = 60 Top = 1680 Width = 555 Height = 240 Name ="Label14" Caption ="List13:" End End End Begin CommandButton OverlapFlags = 85 Left = 480 Top = 4740 TabIndex = 9 Name ="Command15" Caption ="Command15" End Begin ComboBox OverlapFlags = 85 Left = 960 Top = 1020 TabIndex = 2 Name ="Combo16" RowSourceType ="Table/Query" Begin Begin Label OverlapFlags = 85 Left = 60 Top = 1020 Width = 810 Height = 240 Name ="Label17" Caption ="Combo11:" End End End Begin ComboBox OverlapFlags = 85 Left = 960 Top = 1380 TabIndex = 3 Name ="Combo18" RowSourceType ="Table/Query" Begin Begin Label OverlapFlags = 85 Left = 60 Top = 1380 Width = 810 Height = 240 Name ="Label19" Caption ="Combo11:" End End End End End End End CodeBehindForm Option Compare Database Option Explicit Public fclsFrm As clsFrm Private Sub Form_Open(Cancel As Integer) Set fclsFrm = New clsFrm fclsFrm.mInit Me End Sub -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com "Warning: The information contained in this email and any attached files is confidential to BAE Systems Australia. If you are not the intended recipient, any use, disclosure or copying of this email or any attachments is expressly prohibited. If you have received this email in error, please notify us immediately. VIRUS: Every care has been taken to ensure this email and its attachments are virus free, however, any loss or damage incurred in using this email is not the sender's responsibility. It is your responsibility to ensure virus checks are completed before installing any data sent in this email to your computer." -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com "Warning: The information contained in this email and any attached files is confidential to BAE Systems Australia. If you are not the intended recipient, any use, disclosure or copying of this email or any attachments is expressly prohibited. If you have received this email in error, please notify us immediately. VIRUS: Every care has been taken to ensure this email and its attachments are virus free, however, any loss or damage incurred in using this email is not the sender's responsibility. It is your responsibility to ensure virus checks are completed before installing any data sent in this email to your computer." -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Fri Feb 13 05:19:31 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Fri, 13 Feb 2009 12:19:31 +0100 Subject: [AccessD] Antique Access on Vista Message-ID: Hi all We are still maintaining two Access 2.0 database and a client wished to exchange an old workstation with a new with Vista. Recalling the trouble reported by Drew and others who gave up installing Access 97 on Vista 32, we were prepared for all kind of troubles. But that is not so. Ini files have to be moved to the folder of the application database, and SendKeys is not honoured but that's it. This old software runs as hell on today's standard workstations, and once again you realize that the original Access team did an excellent piece of work. Vista 64 can't run 16 bit applications so I guess a virtual machine will have to be installed for the purpose. /gustav From drawbridgej at sympatico.ca Fri Feb 13 08:30:03 2009 From: drawbridgej at sympatico.ca (Jack and Pat) Date: Fri, 13 Feb 2009 09:30:03 -0500 Subject: [AccessD] Compare table structures In-Reply-To: <016001c98d38$1d41db30$bb5ea27a@personald6374f> References: <29f585dd0902120218q724ce0cfh9ce30e950deb3049@mail.gmail.com> <016001c98d38$1d41db30$bb5ea27a@personald6374f> Message-ID: AD and Arthur, The extract of sample code has references to a Form. Also, the code as shown does not deal with indexes. Just a quick observation. jack -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of A.D.Tejpal Sent: Thursday, February 12, 2009 12:32 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Compare table structures Arthur, Interestingly, this very topic came up in MS_Access_Professionals group at Yahoo today. Extract of the routine suggested by Clive Williams is placed below. You might like to try it out. (It has not yet been tested at my end). Best wishes, A.D. Tejpal ------------ ' Extract of sample code (by Clive Williams) to compare ' two tables. It compares the FieldTypes then displays the ' Filenames and FieldTypes in the DebugWindow: '====================================== Private Sub cmdCompareTableStructures_Click() ' Compare the FieldTypes of the source table and the specified table Dim db As DAO.Database Dim tbli As DAO.TableDef Dim tblj As DAO.TableDef Dim i As Integer Dim booMismatch As Boolean On Error GoTo Err_cmdCompareTableStructures_Click If vbYes = MsgBox("Comparing Table Structures. Stop, Yes/No", vbYesNo + vbDefaultButton2) Then Stop Set db = CurrentDb Set tbli = db.TableDefs(Me.RecordSource) Set tblj = db.TableDefs(Me.cboTables.Column(0)) (from ComboBox) Debug.Print "Tables: "; tbli.Name & " " & tblj.Name If tbli.Fields.Count <> tblj.Fields.Count Then MsgBox tbli.Name & " has " & tbli.Fields.Count & _ " fields" & vbCrLf & vbCrLf & _ tblj.Name & " has " & tblj.Fields.Count & _ " fields." & vbCrLf & " Quitting..." Else For i = 0 To tbli.Fields.Count - 1 Debug.Print "Names", tbli.Fields(i).Name, _ tblj.Fields(i).Name, ; Debug.Print "Types", tbli.Fields(i).Type, _ tblj.Fields(i).Type If tbli.Fields(i).Type <> tblj.Fields(i).Type Then Debug.Print "", "", "", " Mismatch>", "***", "***" booMismatch = True End If Next i If booMismatch Then DoCmd.RunCommand acCmdDebugWindow Else MsgBox "Compared Successfully." End If End If Exit_cmdCompareTableStructures_Click: Set tblj = Nothing Set tbli = Nothing Set db = Nothing Exit Sub Err_cmdCompareTableStructures_Click: MsgBox Err.Description Resume Exit_cmdCompareTableStructures_Click End Sub '======================================== ----- Original Message ----- From: Arthur Fuller To: Access Developers discussion and problem solving Sent: Thursday, February 12, 2009 15:48 Subject: [AccessD] Compare table structures Is there a free tool that will compare two table structures and report the differences? I'd do it manually but in this case there are over 100 fields and it would be very tedious to do it by hand. TIA, Arthur -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Fri Feb 13 08:37:12 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 13 Feb 2009 09:37:12 -0500 Subject: [AccessD] CLSMSG DEMO Message-ID: <49958598.1060500@colbyconsulting.com> In this lecture we will learn to create a class, build a module to initialize the class, and then test the class functionality. The class we will build will use clsDemoMsg to send communication events back and forth between the class instances. The purpose of the lecture is threefold, to practice building new classes, to practice setting up and tearing down classes outside of forms, and to demonstrate clsMsg. ? In the demo database, click Insert / Class Module. ? Immediately save a clsMsgDemo ? In the header type in the following code: Private mstrName As String This creates a private name variable for the class instance. Remember that we can create as many instances of a class as we want, and for the purposes of this demo we will create three. Each instance will need a name so that it can identify itself to other class instances, and so that it can know when a message is sent to itself. Private WithEvents mclsMsg As clsMsg This dimensions WithEvents a private variable for a clsMsg, informing the class that we will be sinking events for clsMsg. ? Drop down the left combo box and select class. This will create the Class_Initialize event stub. ? Drop down the right combo box and select Terminate. That will create the terminate event ? In the Initialize and terminate event stubs type the following code: Private Sub Class_Initialize() Set mclsMsg = cMsg() End Sub Private Sub Class_Terminate() Set mclsMsg = Nothing End Sub This code calls cMsg() which initializes the message class if it is not already initialized, then returns a pointer to the initialized clsMsg, which we then store into mclsMsg. We are now ready to send messages on the message channel we have set up. The terminate event stub cleans up out mclsMsg pointer. We need to make it a habit to clean up any objects that we use. ? Create property statements to expose the mstrNname variable. Property Get pName() As String pName = mstrName End Property Property Let pName(lstrName As String) mstrName = lstrName End Property Classes expose their internal private variables through property statements. Property Get and Property Let statements return the internal variable and initialize the variable respectively. It is possible to simply expose the variables by using a Public in the place of Private, but I try hard never to do that. The Get and Let statements allow you to control access to the variables, perform processing if needed as you get and set the internal variables, and set up read only or write only variables by using only the Get or Let statements. You will run into programmers that will argue vehemently that get / let statements are a waste of time, but this is my lecture and I use them myself. I like to prefix all of my properties with a lower case p, just so that they group together. I also like to prefix my methods with a lower case m, just so that they group together. ? Drop down the left combo and select mclsMsg. This will create the Message event sink stub. ? In the event stub, type in the following code: Private Sub mclsMsg_Message(varFrom As Variant, varTo As Variant, varSubj As Variant, varMsg As Variant) If varTo = mstrName Then Dim strMsg As String strMsg = "Hello, the class instance " & mstrName & " is sinking this message." & vbCrLf strMsg = strMsg & "The entire message sent to me is:" & vbCrLf strMsg = strMsg & "From: " & varFrom & vbCrLf strMsg = strMsg & "To: " & varTo & vbCrLf strMsg = strMsg & "Subject: " & varSubj & vbCrLf strMsg = strMsg & "Msg: " & varMsg & vbCrLf MsgBox strMsg, vbOKOnly, "MESSAGE FROM" & varFrom End If End Sub This is the event sink for mclsMsg, and allows us to do something with messages that mclsMsg is sending out to whoever is listening. Since we opnly want to respond to messages sent to this specific instance of the class, we test varTo against mstrNname which is the name of this class instance. If the message is to us, then we do something with it. In this case we are just going to build up a message and pop it up in a message box. ? Next we will create a method that allows this class to send a message on the message channel. Underneath the event stub we just created type in the following code: Public Function mSendMsg(varTo As Variant, varSubj As Variant, varMsg As Variant) mclsMsg.Send mstrName, varTo, varSubj, varMsg End Function This method is nothing more than a wrapper to the classes .Send method, and simply passes in the parameters to the mclsMsg. Notice that it sends mstrName as the From variable, in other words this class knows it?s name and uses that to automatically tell the message recipient who the message is from. In this lecture we have created a new class, told it to use a message class, created properties to allow getting and setting the class instance name, created an event sink for the message class and inside of that event sink used the event to do something. Finally we created a method of this class to allow us to use this class from the outside, cause the class to take an action, in this case just to send a message. In the next lecture we will actually use this class to demonstrate how to use classes that are free standing. -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Fri Feb 13 09:57:02 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 13 Feb 2009 10:57:02 -0500 Subject: [AccessD] USING CLSMSGDEMO Message-ID: <4995984E.3000804@colbyconsulting.com> Unlike all of the previous lectures, THIS ONE is heavy duty. the reason is simply that you will be stepping through the code line by line to watch and understand the program flow. you MUST do this if you ever hope to truly understand classes, methods, Raising an event, sinking an event and how it all interacts. Do NOT skip over stepping through the code or all that you have learned will be so much less helpful. Understanding in your head how it all plays together will be very useful, and perhaps critical to becoming a first class user of classes. I am sure that there will be plenty of questions when we are done so go to it. In the previous lecture we created a class that will sink and source events from clsMsg. This lecture will show you how to set up, cleanup and use freestanding classes (which includes clsMsg by the way). ? In the database window, click Insert / Module. This will be a plain module, not a class. ? In the module header insert the following code: Private mclsDemoMsgSteve As clsDemoMsg Private mclsDemoMsgGeorge As clsDemoMsg Private mclsDemoMsgLinda As clsDemoMsg This code simply dimensions three variables to hold instances of clsDemoMsg. Notice we dimension them private. In general it is good practice to make variables private unless there is a good reason to make them public, and then expose those variables through functions if they need to be used outside of the current module. ? In the module body, type in the following code: Function mDemoMsgInit() If mclsDemoMsgSteve Is Nothing Then Set mclsDemoMsgSteve = New clsDemoMsg mclsDemoMsgSteve.pName = "Steve" Set mclsDemoMsgGeorge = New clsDemoMsg mclsDemoMsgGeorge.pName = "George" Set mclsDemoMsgLinda = New clsDemoMsg mclsDemoMsgLinda.pName = "Linda" End If End Function This code SETs the class instances to a new instance of clsDemoMsg and immediately sets the instances pName property. It does so three times, once for each instance of the class that we will be playing with. Function mDemoMmsgTerm() Set mclsDemoMsgSteve = Nothing Set mclsDemoMsgGeorge = Nothing Set mclsDemoMsgLinda = Nothing End Function This function allows us to clean up the class instances when we are done playing. Function cDemoMsgSteve() As clsDemoMsg mDemoMsgInit Set cDemoMsgSteve = mclsDemoMsgSteve End Function Function cDemoMsgGeorge() As clsDemoMsg mDemoMsgInit Set cDemoMsgGeorge = mclsDemoMsgGeorge End Function Function cDemoMsgLinda() As clsDemoMsg mDemoMsgInit Set cDemoMsgLinda = mclsDemoMsgLinda End Function These three functions get pointers to the three instances of clsDemo dimensioned in the header of the module. It first makes sure that the class instances are initialized by calling mDemoMsgInit. That is all that is required to dimension, initialize, terminate and use instances of ANY class. You can have a single instance of the class, or many instances ? in this case three. By the way, we could have stored the instances in a collection and created as many as we wanted but that would have made the code less readable for this demo. ? Now? I want you to step through the code to see exactly what is going on so please set a breakpoint on the mDemoMsgInit line of EACH function cDemoMsg() function. ? In the debug window type in the following code and hit enter: cDemoMsgSteve.mSendMsg "George", "Tuesday's meeting", "Tuesday morning the entire teem will meet in the conference room at 09:00 am" When you hit enter you should stop at the mDemoMsgInit() line in cDemoMsgSteve(). Start to step through the code. The first thing that will happen is to run mDemoMmsgInit(). The first time through the code the private variables at the top of the module will be Nothing and you will fall into the code that initializes each class instance. Continue to step into the code. You should step into the Class_Initialize for each clsDemoMsg instance, and of course that code initializes the message class itself for THIS instance of clsDemoMsg. Once you step out of that _Initialize code you should be back in mDemoMsgInit(). The next thing that happens is that you step into the pName property and store a name string into the mstrName variable in the top of the class header. When you step out of pName you will be back in mDemoMsgInit. You will then do the next instance and the next. After initializing every private variable in the top of the module, control should return to cDemoMsgSteve and you will get an instance of the class itself, properly initialized. Now that you have an instance of the clsMsgDemo, you will step into the .mSendMsg method of the class. You have passed in some information to this method and basically you will just send a message using the mclsMsg. NOTICE that when you execute mClsMsg.Send, control passes into clsMsg send method. This is where the event is generated (raised) that all the class instances are sinking. Once the event is raised, control will pass to EVERY event sink for that event. We have THREE instances of clsDemoMsg, and each one of them sinks this event so every one of these instances will get control, in the order that they were dimensioned. Go ahead and step into the mclsMsg.Send and step into the RaiseEvent. Control is transferred to some event sink somewhere. You should now be in mclsMsg_Message, about to check ?If varTo = mstrName Then?. The first thing I want you to do is to use intellisense to hover over VarTo and mstrName. VarTo (George) is of course the intended recipient of this message, and mstrNname (Steve) is the name of the class instance that currently has control. Step the code. Since they do not match you do not fall into the code to display the message but rather just fall down to where you will exit. Step out of this function. Notice that code control immediately transfers to the next event sink. Again step down to the If statement, and hover your mouse cursor over VarTo (George) and mstrName (George). Since George is the class instance that this message is directed to, control will fall into the If Then statement and we will build the message and display it. Figure out and understand the code that generates the message. Continue stepping until the message box pops up and read it. Continue stepping until you exit this function and notice that you are right back in the event sink for the last class instance. Step on through (no message will be built) until you exit the function. Notice that you are back in the clsMsg.Send method and about to exit that method. Step out of that method. Notice that you are back in the mSendMsg() method of clsDemoMsg and about to exit. Step out of that method. Notice that you are back in the debug window. WOAAAAAH. What a rush eh? You have just watched an event be raised, and sunk in three different places. The original message was created by cDemoMsgSteve.mSendMsg (Steve), and the message caused clsMmsg to RAISE an event. That message was sunk by ALL THREE instances of clsDemoMsg, first Steve, then George, then Linda. The ORDER that these instances got control was caused by the ORDER that you instantiated them in mDemoMsgInit(). Had you instantiated them in some other order then they would receive control in that some other order. George was the intended recipient so only George processed the message in the event sink. Now I want you to do this again, stepping through the code. Notice that I am using a different instance of the class (George) to send the message, and a different recipient (Linda). This time use the following code in the debug window: cDemoMsgGeorge.mSendMsg "Linda", "Lunch Today", "After the meeting we will all be meeting for lunch at the deli one building over." Notice first that the mDemoMsgInit does not perform the initialization because the classes were already initialized, so it just steps back out. Finally I want you to use the following code to send a message that no one picks up and displays: cDemoMsgGeorge.mSendMsg "John", "Lunch Today", "After the meeting we will all be meeting for lunch at the deli one building over." The reason no one picks up the message is that there is no class instance with the name of John in mstrName, and so none of the instances process the message. This is about as heavy duty as you will ever get. You would be wise to step through this code as many times as you need to fully understand what is going on at each step. How control passes to a method of a class and parameters are passed in. How an event is raised, and IMMEDIATELY control starts to pass to the event sinks. What order the event sinks process and why they process in that order. If you understand this lesson, you will have class events down pat. I KNOW it will be confusing, but just do it over and over until it sinks in. Then raise an event to pat yourself on the back. This lecture has been the most complex so far in terms of your being able to trace code execution. We have learned how to use a function that initializes our class instances and return an instance of a class. We then step into a method of that class. We watched the method call out to another class (clsMsg). We watched clsMsg RAISE an event. We watched the code control transfer to each of the three event sinks, and we watched the code be processed differently in each event sink because of logic inside of the event sink. We then watched the code unwind back to the calling code and finally back out to the debug window. Congratulations, you are now Class / Event gurus. A diploma will be awarded. -- John W. Colby www.ColbyConsulting.com From Johncliviger at aol.com Fri Feb 13 10:20:09 2009 From: Johncliviger at aol.com (Johncliviger at aol.com) Date: Fri, 13 Feb 2009 11:20:09 EST Subject: [AccessD] More Class lectures? Message-ID: Hi JWC I started following the lectures on Tuesday so I'm behind. However I'm working my way thru it all. But I'm not sure whether I've got all the essential bits. How many lectures have you done to date? Your modus operandi is great and keeping going Regards john cliviger From jwcolby at colbyconsulting.com Fri Feb 13 10:49:30 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 13 Feb 2009 11:49:30 -0500 Subject: [AccessD] Class lecture emails In-Reply-To: References: Message-ID: <4995A49A.9090408@colbyconsulting.com> I show the following emails as lectures: 1) [AccessD] Classes and Events 2) [AccessD] CREATE CLASSES AND EVENTS DEMO DATABASE 3) [AccessD] LOAD THE FORM CLASS IN THE FORM 4) [AccessD] Get event sinks working 5) [AccessD] Building a Control Scanner 6) [AccessD] Building a control class 7) [AccessD] MODIFY THE FORM CLASS TO LOAD THE NEW COMBO CLASS. 8) [AccessD] Classes and Events - EVENTS NOT REQUIRED 9) [AccessD] BUILDING A TEXT CONTROL CLASS 10) [AccessD] The classes as they are at this instant - clsTimer 11) [AccessD] The classes as they are at this instant - clsCtlCbo 12) [AccessD] The classes as they are at this instant - clsCtlTxt 13) [AccessD] The classes as they are at this instant - clsFrm 14) [AccessD] The form 15) [AccessD] IMPORT THE FORM 16) [AccessD] SINKING EVENTS IN MULTIPLE PLACES 17) [AccessD] EMERGENCY HALT: was Re: The form for demo event sink in two places 18) [AccessD] Demo sinking events in two places 19) [AccessD] ClsMsg 20) [AccessD] CLSMSG DEMO 21) [AccessD] USING CLSMSGDEMO Not too bad for 5 days work. If you work through all of these lectures you will be awarded membership to the AccessD Order of the Classy Developers. More importantly, you will have done what too few Access programmers ever do, started down the road to mastering classes and events. Do or do not, there is no try. John W. Colby www.ColbyConsulting.com Johncliviger at aol.com wrote: > Hi JWC > > I started following the lectures on Tuesday so I'm behind. However I'm > working my way thru it all. But I'm not sure whether I've got all the essential > bits. How many lectures have you done to date? > > Your modus operandi is great and keeping going > > Regards > john cliviger > From fuller.artful at gmail.com Fri Feb 13 11:01:17 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Fri, 13 Feb 2009 12:01:17 -0500 Subject: [AccessD] USING CLSMSGDEMO In-Reply-To: <4995984E.3000804@colbyconsulting.com> References: <4995984E.3000804@colbyconsulting.com> Message-ID: <29f585dd0902130901p26052bf0rf8bc59997a6b143b@mail.gmail.com> JC, If I might make a small suggestion... As I once wrote about relational databases, the UPDATE statement is destructive -- you lose the previous value (unless you preserve it in an audit trail or alternatively use Point In Time Architecture). In a similar vein, your re-use of the same form, in each lecture adding new code, destroys the previous version. I wish that in each new lesson, you open the original form as immediately Save As + increment. Then we students end up with many forms which trace the history of this lecture series. I am doing this manually because I want to preserve the step-by-step history of your lecture series. Just a thought. A From max.wanadoo at gmail.com Fri Feb 13 11:14:36 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 13 Feb 2009 17:14:36 -0000 Subject: [AccessD] OT Friday: Something to take your mind off the Classes for a few minutes. In-Reply-To: <49958598.1060500@colbyconsulting.com> References: <49958598.1060500@colbyconsulting.com> Message-ID: <4995aa80.02ab100a.540c.0170@mx.google.com> TELL ME THIS WON'T HAPPEN TO US !!!! LOST IN THE DARNDEST PLACES: An elderly Floridian called 911 on her cell phone to report that her car has been broken into. She is hysterical as she explains her situation to the dispatcher: 'They've stolen the stereo, the steering wheel, the brake pedal and even the accelerator!' she cried. The dispatcher said, 'Stay calm. An officer is on the way.' A few minutes later, the officer radios in. 'Disregard.' He says. 'She got in the back-seat by mistake.' ________________________________________________________________________ FAMILY Three sisters, ages 92, 94 and 96, live in a house together. One night the 96-year-old draws a bath. She puts her foot in and pauses. She yells to the other sisters, 'Was I getting in or out of the bath?' The 94-year-old yells back, 'I don't know. I'll come up and see.' She starts up the stairs and pauses 'Was I going up the stairs or down?' The 92-year-old is sitting at the kitchen table having tea listening to her sisters. She shakes her head and says, 'I sure hope I never get that forgetful, knock on wood.' She then yells, 'I'll come up and help both of you as soon as I see who's at the door.' _________________________ _______________________________________________ 'I CAN HEAR JUST FINE!' Three retirees, each with a hearing loss, were playing golf one fine March day. One remarked to the other, 'Windy, isn't it?' 'No,' the second man replied, 'it's Thursday.' And the third man chimed in, 'So am I. Let's have a beer.' _______________________________________________________________________ LITTLE LADY: A little old lady was running up and down the halls in a nursing home. As she walked, she would flip up the hem of her nightgown and say 'Supersex.' She walked up to an elderly man in a wheelchair. Flipping her gown at him, she said, 'Supersex.' He sat silently for a moment or two and finally answered, 'I'll take the soup.' _______________________________________________________________________ OLD FRIENDS: Now this one is just too Precious...! Two elderly ladies had been friends for many decades. Over the years, they had shared all kinds of activities and adventures. Lately, th eir activities had been limited to meeting a few times a week to play cards. One day, they were playing cards when one looked at the other and said, 'Now don't get mad at me .. I know we've been friends for a long time, but I just can't think of your name! I've thought and thought, but I can't remember it. Please tell me what your name is.' Her friend glared at her. For at least three minutes she just stared and glared at her. Finally she said, 'How soon do you need to know?' _______________________________________________________________________ SENIOR DRIVING As a senior citizen was driving down the freeway, his car phone rang. Answering, he heard his wife's voice urgently warning him, 'Herman, I just heard on the news that there's a car going the wrong way on Interstate 77. Please be careful!' 'Heck,' said Herman, 'It's not just one car. It's hundreds of them!' _______________________________________________________________________ DRIVING Two elderly women were out driving in a large car - both could barely see over the dashboard. As they were cruising along, they came to an intersection. The stoplight was red, but they just went on through. The woman in the passenger seat thought to herself 'I must be losing it. I could have sworn we just went through a red light.' After a few more minutes, they came to another intersection and the light was red again. Again, they went right through. The woman in the passenger seat was almost sure that the light had been red but was really concerned that she was losing it. She was getting nervous. At the next intersection, sure enough, the light was red and they went on through.. So, she turned to the other woman and said, 'Mildred, did you know t hat we just ran through three red lights in a row? You could have killed us both!' Mildred turned to her and said, 'Oh, crap, am I driving ?' _______________________________________________________________________ From jwcolby at colbyconsulting.com Fri Feb 13 11:35:54 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 13 Feb 2009 12:35:54 -0500 Subject: [AccessD] USING CLSMSGDEMO In-Reply-To: <29f585dd0902130901p26052bf0rf8bc59997a6b143b@mail.gmail.com> References: <4995984E.3000804@colbyconsulting.com> <29f585dd0902130901p26052bf0rf8bc59997a6b143b@mail.gmail.com> Message-ID: <4995AF7A.8090002@colbyconsulting.com> Good idea. I will do that. John W. Colby www.ColbyConsulting.com Arthur Fuller wrote: > JC, > > If I might make a small suggestion... As I once wrote about relational > databases, the UPDATE statement is destructive -- you lose the previous > value (unless you preserve it in an audit trail or alternatively use Point > In Time Architecture). In a similar vein, your re-use of the same form, in > each lecture adding new code, destroys the previous version. I wish that in > each new lesson, you open the original form as immediately Save As > + increment. Then we students end up with many forms which trace > the history of this lecture series. > > I am doing this manually because I want to preserve the step-by-step history > of your lecture series. > > Just a thought. > > A From fuller.artful at gmail.com Fri Feb 13 11:51:33 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Fri, 13 Feb 2009 12:51:33 -0500 Subject: [AccessD] USING CLSMSGDEMO In-Reply-To: <4995AF7A.8090002@colbyconsulting.com> References: <4995984E.3000804@colbyconsulting.com> <29f585dd0902130901p26052bf0rf8bc59997a6b143b@mail.gmail.com> <4995AF7A.8090002@colbyconsulting.com> Message-ID: <29f585dd0902130951r52ab4180ga9dd30ee6cc268d3@mail.gmail.com> Thanks! A. From jwcolby at colbyconsulting.com Fri Feb 13 12:04:05 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 13 Feb 2009 13:04:05 -0500 Subject: [AccessD] Don't miss this special occasion... Message-ID: <4995B615.90208@colbyconsulting.com> There is something that is important happening today! And I just know how interested you are in this bit of time trivia for all you IT geeks out there ... Many computer operating systems measure time by counting the number of seconds before/after midnight of January 1, 1970. This is known as POSIX or Universal Time Code (UTC) time. Today, a memorable event occurs in UTC time. On Friday, Feb 13 2009 at exactly 3:31:30 PM the UTC will be 1234567890 - the numbers of seconds since 1/1/70. -- John W. Colby www.ColbyConsulting.com From cfoust at infostatsystems.com Fri Feb 13 12:08:41 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Fri, 13 Feb 2009 10:08:41 -0800 Subject: [AccessD] Don't miss this special occasion... In-Reply-To: <4995B615.90208@colbyconsulting.com> References: <4995B615.90208@colbyconsulting.com> Message-ID: Is that Pacific or Eastern? Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 13, 2009 10:04 AM To: Access Developers discussion and problem solving Subject: [AccessD] Don't miss this special occasion... There is something that is important happening today! And I just know how interested you are in this bit of time trivia for all you IT geeks out there ... Many computer operating systems measure time by counting the number of seconds before/after midnight of January 1, 1970. This is known as POSIX or Universal Time Code (UTC) time. Today, a memorable event occurs in UTC time. On Friday, Feb 13 2009 at exactly 3:31:30 PM the UTC will be 1234567890 - the numbers of seconds since 1/1/70. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Fri Feb 13 12:16:04 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 13 Feb 2009 18:16:04 -0000 Subject: [AccessD] Don't miss this special occasion... In-Reply-To: <4995B615.90208@colbyconsulting.com> References: <4995B615.90208@colbyconsulting.com> Message-ID: <4995b8e9.06a0100a.150b.ffffa18c@mx.google.com> ...and did you know that if the month starts on a Sunday it will have a Friday the 13th in it? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 13 February 2009 18:04 To: Access Developers discussion and problem solving Subject: [AccessD] Don't miss this special occasion... There is something that is important happening today! And I just know how interested you are in this bit of time trivia for all you IT geeks out there ... Many computer operating systems measure time by counting the number of seconds before/after midnight of January 1, 1970. This is known as POSIX or Universal Time Code (UTC) time. Today, a memorable event occurs in UTC time. On Friday, Feb 13 2009 at exactly 3:31:30 PM the UTC will be 1234567890 - the numbers of seconds since 1/1/70. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Fri Feb 13 12:36:27 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 13 Feb 2009 13:36:27 -0500 Subject: [AccessD] Don't miss this special occasion... In-Reply-To: References: <4995B615.90208@colbyconsulting.com> Message-ID: <4995BDAB.1090001@colbyconsulting.com> Well, if you live in Australia.... John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > Is that Pacific or Eastern? > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 13, 2009 10:04 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Don't miss this special occasion... > > There is something that is important happening today! And I just know > how interested you are in this bit of time trivia for all you IT geeks > out there ... > > Many computer operating systems measure time by counting the number of > seconds before/after midnight of January 1, 1970. This is known as POSIX > or Universal Time Code (UTC) time. > > Today, a memorable event occurs in UTC time. > On Friday, Feb 13 2009 at exactly 3:31:30 PM the UTC will be 1234567890 > - the numbers of seconds since 1/1/70. > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From markamatte at hotmail.com Fri Feb 13 13:23:22 2009 From: markamatte at hotmail.com (Mark A Matte) Date: Fri, 13 Feb 2009 19:23:22 +0000 Subject: [AccessD] Don't miss this special occasion... In-Reply-To: <4995B615.90208@colbyconsulting.com> References: <4995B615.90208@colbyconsulting.com> Message-ID: I think it may also be referred to as the Epoch of Unix time...and as far as time zone...the first time I had to deal with it...the magic date to count from was 12/31/1969 4:00:00 PM...(US mountain time I think)...but there were some arguments about Leap Seconds...and UTC did not exist in its current state until around 1972... Anyway...thanks for the trivia John. Mark To: accessd at databaseadvisors.com> Subject: [AccessD] Don't miss this special occasion...> > There is something that is important happening today! And I just know how interested you are in this > bit of time trivia for all you IT geeks out there ...> > Many computer operating systems measure time by counting the number of> seconds before/after midnight of January 1, 1970. This is known as POSIX or> Universal Time Code (UTC) time.> > Today, a memorable event occurs in UTC time.> On Friday, Feb 13 2009 at exactly 3:31:30 PM the UTC will be 1234567890 -> the numbers of seconds since 1/1/70.> -- > John W. Colby> www.ColbyConsulting.com> -- > AccessD mailing list> AccessD at databaseadvisors.com> http://databaseadvisors.com/mailman/listinfo/accessd> Website: http://www.databaseadvisors.com _________________________________________________________________ Windows Live?: E-mail. Chat. Share. Get more ways to connect. http://windowslive.com/explore?ocid=TXT_TAGLM_WL_t2_allup_explore_022009 From john at winhaven.net Fri Feb 13 13:24:03 2009 From: john at winhaven.net (John Bartow) Date: Fri, 13 Feb 2009 13:24:03 -0600 Subject: [AccessD] Don't miss this special occasion... In-Reply-To: <4995b8e9.06a0100a.150b.ffffa18c@mx.google.com> References: <4995B615.90208@colbyconsulting.com> <4995b8e9.06a0100a.150b.ffffa18c@mx.google.com> Message-ID: <018f01c98e10$a17aa480$e46fed80$@net> ...or that March has the same date/day of week combination as February unless it's a leap year? -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Friday, February 13, 2009 12:16 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Don't miss this special occasion... ...and did you know that if the month starts on a Sunday it will have a Friday the 13th in it? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 13 February 2009 18:04 To: Access Developers discussion and problem solving Subject: [AccessD] Don't miss this special occasion... There is something that is important happening today! And I just know how interested you are in this bit of time trivia for all you IT geeks out there ... Many computer operating systems measure time by counting the number of seconds before/after midnight of January 1, 1970. This is known as POSIX or Universal Time Code (UTC) time. Today, a memorable event occurs in UTC time. On Friday, Feb 13 2009 at exactly 3:31:30 PM the UTC will be 1234567890 - the numbers of seconds since 1/1/70. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Fri Feb 13 15:20:35 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Fri, 13 Feb 2009 22:20:35 +0100 Subject: [AccessD] Don't miss this special occasion... (Unix/Posix time) Message-ID: Hi Charlotte John wrote UTC time zone. But if you prefer, insert your own timezone bias: Public Function DateFromUnix( _ ByVal dblSeconds As Double, _ Optional lngLocalTimeBias As Long) _ As Date ' Converts UNIX (or POSIX) time value to UTC date value. ' Optionally, a local time bias can be specified; ' this must be in minutes with a resolution of 15 minutes. ' ' Examples: ' UTC. dblSeconds: 1000000000, lngLocalTimeBias: 0 ' 2001-09-09 01:46:40 ' CET. dblSeconds: 1000000000, lngLocalTimeBias: -60 ' 2001-09-09 02:46:40 ' ' 2004-03-23. Cactus Data ApS. CPH. ' 2008-02-27. Constants renamed for clarity. ' UNIX epoch (start time). Const cdatUnixEpoch As Date = #1/1/1970# ' Maximum time bias in seconds, 12 hours. Const clngSecondsBiasMax As Long = 12& * 60& ' Count of seconds of one day. Const clngSecondsPerDay As Long = 24& * 60& * 60& Dim dblDays As Double Dim dblDaysSeconds As Double Dim lngSeconds As Long Dim datTime As Date ' Limit intervals for DateAdd to Long to be acceptable. dblDays = Int(dblSeconds / clngSecondsPerDay) dblDaysSeconds = dblDays * clngSecondsPerDay lngSeconds = dblSeconds - dblDaysSeconds datTime = DateAdd("d", dblDays, cdatUnixEpoch) datTime = DateAdd("s", lngSeconds, datTime) If lngLocalTimeBias <> 0 Then If Abs(lngLocalTimeBias) < clngSecondsBiasMax Then datTime = DateAdd("n", -lngLocalTimeBias, datTime) End If End If DateFromUnix = datTime End Function Public Function UnixTimeValue( _ ByVal datTime As Date, _ Optional ByVal lngLocalTimeBias As Long) _ As Double ' Converts UTC date value to UNIX (or POSIX) time value. ' Optionally, a local time bias can be specified; ' this must be in minutes with a resolution of 15 minutes. ' ' Examples: ' UTC. datTime: #09/09/2001 01:46:40#, lngLocalTimeBias: 0 ' 1000000000 ' CET. datTime: #09/09/2001 02:46:40#, lngLocalTimeBias: -60 ' 1000000000 ' ' 2004-03-23. Cactus Data ApS. CPH. ' 2008-02-27. Constants renamed for clarity. ' UNIX epoch (start time). Const cdatUnixEpoch As Date = #1/1/1970# ' Maximum time bias in seconds, 12 hours. Const clngSecondsBiasMax As Long = 12& * 60& Dim dblSeconds As Double If lngLocalTimeBias <> 0 Then If Abs(lngLocalTimeBias) < clngSecondsBiasMax Then datTime = DateAdd("n", lngLocalTimeBias, datTime) End If End If dblSeconds = DateDiff("s", cdatUnixEpoch, datTime) UnixTimeValue = dblSeconds End Function Have fun! /gustav >>> cfoust at infostatsystems.com 13-02-2009 19:08 >>> Is that Pacific or Eastern? Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 13, 2009 10:04 AM To: Access Developers discussion and problem solving Subject: [AccessD] Don't miss this special occasion... There is something that is important happening today! And I just know how interested you are in this bit of time trivia for all you IT geeks out there ... Many computer operating systems measure time by counting the number of seconds before/after midnight of January 1, 1970. This is known as POSIX or Universal Time Code (UTC) time. Today, a memorable event occurs in UTC time. On Friday, Feb 13 2009 at exactly 3:31:30 PM the UTC will be 1234567890 - the numbers of seconds since 1/1/70. -- John W. Colby www.ColbyConsulting.com From max.wanadoo at gmail.com Fri Feb 13 15:30:53 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 13 Feb 2009 21:30:53 -0000 Subject: [AccessD] Don't miss this special occasion... (Unix/Posix time) In-Reply-To: References: Message-ID: <4995e698.096c100a.7a1b.ffff8e8f@mx.google.com> >>> cfoust at infostatsystems.com 13-02-2009 19:08 >>> >>Is that Pacific or Eastern? >>Charlotte Foust Ha! Ha! Charlotte, that will teach you to ask an innocuous question when Gustav is hovering!! Gustav, you just literally astound me. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 13 February 2009 21:21 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Don't miss this special occasion... (Unix/Posix time) Hi Charlotte John wrote UTC time zone. But if you prefer, insert your own timezone bias: Public Function DateFromUnix( _ ByVal dblSeconds As Double, _ Optional lngLocalTimeBias As Long) _ As Date ' Converts UNIX (or POSIX) time value to UTC date value. ' Optionally, a local time bias can be specified; ' this must be in minutes with a resolution of 15 minutes. ' ' Examples: ' UTC. dblSeconds: 1000000000, lngLocalTimeBias: 0 ' 2001-09-09 01:46:40 ' CET. dblSeconds: 1000000000, lngLocalTimeBias: -60 ' 2001-09-09 02:46:40 ' ' 2004-03-23. Cactus Data ApS. CPH. ' 2008-02-27. Constants renamed for clarity. ' UNIX epoch (start time). Const cdatUnixEpoch As Date = #1/1/1970# ' Maximum time bias in seconds, 12 hours. Const clngSecondsBiasMax As Long = 12& * 60& ' Count of seconds of one day. Const clngSecondsPerDay As Long = 24& * 60& * 60& Dim dblDays As Double Dim dblDaysSeconds As Double Dim lngSeconds As Long Dim datTime As Date ' Limit intervals for DateAdd to Long to be acceptable. dblDays = Int(dblSeconds / clngSecondsPerDay) dblDaysSeconds = dblDays * clngSecondsPerDay lngSeconds = dblSeconds - dblDaysSeconds datTime = DateAdd("d", dblDays, cdatUnixEpoch) datTime = DateAdd("s", lngSeconds, datTime) If lngLocalTimeBias <> 0 Then If Abs(lngLocalTimeBias) < clngSecondsBiasMax Then datTime = DateAdd("n", -lngLocalTimeBias, datTime) End If End If DateFromUnix = datTime End Function Public Function UnixTimeValue( _ ByVal datTime As Date, _ Optional ByVal lngLocalTimeBias As Long) _ As Double ' Converts UTC date value to UNIX (or POSIX) time value. ' Optionally, a local time bias can be specified; ' this must be in minutes with a resolution of 15 minutes. ' ' Examples: ' UTC. datTime: #09/09/2001 01:46:40#, lngLocalTimeBias: 0 ' 1000000000 ' CET. datTime: #09/09/2001 02:46:40#, lngLocalTimeBias: -60 ' 1000000000 ' ' 2004-03-23. Cactus Data ApS. CPH. ' 2008-02-27. Constants renamed for clarity. ' UNIX epoch (start time). Const cdatUnixEpoch As Date = #1/1/1970# ' Maximum time bias in seconds, 12 hours. Const clngSecondsBiasMax As Long = 12& * 60& Dim dblSeconds As Double If lngLocalTimeBias <> 0 Then If Abs(lngLocalTimeBias) < clngSecondsBiasMax Then datTime = DateAdd("n", lngLocalTimeBias, datTime) End If End If dblSeconds = DateDiff("s", cdatUnixEpoch, datTime) UnixTimeValue = dblSeconds End Function Have fun! /gustav >>> cfoust at infostatsystems.com 13-02-2009 19:08 >>> Is that Pacific or Eastern? Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 13, 2009 10:04 AM To: Access Developers discussion and problem solving Subject: [AccessD] Don't miss this special occasion... There is something that is important happening today! And I just know how interested you are in this bit of time trivia for all you IT geeks out there ... Many computer operating systems measure time by counting the number of seconds before/after midnight of January 1, 1970. This is known as POSIX or Universal Time Code (UTC) time. Today, a memorable event occurs in UTC time. On Friday, Feb 13 2009 at exactly 3:31:30 PM the UTC will be 1234567890 - the numbers of seconds since 1/1/70. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Fri Feb 13 15:47:37 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Fri, 13 Feb 2009 22:47:37 +0100 Subject: [AccessD] Don't miss this special occasion... (Unix/Posix time) Message-ID: Hi Max Oh, thanks, but I just collect bits and pieces when I find them - and rewrite if sloppy code! /gustav >>> max.wanadoo at gmail.com 13-02-2009 22:30 >>> >>> cfoust at infostatsystems.com 13-02-2009 19:08 >>> >>Is that Pacific or Eastern? >>Charlotte Foust Ha! Ha! Charlotte, that will teach you to ask an innocuous question when Gustav is hovering!! Gustav, you just literally astound me. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 13 February 2009 21:21 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Don't miss this special occasion... (Unix/Posix time) Hi Charlotte John wrote UTC time zone. But if you prefer, insert your own timezone bias: From max.wanadoo at gmail.com Fri Feb 13 15:55:07 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 13 Feb 2009 21:55:07 -0000 Subject: [AccessD] Don't miss this special occasion... (Unix/Posix time) In-Reply-To: References: Message-ID: <4995ec40.0c92100a.4574.ffff831d@mx.google.com> Hahahah. I would like you to write down all the things you DON'T know here. 1. 2. 3. I fully accept there may not be as many as three things. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 13 February 2009 21:48 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Don't miss this special occasion... (Unix/Posix time) Hi Max Oh, thanks, but I just collect bits and pieces when I find them - and rewrite if sloppy code! /gustav >>> max.wanadoo at gmail.com 13-02-2009 22:30 >>> >>> cfoust at infostatsystems.com 13-02-2009 19:08 >>> >>Is that Pacific or Eastern? >>Charlotte Foust Ha! Ha! Charlotte, that will teach you to ask an innocuous question when Gustav is hovering!! Gustav, you just literally astound me. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 13 February 2009 21:21 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Don't miss this special occasion... (Unix/Posix time) Hi Charlotte John wrote UTC time zone. But if you prefer, insert your own timezone bias: -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Fri Feb 13 15:59:25 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Fri, 13 Feb 2009 22:59:25 +0100 Subject: [AccessD] Build tables programatically Message-ID: Hi John DAO is _very_ fast at this. For example: Set tbl = dbs.CreateTableDef(strTable) strField = "Id" Set fld = tbl.CreateField(strField) fld.Type = dbInteger fld.Required = True fld.DefaultValue = "Null" tbl.Fields.Append fld strField = "Something" Set fld = tbl.CreateField(strField) fld.Type = dbText fld.Size = 64 fld.Required = True tbl.Fields.Append fld Set idx = tbl.CreateIndex("IndexOne") idx.Primary = True idx.Unique = True strField = "Id" Set fld = idx.CreateField(strField) idx.Fields.Append fld tbl.Indexes.Append idx dbs.TableDefs.Append tbl /gustav -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 11, 2009 7:43 AM To: Access Developers discussion and problem solving Subject: [AccessD] Build tables programatically For the class lecture it would be handy to be able to build Access tables programatically. I do not know how to do this, though the authors of books usually do so. Does anyone on this list have any code library that would allow me to create field X with data type Y, that is a PK etc etc. Having that, I can build append queries to append specific data into these tables, but if anyone has such a thing, code to extract actual data from a table and write the SQL Statements that would append that into a specific table would be nice. IOW (for example) I have an existing state table and an agency table with a state ID. In order to minimize the impact on the readers having to go manually create a state and agency table and manually input data into those tables, it would be nice to provide code that builds those two tables and then populates those tables with a few data elements. Ideas anyone? -- John W. Colby www.ColbyConsulting.com From Gustav at cactus.dk Fri Feb 13 16:11:42 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Fri, 13 Feb 2009 23:11:42 +0100 Subject: [AccessD] Don't miss this special occasion... (Unix/Posix time) Message-ID: Hi Max That's easy: 1. Graphs in Access (never had the need) 2. Data Access Pages (adviced to not waste time on these) 3. Replication (never had a need) 4. Any kind of SharePoint integration/linking (can't find any purpose for setting up a test server) /gustav >>> max.wanadoo at gmail.com 13-02-2009 22:55 >>> Hahahah. I would like you to write down all the things you DON'T know here. 1. 2. 3. I fully accept there may not be as many as three things. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 13 February 2009 21:48 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Don't miss this special occasion... (Unix/Posix time) Hi Max Oh, thanks, but I just collect bits and pieces when I find them - and rewrite if sloppy code! /gustav >>> max.wanadoo at gmail.com 13-02-2009 22:30 >>> >>> cfoust at infostatsystems.com 13-02-2009 19:08 >>> >>Is that Pacific or Eastern? >>Charlotte Foust Ha! Ha! Charlotte, that will teach you to ask an innocuous question when Gustav is hovering!! Gustav, you just literally astound me. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 13 February 2009 21:21 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Don't miss this special occasion... (Unix/Posix time) Hi Charlotte John wrote UTC time zone. But if you prefer, insert your own timezone bias: From max.wanadoo at gmail.com Fri Feb 13 16:21:21 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 13 Feb 2009 22:21:21 -0000 Subject: [AccessD] Don't miss this special occasion... (Unix/Posix time) In-Reply-To: References: Message-ID: <4995f265.06a0100a.150b.10da@mx.google.com> You missed one....how to count to three and then stop!! Max You've gotta larf! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 13 February 2009 22:12 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Don't miss this special occasion... (Unix/Posix time) Hi Max That's easy: 1. Graphs in Access (never had the need) 2. Data Access Pages (adviced to not waste time on these) 3. Replication (never had a need) 4. Any kind of SharePoint integration/linking (can't find any purpose for setting up a test server) /gustav >>> max.wanadoo at gmail.com 13-02-2009 22:55 >>> Hahahah. I would like you to write down all the things you DON'T know here. 1. 2. 3. I fully accept there may not be as many as three things. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 13 February 2009 21:48 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Don't miss this special occasion... (Unix/Posix time) Hi Max Oh, thanks, but I just collect bits and pieces when I find them - and rewrite if sloppy code! /gustav >>> max.wanadoo at gmail.com 13-02-2009 22:30 >>> >>> cfoust at infostatsystems.com 13-02-2009 19:08 >>> >>Is that Pacific or Eastern? >>Charlotte Foust Ha! Ha! Charlotte, that will teach you to ask an innocuous question when Gustav is hovering!! Gustav, you just literally astound me. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 13 February 2009 21:21 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Don't miss this special occasion... (Unix/Posix time) Hi Charlotte John wrote UTC time zone. But if you prefer, insert your own timezone bias: -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From kathryn at bassett.net Fri Feb 13 16:33:47 2009 From: kathryn at bassett.net (Kathryn Bassett) Date: Fri, 13 Feb 2009 14:33:47 -0800 Subject: [AccessD] Don't miss this special occasion... In-Reply-To: <4995B615.90208@colbyconsulting.com> References: <4995B615.90208@colbyconsulting.com> Message-ID: Countdown - http://coolepochcountdown.com/ Kathryn > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 13 Feb 2009 10:04 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Don't miss this special occasion... > > There is something that is important happening today! And I > just know how interested you are in this bit of time trivia > for all you IT geeks out there ... > > Many computer operating systems measure time by counting the > number of seconds before/after midnight of January 1, 1970. > This is known as POSIX or Universal Time Code (UTC) time. > > Today, a memorable event occurs in UTC time. > On Friday, Feb 13 2009 at exactly 3:31:30 PM the UTC will be > 1234567890 - the numbers of seconds since 1/1/70. > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Fri Feb 13 16:37:54 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 13 Feb 2009 22:37:54 -0000 Subject: [AccessD] Don't miss this special occasion... In-Reply-To: References: <4995B615.90208@colbyconsulting.com> Message-ID: <4995f645.0ec5100a.6d5a.4e81@mx.google.com> Thank you Kathryn. Beats watching TV - marginally! Max Ps. 54 minutes to go - what happens then? As Filch says in one of the Harry Potter movies... "A pity they let the old punishment die... Was a time detention found you hanging by your thumbs in the dungeons... God, I miss the screaming." -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Kathryn Bassett Sent: 13 February 2009 22:34 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Don't miss this special occasion... Countdown - http://coolepochcountdown.com/ Kathryn > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 13 Feb 2009 10:04 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Don't miss this special occasion... > > There is something that is important happening today! And I > just know how interested you are in this bit of time trivia > for all you IT geeks out there ... > > Many computer operating systems measure time by counting the > number of seconds before/after midnight of January 1, 1970. > This is known as POSIX or Universal Time Code (UTC) time. > > Today, a memorable event occurs in UTC time. > On Friday, Feb 13 2009 at exactly 3:31:30 PM the UTC will be > 1234567890 - the numbers of seconds since 1/1/70. > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Fri Feb 13 16:44:09 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 13 Feb 2009 17:44:09 -0500 Subject: [AccessD] Don't miss this special occasion... In-Reply-To: References: <4995B615.90208@colbyconsulting.com> Message-ID: <4995F7B9.2090105@colbyconsulting.com> And I thought I had too much time on my hands! ;-) John W. Colby www.ColbyConsulting.com Kathryn Bassett wrote: > Countdown - http://coolepochcountdown.com/ > Kathryn > >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: 13 Feb 2009 10:04 AM >> To: Access Developers discussion and problem solving >> Subject: [AccessD] Don't miss this special occasion... >> >> There is something that is important happening today! And I >> just know how interested you are in this bit of time trivia >> for all you IT geeks out there ... >> >> Many computer operating systems measure time by counting the >> number of seconds before/after midnight of January 1, 1970. >> This is known as POSIX or Universal Time Code (UTC) time. >> >> Today, a memorable event occurs in UTC time. >> On Friday, Feb 13 2009 at exactly 3:31:30 PM the UTC will be >> 1234567890 - the numbers of seconds since 1/1/70. >> -- >> John W. Colby >> www.ColbyConsulting.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com > From max.wanadoo at gmail.com Fri Feb 13 17:00:06 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 13 Feb 2009 23:00:06 -0000 Subject: [AccessD] Don't miss this special occasion... In-Reply-To: <4995F7B9.2090105@colbyconsulting.com> References: <4995B615.90208@colbyconsulting.com> <4995F7B9.2090105@colbyconsulting.com> Message-ID: <4995fb7a.0856100a.7c9b.ffffac52@mx.google.com> John. Here is a test of this system. When the countdown says 123456000 I will send this msga. Can you return it asap and I can see how long form uk to usa and back Ta Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 13 February 2009 22:44 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Don't miss this special occasion... And I thought I had too much time on my hands! ;-) John W. Colby www.ColbyConsulting.com Kathryn Bassett wrote: > Countdown - http://coolepochcountdown.com/ > Kathryn > >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: 13 Feb 2009 10:04 AM >> To: Access Developers discussion and problem solving >> Subject: [AccessD] Don't miss this special occasion... >> >> There is something that is important happening today! And I >> just know how interested you are in this bit of time trivia >> for all you IT geeks out there ... >> >> Many computer operating systems measure time by counting the >> number of seconds before/after midnight of January 1, 1970. >> This is known as POSIX or Universal Time Code (UTC) time. >> >> Today, a memorable event occurs in UTC time. >> On Friday, Feb 13 2009 at exactly 3:31:30 PM the UTC will be >> 1234567890 - the numbers of seconds since 1/1/70. >> -- >> John W. Colby >> www.ColbyConsulting.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Fri Feb 13 17:15:15 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 13 Feb 2009 18:15:15 -0500 Subject: [AccessD] Don't miss this special occasion... In-Reply-To: <4995fb7a.0856100a.7c9b.ffffac52@mx.google.com> References: <4995B615.90208@colbyconsulting.com> <4995F7B9.2090105@colbyconsulting.com> <4995fb7a.0856100a.7c9b.ffffac52@mx.google.com> Message-ID: <4995FF03.3040108@colbyconsulting.com> Hmmm... Did I miss it already? John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > John. Here is a test of this system. > When the countdown says 123456000 I will send this msga. > Can you return it asap and I can see how long form uk to usa and back > Ta > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 13 February 2009 22:44 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Don't miss this special occasion... > > And I thought I had too much time on my hands! > > ;-) > > John W. Colby > www.ColbyConsulting.com > > > Kathryn Bassett wrote: >> Countdown - http://coolepochcountdown.com/ >> Kathryn >> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>> Sent: 13 Feb 2009 10:04 AM >>> To: Access Developers discussion and problem solving >>> Subject: [AccessD] Don't miss this special occasion... >>> >>> There is something that is important happening today! And I >>> just know how interested you are in this bit of time trivia >>> for all you IT geeks out there ... >>> >>> Many computer operating systems measure time by counting the >>> number of seconds before/after midnight of January 1, 1970. >>> This is known as POSIX or Universal Time Code (UTC) time. >>> >>> Today, a memorable event occurs in UTC time. >>> On Friday, Feb 13 2009 at exactly 3:31:30 PM the UTC will be >>> 1234567890 - the numbers of seconds since 1/1/70. >>> -- >>> John W. Colby >>> www.ColbyConsulting.com >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Fri Feb 13 17:20:08 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 13 Feb 2009 23:20:08 -0000 Subject: [AccessD] Don't miss this special occasion... In-Reply-To: <4995FF03.3040108@colbyconsulting.com> References: <4995B615.90208@colbyconsulting.com> <4995F7B9.2090105@colbyconsulting.com> <4995fb7a.0856100a.7c9b.ffffac52@mx.google.com> <4995FF03.3040108@colbyconsulting.com> Message-ID: <4996002c.0856100a.77f2.46ee@mx.google.com> No, I sent it via List Here it is when countdown says 1234567200 Copied to your personal address -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 13 February 2009 23:15 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Don't miss this special occasion... Hmmm... Did I miss it already? John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > John. Here is a test of this system. > When the countdown says 123456000 I will send this msga. > Can you return it asap and I can see how long form uk to usa and back > Ta > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 13 February 2009 22:44 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Don't miss this special occasion... > > And I thought I had too much time on my hands! > > ;-) > > John W. Colby > www.ColbyConsulting.com > > > Kathryn Bassett wrote: >> Countdown - http://coolepochcountdown.com/ >> Kathryn >> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>> Sent: 13 Feb 2009 10:04 AM >>> To: Access Developers discussion and problem solving >>> Subject: [AccessD] Don't miss this special occasion... >>> >>> There is something that is important happening today! And I >>> just know how interested you are in this bit of time trivia >>> for all you IT geeks out there ... >>> >>> Many computer operating systems measure time by counting the >>> number of seconds before/after midnight of January 1, 1970. >>> This is known as POSIX or Universal Time Code (UTC) time. >>> >>> Today, a memorable event occurs in UTC time. >>> On Friday, Feb 13 2009 at exactly 3:31:30 PM the UTC will be >>> 1234567890 - the numbers of seconds since 1/1/70. >>> -- >>> John W. Colby >>> www.ColbyConsulting.com >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Fri Feb 13 17:31:37 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 13 Feb 2009 23:31:37 -0000 Subject: [AccessD] Don't miss this special occasion... In-Reply-To: References: Message-ID: <499602dd.06c8100a.2ade.ffffef0c@mx.google.com> I am sending this at UTC Time 1234567890 http://coolepochcountdown.com/ Max From jwcolby at colbyconsulting.com Fri Feb 13 17:34:44 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 13 Feb 2009 18:34:44 -0500 Subject: [AccessD] Don't miss this special occasion... In-Reply-To: <4996002c.0856100a.77f2.46ee@mx.google.com> References: <4995B615.90208@colbyconsulting.com> <4995F7B9.2090105@colbyconsulting.com> <4995fb7a.0856100a.7c9b.ffffac52@mx.google.com> <4995FF03.3040108@colbyconsulting.com> <4996002c.0856100a.77f2.46ee@mx.google.com> Message-ID: <49960394.3090304@colbyconsulting.com> LOL. I was reading something else and missed the moment. Oh well. ;) John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > No, I sent it via List > > Here it is when countdown says 1234567200 > > Copied to your personal address > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 13 February 2009 23:15 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Don't miss this special occasion... > > Hmmm... > > Did I miss it already? > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> John. Here is a test of this system. >> When the countdown says 123456000 I will send this msga. >> Can you return it asap and I can see how long form uk to usa and back >> Ta >> Max >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: 13 February 2009 22:44 >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Don't miss this special occasion... >> >> And I thought I had too much time on my hands! >> >> ;-) >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Kathryn Bassett wrote: >>> Countdown - http://coolepochcountdown.com/ >>> Kathryn >>> >>>> -----Original Message----- >>>> From: accessd-bounces at databaseadvisors.com >>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>>> Sent: 13 Feb 2009 10:04 AM >>>> To: Access Developers discussion and problem solving >>>> Subject: [AccessD] Don't miss this special occasion... >>>> >>>> There is something that is important happening today! And I >>>> just know how interested you are in this bit of time trivia >>>> for all you IT geeks out there ... >>>> >>>> Many computer operating systems measure time by counting the >>>> number of seconds before/after midnight of January 1, 1970. >>>> This is known as POSIX or Universal Time Code (UTC) time. >>>> >>>> Today, a memorable event occurs in UTC time. >>>> On Friday, Feb 13 2009 at exactly 3:31:30 PM the UTC will be >>>> 1234567890 - the numbers of seconds since 1/1/70. >>>> -- >>>> John W. Colby >>>> www.ColbyConsulting.com >>>> -- >>>> AccessD mailing list >>>> AccessD at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>> Website: http://www.databaseadvisors.com From kathryn at bassett.net Fri Feb 13 17:38:45 2009 From: kathryn at bassett.net (Kathryn Bassett) Date: Fri, 13 Feb 2009 15:38:45 -0800 Subject: [AccessD] I GOT IT! (was RE: Don't miss this special occasion...) In-Reply-To: <4995f645.0ec5100a.6d5a.4e81@mx.google.com> References: <4995B615.90208@colbyconsulting.com> <4995f645.0ec5100a.6d5a.4e81@mx.google.com> Message-ID: http://bassett.net/storage/epochtime1234567890.jpg -- Kathryn Rhinehart Bassett (Pasadena CA) "Genealogy is my bag" "GH is my soap" kathryn at bassett.net http://bassett.net > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: 13 Feb 2009 2:38 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Don't miss this special occasion... > > Thank you Kathryn. > Beats watching TV - marginally! > Max > Ps. 54 minutes to go - what happens then? > > As Filch says in one of the Harry Potter movies... "A pity > they let the old punishment die... Was a time detention found > you hanging by your thumbs in the dungeons... God, I miss the > screaming." > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of > Kathryn Bassett > Sent: 13 February 2009 22:34 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Don't miss this special occasion... > > Countdown - http://coolepochcountdown.com/ Kathryn From krosenstiel at comcast.net Fri Feb 13 18:27:27 2009 From: krosenstiel at comcast.net (Karen Rosenstiel) Date: Fri, 13 Feb 2009 16:27:27 -0800 Subject: [AccessD] Don't miss this special occasion... In-Reply-To: <49960394.3090304@colbyconsulting.com> References: <4995B615.90208@colbyconsulting.com> <4995F7B9.2090105@colbyconsulting.com> <4995fb7a.0856100a.7c9b.ffffac52@mx.google.com> <4995FF03.3040108@colbyconsulting.com><4996002c.0856100a.77f2.46ee@mx.google.com> <49960394.3090304@colbyconsulting.com> Message-ID: <894B52D856CF47A4A79AEF61119F0A4A@bigmama> Google had it on the screen in a small green font under the main title. Now it's gone. So just a little momentary treat. Regards, Karen Rosenstiel Seattle WA USA -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 13, 2009 3:35 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Don't miss this special occasion... LOL. I was reading something else and missed the moment. Oh well. ;) John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > No, I sent it via List > > Here it is when countdown says 1234567200 > > Copied to your personal address > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 13 February 2009 23:15 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Don't miss this special occasion... > > Hmmm... > > Did I miss it already? > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> John. Here is a test of this system. >> When the countdown says 123456000 I will send this msga. >> Can you return it asap and I can see how long form uk to usa and back >> Ta Max >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: 13 February 2009 22:44 >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Don't miss this special occasion... >> >> And I thought I had too much time on my hands! >> >> ;-) >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Kathryn Bassett wrote: >>> Countdown - http://coolepochcountdown.com/ Kathryn >>> >>>> -----Original Message----- >>>> From: accessd-bounces at databaseadvisors.com >>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>>> Sent: 13 Feb 2009 10:04 AM >>>> To: Access Developers discussion and problem solving >>>> Subject: [AccessD] Don't miss this special occasion... >>>> >>>> There is something that is important happening today! And I just >>>> know how interested you are in this bit of time trivia for all you >>>> IT geeks out there ... >>>> >>>> Many computer operating systems measure time by counting the number >>>> of seconds before/after midnight of January 1, 1970. >>>> This is known as POSIX or Universal Time Code (UTC) time. >>>> >>>> Today, a memorable event occurs in UTC time. >>>> On Friday, Feb 13 2009 at exactly 3:31:30 PM the UTC will be >>>> 1234567890 - the numbers of seconds since 1/1/70. >>>> -- >>>> John W. Colby >>>> www.ColbyConsulting.com >>>> -- >>>> AccessD mailing list >>>> AccessD at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>> Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Sat Feb 14 03:55:49 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Sat, 14 Feb 2009 10:55:49 +0100 Subject: [AccessD] I GOT IT! (was RE: Don't miss this special occasion...) Message-ID: Hi Kathryn You are a true geek! /gustav >>> kathryn at bassett.net 14-02-2009 00:38 >>> http://bassett.net/storage/epochtime1234567890.jpg -- Kathryn Rhinehart Bassett (Pasadena CA) "Genealogy is my bag" "GH is my soap" kathryn at bassett.net http://bassett.net > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: 13 Feb 2009 2:38 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Don't miss this special occasion... > > Thank you Kathryn. > Beats watching TV - marginally! > Max > Ps. 54 minutes to go - what happens then? > > As Filch says in one of the Harry Potter movies... "A pity > they let the old punishment die... Was a time detention found > you hanging by your thumbs in the dungeons... God, I miss the > screaming." > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of > Kathryn Bassett > Sent: 13 February 2009 22:34 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Don't miss this special occasion... > > Countdown - http://coolepochcountdown.com/ Kathryn From max.wanadoo at gmail.com Sat Feb 14 03:58:03 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sat, 14 Feb 2009 09:58:03 -0000 Subject: [AccessD] Don't miss this special occasion... In-Reply-To: <49960394.3090304@colbyconsulting.com> References: <4995B615.90208@colbyconsulting.com> <4995F7B9.2090105@colbyconsulting.com> <4995fb7a.0856100a.7c9b.ffffac52@mx.google.com> <4995FF03.3040108@colbyconsulting.com> <4996002c.0856100a.77f2.46ee@mx.google.com> <49960394.3090304@colbyconsulting.com> Message-ID: <499695b1.02ab100a.73e4.ffffa3a4@mx.google.com> Hmmm, calls for smacked legs.... Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 13 February 2009 23:35 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Don't miss this special occasion... LOL. I was reading something else and missed the moment. Oh well. ;) John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > No, I sent it via List > > Here it is when countdown says 1234567200 > > Copied to your personal address > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 13 February 2009 23:15 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Don't miss this special occasion... > > Hmmm... > > Did I miss it already? > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> John. Here is a test of this system. >> When the countdown says 123456000 I will send this msga. >> Can you return it asap and I can see how long form uk to usa and back >> Ta >> Max >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: 13 February 2009 22:44 >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Don't miss this special occasion... >> >> And I thought I had too much time on my hands! >> >> ;-) >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Kathryn Bassett wrote: >>> Countdown - http://coolepochcountdown.com/ >>> Kathryn >>> >>>> -----Original Message----- >>>> From: accessd-bounces at databaseadvisors.com >>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>>> Sent: 13 Feb 2009 10:04 AM >>>> To: Access Developers discussion and problem solving >>>> Subject: [AccessD] Don't miss this special occasion... >>>> >>>> There is something that is important happening today! And I >>>> just know how interested you are in this bit of time trivia >>>> for all you IT geeks out there ... >>>> >>>> Many computer operating systems measure time by counting the >>>> number of seconds before/after midnight of January 1, 1970. >>>> This is known as POSIX or Universal Time Code (UTC) time. >>>> >>>> Today, a memorable event occurs in UTC time. >>>> On Friday, Feb 13 2009 at exactly 3:31:30 PM the UTC will be >>>> 1234567890 - the numbers of seconds since 1/1/70. >>>> -- >>>> John W. Colby >>>> www.ColbyConsulting.com >>>> -- >>>> AccessD mailing list >>>> AccessD at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>> Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From fuller.artful at gmail.com Sat Feb 14 05:47:09 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Sat, 14 Feb 2009 06:47:09 -0500 Subject: [AccessD] USING CLSMSGDEMO In-Reply-To: <4995984E.3000804@colbyconsulting.com> References: <4995984E.3000804@colbyconsulting.com> Message-ID: <29f585dd0902140347s7534b4c2u4c36e2d255ac24c5@mail.gmail.com> This one was really fun! I have one question, though. I think that I already know the answer but want to make sure. The code... Function mDemoMsgInit() If mclsDemoMsgSteve Is Nothing Then ... Do we check mclsDemoMsgSteve because Steve was the first instance created? I created a little test harness I call OfficeChatter. Sub OfficeChatter() cDemoMsgGeorge.mSendMsg "Linda", "Lunch Today", "After the meeting we will all be meeting for lunch at the deli one building over." cDemoMsgLinda.mSendMsg "Steve", "Tuesday's meeting", "Sorry, Steve. I won't be able to attend the meeting." cDemoMsgGeorge.mSendMsg "John", "Lunch Today", "After the meeting we will all be meeting for lunch at the deli one building over." cDemoMsgLinda.mSendMsg "George", "Lunch Today", "Whew! I got out of Steve's meeting. It would be as exciting as watching paint dry." End Sub Clear all the breakpoints and run it, and you'll see why I named it that. Where's my diploma, teach? :) Arthur From jwcolby at colbyconsulting.com Sat Feb 14 06:43:43 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 14 Feb 2009 07:43:43 -0500 Subject: [AccessD] USING CLSMSGDEMO In-Reply-To: <29f585dd0902140347s7534b4c2u4c36e2d255ac24c5@mail.gmail.com> References: <4995984E.3000804@colbyconsulting.com> <29f585dd0902140347s7534b4c2u4c36e2d255ac24c5@mail.gmail.com> Message-ID: <4996BC7F.8070907@colbyconsulting.com> Arthur, We could have checked any of the variables, it doesn't matter which. Once initialized the variables will stay initialized until they are set to nothing somehow. I just use the If Var is nothing syntax because it is fairly fast code and tests the actual variable we care about. In this case, if one is set, the others will be too since there is no way to clear just one at a time. Arthur, I am impressed! Individually these lectures were pretty short and sweet, but there were a lot of them and it takes effort to keep with it. That last lecture will probably take some time for many folks to work through and really understand the code jumping around. I like your "Office chatter". I often use a function like that down in the bottom of the initialization module exactly as a test harness, just so that I don't have to keep typing stuff into the debug window. Was it you who wanted to keep an invoice form synced to a customer form? Now you have a message channel to use to keep the forms synced. Set up mclsMsg in the header of the Customer form. frmCustomer will then send messages in OnCurrent, in other words every time you move through the records, send a message saying "I changed records". In the from, send me.Name, Leave "To" blank (any form might want to process the messages). In Subject put "CustomerID", and in Msg put the actual long integer that is the customer PKID. Now over in frmInvoice, dim Withevents mclsMsg. Sink the message event. In the message sink, do an "if From = 'frmCustomer' then" and process messages from frmCustomer. When a message comes in with CustomerID in the Subj, take the CustomerID in the Msg and use it to filter the form to just records for that customer. Dead simple now that you understand classes and sinking events. You have a message class to use as the message channel. Fun stuff! John W. Colby www.ColbyConsulting.com Arthur Fuller wrote: > This one was really fun! I have one question, though. I think that I already > know the answer but want to make sure. The code... > > Function mDemoMsgInit() > If mclsDemoMsgSteve Is Nothing Then > ... > > Do we check mclsDemoMsgSteve because Steve was the first instance created? > > I created a little test harness I call OfficeChatter. > > Sub OfficeChatter() > cDemoMsgGeorge.mSendMsg "Linda", "Lunch Today", "After the meeting we > will all be meeting for lunch at the deli one building over." > cDemoMsgLinda.mSendMsg "Steve", "Tuesday's meeting", "Sorry, Steve. I > won't be able to attend the meeting." > cDemoMsgGeorge.mSendMsg "John", "Lunch Today", "After the meeting we > will all be meeting for lunch at the deli one building over." > cDemoMsgLinda.mSendMsg "George", "Lunch Today", "Whew! I got out of > Steve's meeting. It would be as exciting as watching paint dry." > End Sub > Clear all the breakpoints and run it, and you'll see why I named it that. > > Where's my diploma, teach? :) > > Arthur From fuller.artful at gmail.com Sat Feb 14 07:02:19 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Sat, 14 Feb 2009 08:02:19 -0500 Subject: [AccessD] USING CLSMSGDEMO In-Reply-To: <4996BC7F.8070907@colbyconsulting.com> References: <4995984E.3000804@colbyconsulting.com> <29f585dd0902140347s7534b4c2u4c36e2d255ac24c5@mail.gmail.com> <4996BC7F.8070907@colbyconsulting.com> Message-ID: <29f585dd0902140502v7e48c1e8m5a130a7ee62424ab@mail.gmail.com> I am going to try building the Customers-Orders thing today. I have some other stuff to do, but this is such fun the other stuff can wait a while :) Arthur On Sat, Feb 14, 2009 at 7:43 AM, jwcolby wrote: > Arthur, > > We could have checked any of the variables, it doesn't matter which. Once > initialized the variables > will stay initialized until they are set to nothing somehow. I just use > the If Var is nothing > syntax because it is fairly fast code and tests the actual variable we care > about. In this case, if > one is set, the others will be too since there is no way to clear just one > at a time. > > Arthur, I am impressed! Individually these lectures were pretty short and > sweet, but there were a > lot of them and it takes effort to keep with it. That last lecture will > probably take some time for > many folks to work through and really understand the code jumping around. > > I like your "Office chatter". I often use a function like that down in the > bottom of the > initialization module exactly as a test harness, just so that I don't have > to keep typing stuff into > the debug window. > > Was it you who wanted to keep an invoice form synced to a customer form? > Now you have a message > channel to use to keep the forms synced. Set up mclsMsg in the header of > the Customer form. > frmCustomer will then send messages in OnCurrent, in other words every time > you move through the > records, send a message saying "I changed records". In the from, send > me.Name, Leave "To" blank > (any form might want to process the messages). In Subject put > "CustomerID", and in Msg put the > actual long integer that is the customer PKID. > > Now over in frmInvoice, dim Withevents mclsMsg. Sink the message event. > In the message sink, do an > "if From = 'frmCustomer' then" and process messages from frmCustomer. When > a message comes in with > CustomerID in the Subj, take the CustomerID in the Msg and use it to filter > the form to just records > for that customer. > > Dead simple now that you understand classes and sinking events. You have a > message class to use as > the message channel. > > Fun stuff! > > John W. Colby > www.ColbyConsulting.com > > From john at winhaven.net Sat Feb 14 09:17:49 2009 From: john at winhaven.net (John Bartow) Date: Sat, 14 Feb 2009 09:17:49 -0600 Subject: [AccessD] ActiveX kill-bit patch zaps Visual Basic apps Message-ID: <00cd01c98eb7$65c57ad0$31507070$@net> FYI: http://windowssecrets.com/comp/090214 From jwcolby at colbyconsulting.com Sat Feb 14 10:20:00 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 14 Feb 2009 11:20:00 -0500 Subject: [AccessD] ActiveX kill-bit patch zaps Visual Basic apps In-Reply-To: <00cd01c98eb7$65c57ad0$31507070$@net> References: <00cd01c98eb7$65c57ad0$31507070$@net> Message-ID: <4996EF30.9040609@colbyconsulting.com> I have to tell you that I use OpenDNS and it works really well. Highly recommended. John W. Colby www.ColbyConsulting.com John Bartow wrote: > FYI: > > http://windowssecrets.com/comp/090214 > > > > From kathryn at bassett.net Sat Feb 14 12:54:35 2009 From: kathryn at bassett.net (Kathryn Bassett) Date: Sat, 14 Feb 2009 10:54:35 -0800 Subject: [AccessD] I GOT IT! (was RE: Don't miss this special occasion...) In-Reply-To: References: Message-ID: <3C69A16CF6A34B14A167388F1B854BAA@KathrynVista> I consider that high praise! BTW, never heard of epochtime til I saw something about it on another list. Kathryn > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of > Gustav Brock > Sent: 14 Feb 2009 1:56 AM > To: accessd at databaseadvisors.com > Subject: [AccessD] I GOT IT! (was RE: Don't miss this special > occasion...) > > Hi Kathryn > > You are a true geek! > > /gustav > > >>> kathryn at bassett.net 14-02-2009 00:38 >>> > http://bassett.net/storage/epochtime1234567890.jpg > > -- > Kathryn Rhinehart Bassett (Pasadena CA) > "Genealogy is my bag" "GH is my soap" > kathryn at bassett.net > http://bassett.net > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of > Max Wanadoo > > Sent: 13 Feb 2009 2:38 PM > > To: 'Access Developers discussion and problem solving' > > Subject: Re: [AccessD] Don't miss this special occasion... > > > > Thank you Kathryn. > > Beats watching TV - marginally! > > Max > > Ps. 54 minutes to go - what happens then? > > > > As Filch says in one of the Harry Potter movies... "A pity they let > > the old punishment die... Was a time detention found you hanging by > > your thumbs in the dungeons... God, I miss the screaming." > > > > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of > > Kathryn Bassett > > Sent: 13 February 2009 22:34 > > To: 'Access Developers discussion and problem solving' > > Subject: Re: [AccessD] Don't miss this special occasion... > > > > Countdown - http://coolepochcountdown.com/ Kathryn > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From thewaddles at sbcglobal.net Sat Feb 14 18:42:46 2009 From: thewaddles at sbcglobal.net (Kevin) Date: Sat, 14 Feb 2009 16:42:46 -0800 Subject: [AccessD] Colby teaches Classes on Classes In-Reply-To: <4994AEE2.8010204@colbyconsulting.com> References: <4994AEE2.8010204@colbyconsulting.com> Message-ID: Mr. C, I found your threads on classes well into the lecture series so I am behind. In trying to catch up I tried going to your website to see if you had the information loaded there. For the past couple of days I get an error when I try to access http://www.colbyconsulting.com/ It says: Server Application Unavailable The web application you are attempting to access on this web server is currently unavailable. Please hit the "Refresh" button in your web browser to retry your request. Administrator Note: An error message detailing the cause of this specific request failure can be found in the application event log of the web server. Please review this log entry to discover what caused this error to occur. Just thought I'd let you know. Thanks for taking the time to teach, Kevin From jwcolby at colbyconsulting.com Sat Feb 14 19:50:27 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 14 Feb 2009 20:50:27 -0500 Subject: [AccessD] Colby teaches Classes on Classes In-Reply-To: References: <4994AEE2.8010204@colbyconsulting.com> Message-ID: <499774E3.8060405@colbyconsulting.com> Guys, I asked my web hosting company to upgrade my site from DotNetNuke 3.X to 5.X. To do this apparently you have to upgrade to 4.x, then to 5.x. It seems the hosting company is having issues doing the upgrade for me. If you try to go to my site and it is out of order, well... I am hoping that they figure it out. I reaaaaaally didn't want to have to do this myself. John W. Colby www.ColbyConsulting.com Kevin wrote: > Mr. C, > > I found your threads on classes well into the lecture series so I am behind. > > In trying to catch up I tried going to your website to see if you had the > information loaded there. > > For the past couple of days I get an error when I try to access > http://www.colbyconsulting.com/ > > It says: > Server Application Unavailable > The web application you are attempting to access on this web server is > currently unavailable. Please hit the "Refresh" button in your web browser > to retry your request. > > Administrator Note: An error message detailing the cause of this specific > request failure can be found in the application event log of the web server. > Please review this log entry to discover what caused this error to occur. > > Just thought I'd let you know. > > Thanks for taking the time to teach, > Kevin > > From terry.mace at baesystems.com Sun Feb 15 16:49:22 2009 From: terry.mace at baesystems.com (MACE, Terry) Date: Mon, 16 Feb 2009 09:49:22 +1100 Subject: [AccessD] USING CLSMSGDEMO In-Reply-To: <200902131558.n1DFwNqh016321@bunya.baea.com.au> References: <200902131558.n1DFwNqh016321@bunya.baea.com.au> Message-ID: <3881CF7F5868CA419AAF1179D19F6BAC02B52EC4@abw3ex1.au.baesystems.com> JC, Should the name be clsDemoMsg (as the first 3 line of code are, or clsMsgDemo as the earlier lesson had us save it? Regards Terry Mace Logistics Support Officer & Maintenance Supervisor -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, 14 February 2009 2:57 AM To: Access Developers discussion and problem solving Subject: [AccessD] USING CLSMSGDEMO Unlike all of the previous lectures, THIS ONE is heavy duty. the reason is simply that you will be stepping through the code line by line to watch and understand the program flow. you MUST do this if you ever hope to truly understand classes, methods, Raising an event, sinking an event and how it all interacts. Do NOT skip over stepping through the code or all that you have learned will be so much less helpful. Understanding in your head how it all plays together will be very useful, and perhaps critical to becoming a first class user of classes. I am sure that there will be plenty of questions when we are done so go to it. In the previous lecture we created a class that will sink and source events from clsMsg. This lecture will show you how to set up, cleanup and use freestanding classes (which includes clsMsg by the way). * In the database window, click Insert / Module. This will be a plain module, not a class. * In the module header insert the following code: Private mclsDemoMsgSteve As clsDemoMsg Private mclsDemoMsgGeorge As clsDemoMsg Private mclsDemoMsgLinda As clsDemoMsg This code simply dimensions three variables to hold instances of clsDemoMsg. Notice we dimension them private. In general it is good practice to make variables private unless there is a good reason to make them public, and then expose those variables through functions if they need to be used outside of the current module. * In the module body, type in the following code: Function mDemoMsgInit() If mclsDemoMsgSteve Is Nothing Then Set mclsDemoMsgSteve = New clsDemoMsg mclsDemoMsgSteve.pName = "Steve" Set mclsDemoMsgGeorge = New clsDemoMsg mclsDemoMsgGeorge.pName = "George" Set mclsDemoMsgLinda = New clsDemoMsg mclsDemoMsgLinda.pName = "Linda" End If End Function This code SETs the class instances to a new instance of clsDemoMsg and immediately sets the instances pName property. It does so three times, once for each instance of the class that we will be playing with. Function mDemoMmsgTerm() Set mclsDemoMsgSteve = Nothing Set mclsDemoMsgGeorge = Nothing Set mclsDemoMsgLinda = Nothing End Function This function allows us to clean up the class instances when we are done playing. Function cDemoMsgSteve() As clsDemoMsg mDemoMsgInit Set cDemoMsgSteve = mclsDemoMsgSteve End Function Function cDemoMsgGeorge() As clsDemoMsg mDemoMsgInit Set cDemoMsgGeorge = mclsDemoMsgGeorge End Function Function cDemoMsgLinda() As clsDemoMsg mDemoMsgInit Set cDemoMsgLinda = mclsDemoMsgLinda End Function These three functions get pointers to the three instances of clsDemo dimensioned in the header of the module. It first makes sure that the class instances are initialized by calling mDemoMsgInit. That is all that is required to dimension, initialize, terminate and use instances of ANY class. You can have a single instance of the class, or many instances - in this case three. By the way, we could have stored the instances in a collection and created as many as we wanted but that would have made the code less readable for this demo. * Now... I want you to step through the code to see exactly what is going on so please set a breakpoint on the mDemoMsgInit line of EACH function cDemoMsg() function. * In the debug window type in the following code and hit enter: cDemoMsgSteve.mSendMsg "George", "Tuesday's meeting", "Tuesday morning the entire teem will meet in the conference room at 09:00 am" When you hit enter you should stop at the mDemoMsgInit() line in cDemoMsgSteve(). Start to step through the code. The first thing that will happen is to run mDemoMmsgInit(). The first time through the code the private variables at the top of the module will be Nothing and you will fall into the code that initializes each class instance. Continue to step into the code. You should step into the Class_Initialize for each clsDemoMsg instance, and of course that code initializes the message class itself for THIS instance of clsDemoMsg. Once you step out of that _Initialize code you should be back in mDemoMsgInit(). The next thing that happens is that you step into the pName property and store a name string into the mstrName variable in the top of the class header. When you step out of pName you will be back in mDemoMsgInit. You will then do the next instance and the next. After initializing every private variable in the top of the module, control should return to cDemoMsgSteve and you will get an instance of the class itself, properly initialized. Now that you have an instance of the clsMsgDemo, you will step into the .mSendMsg method of the class. You have passed in some information to this method and basically you will just send a message using the mclsMsg. NOTICE that when you execute mClsMsg.Send, control passes into clsMsg send method. This is where the event is generated (raised) that all the class instances are sinking. Once the event is raised, control will pass to EVERY event sink for that event. We have THREE instances of clsDemoMsg, and each one of them sinks this event so every one of these instances will get control, in the order that they were dimensioned. Go ahead and step into the mclsMsg.Send and step into the RaiseEvent. Control is transferred to some event sink somewhere. You should now be in mclsMsg_Message, about to check "If varTo = mstrName Then". The first thing I want you to do is to use intellisense to hover over VarTo and mstrName. VarTo (George) is of course the intended recipient of this message, and mstrNname (Steve) is the name of the class instance that currently has control. Step the code. Since they do not match you do not fall into the code to display the message but rather just fall down to where you will exit. Step out of this function. Notice that code control immediately transfers to the next event sink. Again step down to the If statement, and hover your mouse cursor over VarTo (George) and mstrName (George). Since George is the class instance that this message is directed to, control will fall into the If Then statement and we will build the message and display it. Figure out and understand the code that generates the message. Continue stepping until the message box pops up and read it. Continue stepping until you exit this function and notice that you are right back in the event sink for the last class instance. Step on through (no message will be built) until you exit the function. Notice that you are back in the clsMsg.Send method and about to exit that method. Step out of that method. Notice that you are back in the mSendMsg() method of clsDemoMsg and about to exit. Step out of that method. Notice that you are back in the debug window. WOAAAAAH. What a rush eh? You have just watched an event be raised, and sunk in three different places. The original message was created by cDemoMsgSteve.mSendMsg (Steve), and the message caused clsMmsg to RAISE an event. That message was sunk by ALL THREE instances of clsDemoMsg, first Steve, then George, then Linda. The ORDER that these instances got control was caused by the ORDER that you instantiated them in mDemoMsgInit(). Had you instantiated them in some other order then they would receive control in that some other order. George was the intended recipient so only George processed the message in the event sink. Now I want you to do this again, stepping through the code. Notice that I am using a different instance of the class (George) to send the message, and a different recipient (Linda). This time use the following code in the debug window: cDemoMsgGeorge.mSendMsg "Linda", "Lunch Today", "After the meeting we will all be meeting for lunch at the deli one building over." Notice first that the mDemoMsgInit does not perform the initialization because the classes were already initialized, so it just steps back out. Finally I want you to use the following code to send a message that no one picks up and displays: cDemoMsgGeorge.mSendMsg "John", "Lunch Today", "After the meeting we will all be meeting for lunch at the deli one building over." The reason no one picks up the message is that there is no class instance with the name of John in mstrName, and so none of the instances process the message. This is about as heavy duty as you will ever get. You would be wise to step through this code as many times as you need to fully understand what is going on at each step. How control passes to a method of a class and parameters are passed in. How an event is raised, and IMMEDIATELY control starts to pass to the event sinks. What order the event sinks process and why they process in that order. If you understand this lesson, you will have class events down pat. I KNOW it will be confusing, but just do it over and over until it sinks in. Then raise an event to pat yourself on the back. This lecture has been the most complex so far in terms of your being able to trace code execution. We have learned how to use a function that initializes our class instances and return an instance of a class. We then step into a method of that class. We watched the method call out to another class (clsMsg). We watched clsMsg RAISE an event. We watched the code control transfer to each of the three event sinks, and we watched the code be processed differently in each event sink because of logic inside of the event sink. We then watched the code unwind back to the calling code and finally back out to the debug window. Congratulations, you are now Class / Event gurus. A diploma will be awarded. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com "Warning: The information contained in this email and any attached files is confidential to BAE Systems Australia. If you are not the intended recipient, any use, disclosure or copying of this email or any attachments is expressly prohibited. If you have received this email in error, please notify us immediately. VIRUS: Every care has been taken to ensure this email and its attachments are virus free, however, any loss or damage incurred in using this email is not the sender's responsibility. It is your responsibility to ensure virus checks are completed before installing any data sent in this email to your computer." From jwcolby at colbyconsulting.com Sun Feb 15 21:03:30 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sun, 15 Feb 2009 22:03:30 -0500 Subject: [AccessD] Fix Naming Error: was Re: USING CLSMSGDEMO In-Reply-To: <3881CF7F5868CA419AAF1179D19F6BAC02B52EC4@abw3ex1.au.baesystems.com> References: <200902131558.n1DFwNqh016321@bunya.baea.com.au> <3881CF7F5868CA419AAF1179D19F6BAC02B52EC4@abw3ex1.au.baesystems.com> Message-ID: <4998D782.2010707@colbyconsulting.com> > Should the name be clsDemoMsg (as the first 3 line of code are, or clsMsgDemo as the earlier lesson had us save it? Well... The name of the class is clsDemoMsg, at least in my demo database, and also where it is referenced in basDemoMsgTest. Looking back at the lecture where we create the class however, I do say to "immediately save as clsMsgDemo". My apologies. Part of what goes on is that occasionally I have to write more than one lecture at a time because I am breaking the lectures down into such small pieces. I can't know whether the class actually runs correctly unless I then write the code that excercises the class, and in order to do that I also have to write the initialization module. In the process I saved the class as one thing (in my demo database) and wrote another when I told you to save it in the lecture. 8-( To fix it we have a couple of choices. One would be to simply change the lecture to save it to clsDemoMsg. The other would be to change everywhere where I use it to say clsMsgDemo. Since changing the name of the class "fixes" the later lessons to work correctly, that seems the simplest thing to do. So... in the database window, rename clsMsgDemo to clsDemoMsg. I will fix my lecture where we create that class to say "immediately save as clsDemoMsg". Again my apologies, John W. Colby www.ColbyConsulting.com MACE, Terry wrote: > JC, > > Should the name be clsDemoMsg (as the first 3 line of code are, or > clsMsgDemo as the earlier lesson had us save it? > > Regards > > Terry Mace > Logistics Support Officer & Maintenance Supervisor > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Saturday, 14 February 2009 2:57 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] USING CLSMSGDEMO > > Unlike all of the previous lectures, THIS ONE is heavy duty. the reason > is simply that you will be > stepping through the code line by line to watch and understand the > program flow. you MUST do this > if you ever hope to truly understand classes, methods, Raising an event, > sinking an event and how it > all interacts. Do NOT skip over stepping through the code or all that > you have learned will be so > much less helpful. Understanding in your head how it all plays together > will be very useful, and > perhaps critical to becoming a first class user of classes. I am sure > that there will be plenty of > questions when we are done so go to it. > > In the previous lecture we created a class that will sink and source > events from clsMsg. This > lecture will show you how to set up, cleanup and use freestanding > classes (which includes clsMsg by > the way). > > * In the database window, click Insert / Module. This will be a > plain module, not a class. > * In the module header insert the following code: > > Private mclsDemoMsgSteve As clsDemoMsg > Private mclsDemoMsgGeorge As clsDemoMsg > Private mclsDemoMsgLinda As clsDemoMsg > > This code simply dimensions three variables to hold instances of > clsDemoMsg. Notice we dimension > them private. In general it is good practice to make variables private > unless there is a good > reason to make them public, and then expose those variables through > functions if they need to be > used outside of the current module. > > * In the module body, type in the following code: > > Function mDemoMsgInit() > If mclsDemoMsgSteve Is Nothing Then > Set mclsDemoMsgSteve = New clsDemoMsg > mclsDemoMsgSteve.pName = "Steve" > > Set mclsDemoMsgGeorge = New clsDemoMsg > mclsDemoMsgGeorge.pName = "George" > > Set mclsDemoMsgLinda = New clsDemoMsg > mclsDemoMsgLinda.pName = "Linda" > End If > End Function > > This code SETs the class instances to a new instance of clsDemoMsg and > immediately sets the > instances pName property. It does so three times, once for each > instance of the class that we will > be playing with. > > Function mDemoMmsgTerm() > Set mclsDemoMsgSteve = Nothing > Set mclsDemoMsgGeorge = Nothing > Set mclsDemoMsgLinda = Nothing > End Function > > This function allows us to clean up the class instances when we are done > playing. > > Function cDemoMsgSteve() As clsDemoMsg > mDemoMsgInit > Set cDemoMsgSteve = mclsDemoMsgSteve > End Function > > Function cDemoMsgGeorge() As clsDemoMsg > mDemoMsgInit > Set cDemoMsgGeorge = mclsDemoMsgGeorge > End Function > > Function cDemoMsgLinda() As clsDemoMsg > mDemoMsgInit > Set cDemoMsgLinda = mclsDemoMsgLinda > End Function > > These three functions get pointers to the three instances of clsDemo > dimensioned in the header of > the module. It first makes sure that the class instances are > initialized by calling mDemoMsgInit. > > That is all that is required to dimension, initialize, terminate and use > instances of ANY class. > You can have a single instance of the class, or many instances - in this > case three. By the way, we > could have stored the instances in a collection and created as many as > we wanted but that would have > made the code less readable for this demo. > > * Now... I want you to step through the code to see exactly what > is going on so please set a > breakpoint on the mDemoMsgInit line of EACH function cDemoMsg() > function. > * In the debug window type in the following code and hit enter: > > cDemoMsgSteve.mSendMsg "George", "Tuesday's meeting", "Tuesday morning > the entire teem will meet in > the conference room at 09:00 am" > > When you hit enter you should stop at the mDemoMsgInit() line in > cDemoMsgSteve(). Start to step > through the code. > > The first thing that will happen is to run mDemoMmsgInit(). The first > time through the code the > private variables at the top of the module will be Nothing and you will > fall into the code that > initializes each class instance. Continue to step into the code. > > You should step into the Class_Initialize for each clsDemoMsg instance, > and of course that code > initializes the message class itself for THIS instance of clsDemoMsg. > Once you step out of that > _Initialize code you should be back in mDemoMsgInit(). > > The next thing that happens is that you step into the pName property and > store a name string into > the mstrName variable in the top of the class header. When you step out > of pName you will be back > in mDemoMsgInit. You will then do the next instance and the next. > > After initializing every private variable in the top of the module, > control should return to > cDemoMsgSteve and you will get an instance of the class itself, properly > initialized. > > Now that you have an instance of the clsMsgDemo, you will step into the > .mSendMsg method of the > class. You have passed in some information to this method and basically > you will just send a > message using the mclsMsg. NOTICE that when you execute mClsMsg.Send, > control passes into clsMsg > send method. > > This is where the event is generated (raised) that all the class > instances are sinking. Once the > event is raised, control will pass to EVERY event sink for that event. > We have THREE instances of > clsDemoMsg, and each one of them sinks this event so every one of these > instances will get control, > in the order that they were dimensioned. > > Go ahead and step into the mclsMsg.Send and step into the RaiseEvent. > Control is transferred to > some event sink somewhere. You should now be in mclsMsg_Message, about > to check "If varTo = > mstrName Then". > > The first thing I want you to do is to use intellisense to hover over > VarTo and mstrName. VarTo > (George) is of course the intended recipient of this message, and > mstrNname (Steve) is the name of > the class instance that currently has control. > > Step the code. Since they do not match you do not fall into the code to > display the message but > rather just fall down to where you will exit. Step out of this > function. > > Notice that code control immediately transfers to the next event sink. > Again step down to the If > statement, and hover your mouse cursor over VarTo (George) and mstrName > (George). Since George is > the class instance that this message is directed to, control will fall > into the If Then statement > and we will build the message and display it. > > Figure out and understand the code that generates the message. Continue > stepping until the message > box pops up and read it. > > Continue stepping until you exit this function and notice that you are > right back in the event sink > for the last class instance. Step on through (no message will be built) > until you exit the function. > > Notice that you are back in the clsMsg.Send method and about to exit > that method. Step out of that > method. > > Notice that you are back in the mSendMsg() method of clsDemoMsg and > about to exit. Step out of that > method. > > Notice that you are back in the debug window. > > WOAAAAAH. What a rush eh? You have just watched an event be raised, > and sunk in three different > places. The original message was created by cDemoMsgSteve.mSendMsg > (Steve), and the message caused > clsMmsg to RAISE an event. That message was sunk by ALL THREE instances > of clsDemoMsg, first Steve, > then George, then Linda. > > The ORDER that these instances got control was caused by the ORDER that > you instantiated them in > mDemoMsgInit(). Had you instantiated them in some other order then they > would receive control in > that some other order. > > George was the intended recipient so only George processed the message > in the event sink. > > Now I want you to do this again, stepping through the code. Notice that > I am using a different > instance of the class (George) to send the message, and a different > recipient (Linda). > > This time use the following code in the debug window: > > cDemoMsgGeorge.mSendMsg "Linda", "Lunch Today", "After the meeting we > will all be meeting for lunch > at the deli one building over." > > Notice first that the mDemoMsgInit does not perform the initialization > because the classes were > already initialized, so it just steps back out. > > Finally I want you to use the following code to send a message that no > one picks up and displays: > > cDemoMsgGeorge.mSendMsg "John", "Lunch Today", "After the meeting we > will all be meeting for lunch > at the deli one building over." > > The reason no one picks up the message is that there is no class > instance with the name of John in > mstrName, and so none of the instances process the message. > > This is about as heavy duty as you will ever get. You would be wise to > step through this code as > many times as you need to fully understand what is going on at each > step. How control passes to a > method of a class and parameters are passed in. How an event is raised, > and IMMEDIATELY control > starts to pass to the event sinks. What order the event sinks process > and why they process in that > order. > > If you understand this lesson, you will have class events down pat. I > KNOW it will be confusing, > but just do it over and over until it sinks in. Then raise an event to > pat yourself on the back. > > This lecture has been the most complex so far in terms of your being > able to trace code execution. > We have learned how to use a function that initializes our class > instances and return an instance of > a class. We then step into a method of that class. We watched the > method call out to another class > (clsMsg). We watched clsMsg RAISE an event. We watched the code > control transfer to each of the > three event sinks, and we watched the code be processed differently in > each event sink because of > logic inside of the event sink. We then watched the code unwind back to > the calling code and > finally back out to the debug window. > > Congratulations, you are now Class / Event gurus. A diploma will be > awarded. > > From jwcolby at colbyconsulting.com Sun Feb 15 21:16:30 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sun, 15 Feb 2009 22:16:30 -0500 Subject: [AccessD] My web site is half up Message-ID: <4998DA8E.90908@colbyconsulting.com> Well, my web site is less than half up, but it is at least showing a web page. The upgrade from DNN version 3.x to 5.x required an intermediate upgrade to 4.x, which is why I hired the hosting company to do it in the first place. Well... that upgrade was less than completely successful. The upgrade from 3.x To 4.x was a fairly major change, including moving from .Net 1.x to .Net 2.x. I suspect that the version of SQL Server also changed. Additionally I had used a couple of third party modules to do stuff, and I think those modules were not compatible with 4.x. Anyway, my web site is pretty broke at this point. I expected to have issues, I was hoping for the best, but didn't get that. In fact the web hosting people told me that "my site isn't compatible with DNN 5.X". Now everything I have read says that 4.x to 5.x is "simple" as opposed to the 3.X to 4.X upgrade so I don't know quite what to think at this point. My site is at 4.X and I want to go ahead and get to 5.x. Basically if it is already broken, I might as well just try to get it up to 5.X and then start fixing the stuff. If we happen to have any DNN gurus on the list I could use some guidance. Otherwise I am going to continue onwards trying to learn enough to migrate the site to 5.X and repair everything. -- John W. Colby www.ColbyConsulting.com From Alun.Garraway at otto.de Mon Feb 16 04:02:53 2009 From: Alun.Garraway at otto.de (Garraway, Alun) Date: Mon, 16 Feb 2009 11:02:53 +0100 Subject: [AccessD] More Class lectures? In-Reply-To: <49944C57.6030308@colbyconsulting.com> References: <49944C57.6030308@colbyconsulting.com> Message-ID: <781809D0CBCA4D4C8599423EC952DF75AE693F@ntovmail02.ad.otto.de> Hello John, Great stuff! I'm about half-way through (only saw them on Thursday evening ;-( that's what comes from not reading mails for a while ;-) but I'm catching up quick. Think I could use some of this for a DB that I'm re-doing from ground up. So can only say: "Please Sir, can I have so more" All the best and hope you have a good start for the week :-) alun -----Urspr?ngliche Nachricht----- Von: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] Im Auftrag von jwcolby Gesendet: Donnerstag, 12. Februar 2009 17:21 An: Access Developers discussion and problem solving Betreff: [AccessD] More Class lectures? As you might guess, I have spent a fair amount of time writing up this series of class lectures. I really need to know that the time is well spent. I am asking everybody that has actually studied any of the lectures to please respond by Monday and let me know how far you have gotten in the series. This gives the weekend those who need more time to take a look. This will allow me to determine how to proceed. I understand that many people just flat do not have the time now, but I also know that people make time for what they want or need to learn, and I have intentionally broken down the lectures such that each one should take well under an hour to absorb, in fact many of them should be well under a half hour. Please understand that it is perfectly fine to decide that this isn't something you care about, but if you do care then all there is is today. My own experience says that if I never get started I never get it done. I really do not want to seem like I am nagging people to do this, but I need some feedback saying that people are actually studying this stuff in order for me to do more. I also need to know how far people have gotten to determine whether I am way ahead of the curve or there are people right on my heels so to speak, waiting for more. Just a quick email telling me where you are would be a huge help to me. Thanks guys, -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Feb 16 07:44:59 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 16 Feb 2009 08:44:59 -0500 Subject: [AccessD] More Class lectures? In-Reply-To: <781809D0CBCA4D4C8599423EC952DF75AE693F@ntovmail02.ad.otto.de> References: <49944C57.6030308@colbyconsulting.com> <781809D0CBCA4D4C8599423EC952DF75AE693F@ntovmail02.ad.otto.de> Message-ID: <49996DDB.7080205@colbyconsulting.com> Alun, Welcome to the lecture. I will indeed be doing more, though not in as rapid order as last week. I think last week's lecture is a pretty substantial grounding in Classes and Events. Anyone who works all the way through those lectures will pretty much know their way around. What comes next is "what do you use these newfangled things for". Believe me the applications are endless, and the next lectures are where we get really useful. The theory is pretty dry and sometimes hard to understand, but the application is FUN. John W. Colby www.ColbyConsulting.com Garraway, Alun wrote: > Hello John, > > Great stuff! I'm about half-way through (only saw them on Thursday evening ;-( that's what comes from not reading mails for a while ;-) but I'm catching up quick. Think I could use some of this for a DB that I'm re-doing from ground up. > > So can only say: > > "Please Sir, can I have so more" > > All the best and hope you have a good start for the week :-) > > alun > > -----Urspr?ngliche Nachricht----- > Von: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] Im Auftrag von jwcolby > Gesendet: Donnerstag, 12. Februar 2009 17:21 > An: Access Developers discussion and problem solving > Betreff: [AccessD] More Class lectures? > > As you might guess, I have spent a fair amount of time writing up this series of class lectures. I > really need to know that the time is well spent. I am asking everybody that has actually studied > any of the lectures to please respond by Monday and let me know how far you have gotten in the > series. This gives the weekend those who need more time to take a look. > > This will allow me to determine how to proceed. I understand that many people just flat do not have > the time now, but I also know that people make time for what they want or need to learn, and I have > intentionally broken down the lectures such that each one should take well under an hour to absorb, > in fact many of them should be well under a half hour. > > Please understand that it is perfectly fine to decide that this isn't something you care about, but > if you do care then all there is is today. My own experience says that if I never get started I > never get it done. > > I really do not want to seem like I am nagging people to do this, but I need some feedback saying > that people are actually studying this stuff in order for me to do more. I also need to know how > far people have gotten to determine whether I am way ahead of the curve or there are people right on > my heels so to speak, waiting for more. > > Just a quick email telling me where you are would be a huge help to me. > > Thanks guys, > From Alun.Garraway at otto.de Mon Feb 16 08:22:01 2009 From: Alun.Garraway at otto.de (Garraway, Alun) Date: Mon, 16 Feb 2009 15:22:01 +0100 Subject: [AccessD] More Class lectures? In-Reply-To: <49996DDB.7080205@colbyconsulting.com> References: <49944C57.6030308@colbyconsulting.com><781809D0CBCA4D4C8599423EC952DF75AE693F@ntovmail02.ad.otto.de> <49996DDB.7080205@colbyconsulting.com> Message-ID: <781809D0CBCA4D4C8599423EC952DF75AE6945@ntovmail02.ad.otto.de> John, pleased to hear it & looking fwd to it :-) < but the application is FUN.> Not just that, I find through application understanding starts sinking in :-) All the best! Alun -----Urspr?ngliche Nachricht----- Von: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] Im Auftrag von jwcolby Gesendet: Montag, 16. Februar 2009 14:45 An: Access Developers discussion and problem solving Betreff: Re: [AccessD] More Class lectures? Alun, Welcome to the lecture. I will indeed be doing more, though not in as rapid order as last week. I think last week's lecture is a pretty substantial grounding in Classes and Events. Anyone who works all the way through those lectures will pretty much know their way around. What comes next is "what do you use these newfangled things for". Believe me the applications are endless, and the next lectures are where we get really useful. The theory is pretty dry and sometimes hard to understand, but the application is FUN. John W. Colby www.ColbyConsulting.com Garraway, Alun wrote: > Hello John, > > Great stuff! I'm about half-way through (only saw them on Thursday evening ;-( that's what comes from not reading mails for a while ;-) but I'm catching up quick. Think I could use some of this for a DB that I'm re-doing from ground up. > > So can only say: > > "Please Sir, can I have so more" > > All the best and hope you have a good start for the week :-) > > alun > > -----Urspr?ngliche Nachricht----- > Von: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] Im Auftrag von jwcolby > Gesendet: Donnerstag, 12. Februar 2009 17:21 > An: Access Developers discussion and problem solving > Betreff: [AccessD] More Class lectures? > > As you might guess, I have spent a fair amount of time writing up this series of class lectures. I > really need to know that the time is well spent. I am asking everybody that has actually studied > any of the lectures to please respond by Monday and let me know how far you have gotten in the > series. This gives the weekend those who need more time to take a look. > > This will allow me to determine how to proceed. I understand that many people just flat do not have > the time now, but I also know that people make time for what they want or need to learn, and I have > intentionally broken down the lectures such that each one should take well under an hour to absorb, > in fact many of them should be well under a half hour. > > Please understand that it is perfectly fine to decide that this isn't something you care about, but > if you do care then all there is is today. My own experience says that if I never get started I > never get it done. > > I really do not want to seem like I am nagging people to do this, but I need some feedback saying > that people are actually studying this stuff in order for me to do more. I also need to know how > far people have gotten to determine whether I am way ahead of the curve or there are people right on > my heels so to speak, waiting for more. > > Just a quick email telling me where you are would be a huge help to me. > > Thanks guys, > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Feb 16 08:47:10 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 16 Feb 2009 09:47:10 -0500 Subject: [AccessD] Classes and Events - Adding behaviors to existing objects Message-ID: <49997C6E.6000806@colbyconsulting.com> One of the big uses of Classes and Events is to build wrappers around existing Access objects, with the purpose of making those existing objects behave consistently in a manner that we (the developer) want them to behave. An application should behave consistently so that the user can "know" that if something works like this over here, it will work like that over there. Access gives us Events for almost all of the objects such as forms, combos, text boxes, radio buttons etc. but it is our business what those events are used for. While it is pretty easy to figure out a behavior that we want some object to perform, getting it consistent across our application is tougher. As an example, take the combo box. There is an event called NotInList. When this event fires it means that the text typed into the combo box does not match any of the objects in the list behind the combo. That is incredibly useful in some instances, we can use the event to display a message to the user informing them that the item does not exist in the list and asking them if they want to add the item. Or, we can inform them that they are not allowed to add any more items to the list - think state table, gender table and others where the list is simply not allowed to change. One problem however is that the list might need to have more than one piece of information (field) added to the table. So if the list pulls from a table where there is only a single field to be added, then a simple response is in order: ? Inform the user that the item is not in the list. ? Ask the user if the item should be added to the list. ? If yes, then add the item to the list. ? And requery the combo box If the table behind the list has more than a single field things get more complicated. However we still need a consistent response, we just need a different consistent response. ? Inform the user that the item is not in the list. ? Ask the user if the item should be added to the list. ? If yes, then open a list form to allow adding the data to the list. ? Place the form in AddNew ? When the form closes, requery the combo box. Now, there is nothing in all of that that could not be handled in a complex function, the function placed into a module and a call to the function placed in the event NotInList handler in the form?s class. So why use a class for this behavior? The answer lies in programming techniques. Until you have classes available as a tool, you cannot use these techniques so you don?t think to use them. Once you understand classes, you have the tools and will start thinking about when to use these techniques. As I have mentioned before, one of the objectives of a good programmer is to place code and data together in one place, a technique called ?encapsulation?. This not in list event is a great example of having data and code requirements which need to be kept together. In order to handle the NotInList we need: 1. The table and field name to place the data in if this is a ?simple? event (only a single field to add). 2. The form name to open if this is a non-simple event (multiple fields to store). 3. An event sink to sink the NotInList event and start the processing 4. The code to figure out what to do for this specific NotInList event for this specific combo. A class allows you to do all of this in one place. You can build a clsCtlCbo (we already have), then when we decide we need a new behavior, we have a single place to go to add the event stub, the storage for data for our behavior, and the code for our behavior. When you design the next behavior, you go back into the same class, add another event stub (if you are sinking a new event), new variables to store the data required for the new behavior, and new code for those new behaviors. I have another behavior in my clsCtlCbo where the user can dbl-Click to open the list form in Edit mode. If the user is looking at data in the combo and sees an error in the data, (s)he can dbl-Click to open that same list form, but this time in Edit mode. The code needs to move the form to the data record that the user is looking at in the combo box. Again, when the form closes, the combo needs to be requeried. As you can see, we have a completely different event being hooked, similar information (form name) but different code. Equally important however, setting up all of these behaviors becomes as simple as dimensioning the object (the clsCtlCbo) and setting properties of the clsCtlXXX. After that any and all events that should behave in a certain way do so. The events stubs for that object aren?t cluttering up the form?s class module, and the object (combo) behaves consistently across your entire application. Suddenly the OnOpen event of the form becomes a very busy place where you start programming all of the combos to handle their NotInList and other objects (JustInTime subform loading of tabs?). You have ONE place to go to look at what is being programmed. No longer do you have to go hunting for the event stub for 5 different combos to see how you handled them. Just look in the OnOpen of the form. Are they mentioned there? If not, they aren?t programmed yet. Not only have you made your application interface consistent, you have made your programming of the interface consistent. In the next few lectures I will be creating some new object wrapper classes for objects that we haven?t started handling yet, and adding behaviors to those objects to let us do some really useful things. I will demonstrate how to program your application?s interface (objects on a form) from the form OnOpen. I will demonstrate how to tie each clsCtlXXX into the form?s control scanner such that these classes load automatically. Once we do that we will build a property to the form class for each wrapper class such that you can get at all of the object classes directly, by name, and program the object classes back in the form. This is the fun stuff! Even better, you guys get to invent your own behaviors and add them to your application interface (share the ideas with the rest of us?). As we work through these next few lessons you will understand exactly how to go about doing this in a consistent manner. Your applications will start to straighten around and work the way you want, every time. You will be able to retrofit existing applications to use these behaviors simply by referencing a library (how to do that is coming up) and programming each form to use the new system. I hope that now you begin to understand why I am such a strong proponent of classes. They are the tool that moves you from programmer to application interface designer. I really need those of you who are working through this stuff to speak up and let me and others know how you are finding these lectures. Is this stuff easy to learn? A tad difficult but doable? Pretty tough? Suggestions to make it easier to learn. There may be people who still aren't tackling this stuff because they think it is just too hard. My desire is to show everyone that any programmer can learn and understand classes and events. If I am not making it easy enough, I need feedback on what to do to make it easy enough for any programmer to learn. Thanks for sticking with me on this. -- John W. Colby www.ColbyConsulting.com From bgoss711 at ameritech.net Mon Feb 16 09:29:53 2009 From: bgoss711 at ameritech.net (Bud Goss) Date: Mon, 16 Feb 2009 07:29:53 -0800 (PST) Subject: [AccessD] Send Keys and Vista Message-ID: <860704.96716.qm@web81301.mail.mud.yahoo.com> I have an?Access application (97 and 2003) that I would like to run with Vista. ? The application uses the Sendkeys "Esc" & "Esc", True to back out of a forms without applying entered changes? ? I now understand that Vista does not support the Sendkeys command ? Are there any easy work arounds to this problem? ? ? From rockysmolin at bchacc.com Mon Feb 16 09:41:58 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Mon, 16 Feb 2009 07:41:58 -0800 Subject: [AccessD] Send Keys and Vista In-Reply-To: <860704.96716.qm@web81301.mail.mud.yahoo.com> References: <860704.96716.qm@web81301.mail.mud.yahoo.com> Message-ID: <8D987CAF5E3946AD8EAAF90B219DE10F@HAL9005> Bud: I always use Me.Undo. I don't develop on 2007 but I think it should work. Try that and see if it does what you need. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bud Goss Sent: Monday, February 16, 2009 7:30 AM To: Access Group Subject: [AccessD] Send Keys and Vista I have an?Access application (97 and 2003) that I would like to run with Vista. ? The application uses the Sendkeys "Esc" & "Esc", True to back out of a forms without applying entered changes? ? I now understand that Vista does not support the Sendkeys command ? Are there any easy work arounds to this problem? ? ? -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From bgoss711 at ameritech.net Mon Feb 16 11:11:08 2009 From: bgoss711 at ameritech.net (Bud Goss) Date: Mon, 16 Feb 2009 09:11:08 -0800 (PST) Subject: [AccessD] Fw: Re: Send Keys and Vista Message-ID: <315973.62778.qm@web81303.mail.mud.yahoo.com> Thanks - Worked like a charm ? Why didn't I think of that. --- On Mon, 2/16/09, Rocky Smolin at Beach Access Software wrote: From: Rocky Smolin at Beach Access Software Subject: Re: [AccessD] Send Keys and Vista To: "'Access Developers discussion and problem solving'" Date: Monday, February 16, 2009, 9:41 AM Bud: I always use Me.Undo. I don't develop on 2007 but I think it should work. Try that and see if it does what you need. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bud Goss Sent: Monday, February 16, 2009 7:30 AM To: Access Group Subject: [AccessD] Send Keys and Vista I have an?Access application (97 and 2003) that I would like to run with Vista. ? The application uses the Sendkeys "Esc" & "Esc", True to back out of a forms without applying entered changes? ? I now understand that Vista does not support the Sendkeys command ? Are there any easy work arounds to this problem? ? ? -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Mon Feb 16 13:09:01 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Mon, 16 Feb 2009 11:09:01 -0800 Subject: [AccessD] Record Count Problem Message-ID: <83BC2A78223747219DF22CD39840D3D2@HAL9005> Dear List: In the following: Set rs = Me.RecordsetClone ' If no records then goodbye: MsgBox rs.RecordCount If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: the record count shows as 1 but BOF and EOF are both true. The record was just added. So the routine exits instead of doing what it's supposed to do. A Me.Requery solves the problem, but leaves the pointer at the start of the the recordset instead of the record the user was working on. I can's save a bookmark because the Requery triggers the activate event which calls this routine and destroys the bookmark. But why would the record count show 1 when the BOf and EOF are set to True? TIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com From max.wanadoo at gmail.com Mon Feb 16 14:17:56 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 16 Feb 2009 20:17:56 -0000 Subject: [AccessD] Record Count Problem In-Reply-To: <83BC2A78223747219DF22CD39840D3D2@HAL9005> References: <83BC2A78223747219DF22CD39840D3D2@HAL9005> Message-ID: <4999c9f8.0856100a.5b46.ffff8236@mx.google.com> If rs.BOF = True And rs.EOF = True and rs.recordcount = 0 Then GoTo GoodBye Else Goto WaveHelloToRocky End if Or save the PK, then requery, then find saved PK and position on it. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 16 February 2009 19:09 To: 'Access Developers discussion and problem solving' Subject: [AccessD] Record Count Problem Dear List: In the following: Set rs = Me.RecordsetClone ' If no records then goodbye: MsgBox rs.RecordCount If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: the record count shows as 1 but BOF and EOF are both true. The record was just added. So the routine exits instead of doing what it's supposed to do. A Me.Requery solves the problem, but leaves the pointer at the start of the the recordset instead of the record the user was working on. I can's save a bookmark because the Requery triggers the activate event which calls this routine and destroys the bookmark. But why would the record count show 1 when the BOf and EOF are set to True? TIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From fuller.artful at gmail.com Mon Feb 16 14:21:21 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Mon, 16 Feb 2009 15:21:21 -0500 Subject: [AccessD] Record Count Problem In-Reply-To: <83BC2A78223747219DF22CD39840D3D2@HAL9005> References: <83BC2A78223747219DF22CD39840D3D2@HAL9005> Message-ID: <29f585dd0902161221g307156d4l40c686f48b55b5ed@mail.gmail.com> I think you need to go to the last record in the rs and then return to your bookmark before doing anything else. As soon as you open the rs, Access has no idea of the count. hth, Arthur On Mon, Feb 16, 2009 at 2:09 PM, Rocky Smolin at Beach Access Software < rockysmolin at bchacc.com> wrote: > Dear List: > > In the following: > > Set rs = Me.RecordsetClone > ' If no records then goodbye: > MsgBox rs.RecordCount > If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: > > the record count shows as 1 but BOF and EOF are both true. > > The record was just added. So the routine exits instead of doing what it's > supposed to do. > > A Me.Requery solves the problem, but leaves the pointer at the start of the > the recordset instead of the record the user was working on. > > I can's save a bookmark because the Requery triggers the activate event > which calls this routine and destroys the bookmark. > > But why would the record count show 1 when the BOf and EOF are set to True? > > TIA > > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From rockysmolin at bchacc.com Mon Feb 16 14:58:24 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Mon, 16 Feb 2009 12:58:24 -0800 Subject: [AccessD] Record Count Problem In-Reply-To: <4999c9f8.0856100a.5b46.ffff8236@mx.google.com> References: <83BC2A78223747219DF22CD39840D3D2@HAL9005> <4999c9f8.0856100a.5b46.ffff8236@mx.google.com> Message-ID: I changed If rs.BOF = True And rs.EOF = True Then To If rs.RecordCount = 0 Then Crude but effective. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Monday, February 16, 2009 12:18 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Record Count Problem If rs.BOF = True And rs.EOF = True and rs.recordcount = 0 Then GoTo GoodBye Else Goto WaveHelloToRocky End if Or save the PK, then requery, then find saved PK and position on it. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 16 February 2009 19:09 To: 'Access Developers discussion and problem solving' Subject: [AccessD] Record Count Problem Dear List: In the following: Set rs = Me.RecordsetClone ' If no records then goodbye: MsgBox rs.RecordCount If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: the record count shows as 1 but BOF and EOF are both true. The record was just added. So the routine exits instead of doing what it's supposed to do. A Me.Requery solves the problem, but leaves the pointer at the start of the the recordset instead of the record the user was working on. I can's save a bookmark because the Requery triggers the activate event which calls this routine and destroys the bookmark. But why would the record count show 1 when the BOf and EOF are set to True? TIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Mon Feb 16 15:08:04 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 16 Feb 2009 21:08:04 -0000 Subject: [AccessD] Record Count Problem In-Reply-To: References: <83BC2A78223747219DF22CD39840D3D2@HAL9005> <4999c9f8.0856100a.5b46.ffff8236@mx.google.com> Message-ID: <4999d5b8.09a8100a.6bad.ffffe2df@mx.google.com> I don't think that is crude at all Rocky. I would use that above the over two tests at any time because if there is anything in the rs then it will always show at least 1. As you know, it will not count all the records until you do a rs.movelast but it will show at least 1 as soon as you test it. Whereas, well you have found what the whereas is already I think! Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 16 February 2009 20:58 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Record Count Problem I changed If rs.BOF = True And rs.EOF = True Then To If rs.RecordCount = 0 Then Crude but effective. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Monday, February 16, 2009 12:18 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Record Count Problem If rs.BOF = True And rs.EOF = True and rs.recordcount = 0 Then GoTo GoodBye Else Goto WaveHelloToRocky End if Or save the PK, then requery, then find saved PK and position on it. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 16 February 2009 19:09 To: 'Access Developers discussion and problem solving' Subject: [AccessD] Record Count Problem Dear List: In the following: Set rs = Me.RecordsetClone ' If no records then goodbye: MsgBox rs.RecordCount If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: the record count shows as 1 but BOF and EOF are both true. The record was just added. So the routine exits instead of doing what it's supposed to do. A Me.Requery solves the problem, but leaves the pointer at the start of the the recordset instead of the record the user was working on. I can's save a bookmark because the Requery triggers the activate event which calls this routine and destroys the bookmark. But why would the record count show 1 when the BOf and EOF are set to True? TIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Mon Feb 16 15:33:04 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Mon, 16 Feb 2009 13:33:04 -0800 Subject: [AccessD] Mailing Label Bar Code Font Message-ID: <1C9FA24BFBE649C3A1A68BE687603612@HAL9005> Dear List: I have a requirement to make mailing labels bar code on the bottom so the client can get the bulk rate. I think it's called PostNet. Does anyone have any experience with the bar code font - where to get it, how to use it, etc.? MTIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com From Chester_Kaup at kindermorgan.com Mon Feb 16 15:51:16 2009 From: Chester_Kaup at kindermorgan.com (Kaup, Chester) Date: Mon, 16 Feb 2009 15:51:16 -0600 Subject: [AccessD] Making MDE file Message-ID: <0B2BF8524B73A248A2F1B81BA751ED3C0645C3F0C9@houex1.kindermorgan.com> When I try to make an MDE file from a databaase I get the following error. Database size is 72 Meg compacted and repaired. Database has 21 forms, 48 reports and 9 modules.The help text does not seem to indicate this would be to large. An ideas welcome. Microsoft Office Access was unable to create an MDE database. Chester Kaup Engineering Technician Kinder Morgan CO2 Company, LLP Office (432) 688-3797 FAX (432) 688-3799 No trees were killed in the sending of this message. However a large number of electrons were terribly inconvenienced. From rockysmolin at bchacc.com Mon Feb 16 15:58:17 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Mon, 16 Feb 2009 13:58:17 -0800 Subject: [AccessD] Making MDE file In-Reply-To: <0B2BF8524B73A248A2F1B81BA751ED3C0645C3F0C9@houex1.kindermorgan.com> References: <0B2BF8524B73A248A2F1B81BA751ED3C0645C3F0C9@houex1.kindermorgan.com> Message-ID: Go to a code page and compile. Usually when I get turned down by the mde maker it's because there's a compile error in the code. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Kaup, Chester Sent: Monday, February 16, 2009 1:51 PM To: Access Developers discussion and problem solving Subject: [AccessD] Making MDE file When I try to make an MDE file from a databaase I get the following error. Database size is 72 Meg compacted and repaired. Database has 21 forms, 48 reports and 9 modules.The help text does not seem to indicate this would be to large. An ideas welcome. Microsoft Office Access was unable to create an MDE database. Chester Kaup Engineering Technician Kinder Morgan CO2 Company, LLP Office (432) 688-3797 FAX (432) 688-3799 No trees were killed in the sending of this message. However a large number of electrons were terribly inconvenienced. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Mon Feb 16 15:59:51 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Tue, 17 Feb 2009 07:59:51 +1000 Subject: [AccessD] Making MDE file In-Reply-To: <0B2BF8524B73A248A2F1B81BA751ED3C0645C3F0C9@houex1.kindermorgan.com> References: <0B2BF8524B73A248A2F1B81BA751ED3C0645C3F0C9@houex1.kindermorgan.com> Message-ID: <499A6E77.8034.3924A6A@stuart.lexacorp.com.pg> Real helpful mesage isn't it. Can you complie the mdb? -- Stuart On 16 Feb 2009 at 15:51, Kaup, Chester wrote: > When I try to make an MDE file from a databaase I get the following > error. Database size is 72 Meg compacted and repaired. Database has 21 > forms, 48 reports and 9 modules.The help text does not seem to > indicate this would be to large. An ideas welcome. > > Microsoft Office Access was unable to create an MDE database. > From Chester_Kaup at kindermorgan.com Mon Feb 16 16:07:47 2009 From: Chester_Kaup at kindermorgan.com (Kaup, Chester) Date: Mon, 16 Feb 2009 16:07:47 -0600 Subject: [AccessD] Making MDE file In-Reply-To: References: <0B2BF8524B73A248A2F1B81BA751ED3C0645C3F0C9@houex1.kindermorgan.com> Message-ID: <0B2BF8524B73A248A2F1B81BA751ED3C0645C3F0DF@houex1.kindermorgan.com> That was the exact problem. Thanks. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Monday, February 16, 2009 3:58 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Making MDE file Go to a code page and compile. Usually when I get turned down by the mde maker it's because there's a compile error in the code. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Kaup, Chester Sent: Monday, February 16, 2009 1:51 PM To: Access Developers discussion and problem solving Subject: [AccessD] Making MDE file When I try to make an MDE file from a databaase I get the following error. Database size is 72 Meg compacted and repaired. Database has 21 forms, 48 reports and 9 modules.The help text does not seem to indicate this would be to large. An ideas welcome. Microsoft Office Access was unable to create an MDE database. Chester Kaup Engineering Technician Kinder Morgan CO2 Company, LLP Office (432) 688-3797 FAX (432) 688-3799 No trees were killed in the sending of this message. However a large number of electrons were terribly inconvenienced. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Mon Feb 16 16:18:42 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Tue, 17 Feb 2009 08:18:42 +1000 Subject: [AccessD] Mailing Label Bar Code Font In-Reply-To: <1C9FA24BFBE649C3A1A68BE687603612@HAL9005> References: <1C9FA24BFBE649C3A1A68BE687603612@HAL9005> Message-ID: <499A72E2.2046.3A38CA8@stuart.lexacorp.com.pg> You should be looking at Intelligent Mail rather than Postnet. See https://ribbs.usps.gov/onecodesolution/ O 16 Feb 2009 at 13:33, Rocky Smolin at Beach Access Software wrote: > Dear List: > > I have a requirement to make mailing labels bar code on the bottom so the > client can get the bulk rate. I think it's called PostNet. Does anyone have > any experience with the bar code font - where to get it, how to use it, > etc.? > > MTIA > > > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Mon Feb 16 17:00:16 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Mon, 16 Feb 2009 15:00:16 -0800 Subject: [AccessD] Mailing Label Bar Code Font In-Reply-To: <499A72E2.2046.3A38CA8@stuart.lexacorp.com.pg> References: <1C9FA24BFBE649C3A1A68BE687603612@HAL9005> <499A72E2.2046.3A38CA8@stuart.lexacorp.com.pg> Message-ID: <7724713ACCC344F8BB7D8BA6FC66A097@HAL9005> Stuart: Thanks. That looks like what I need. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Monday, February 16, 2009 2:19 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Mailing Label Bar Code Font You should be looking at Intelligent Mail rather than Postnet. See https://ribbs.usps.gov/onecodesolution/ O 16 Feb 2009 at 13:33, Rocky Smolin at Beach Access Software wrote: > Dear List: > > I have a requirement to make mailing labels bar code on the bottom so > the client can get the bulk rate. I think it's called PostNet. Does > anyone have any experience with the bar code font - where to get it, > how to use it, etc.? > > MTIA > > > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Mon Feb 16 19:50:50 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Mon, 16 Feb 2009 20:50:50 -0500 Subject: [AccessD] Record Count Problem References: <83BC2A78223747219DF22CD39840D3D2@HAL9005><4999c9f8.0856100a.5b46.ffff8236@mx.google.com> Message-ID: <5A80381F4F224687A1B41069A923B8D1@jislaptopdev> ...hhhmmm ...iirc (and that gets more hypothetical with every year) the rs.recordcount will return a count of records "accessed" ...not the total count of records in the object ...you have to do a movelast before the rs.recordcount to be sure what its actually counting. William -------------------------------------------------- From: "Rocky Smolin at Beach Access Software" Sent: Monday, February 16, 2009 3:58 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Record Count Problem > I changed > > If rs.BOF = True And rs.EOF = True Then > > To > > If rs.RecordCount = 0 Then > > Crude but effective. > > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Monday, February 16, 2009 12:18 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Record Count Problem > > If rs.BOF = True And rs.EOF = True and rs.recordcount = 0 Then > GoTo GoodBye > Else > Goto WaveHelloToRocky > End if > > > Or save the PK, then requery, then find saved PK and position on it. > > > Max > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: 16 February 2009 19:09 > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Record Count Problem > > Dear List: > > In the following: > > Set rs = Me.RecordsetClone > ' If no records then goodbye: > MsgBox rs.RecordCount > If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: > > the record count shows as 1 but BOF and EOF are both true. > > The record was just added. So the routine exits instead of doing what > it's > supposed to do. > > A Me.Requery solves the problem, but leaves the pointer at the start of > the > the recordset instead of the record the user was working on. > > I can's save a bookmark because the Requery triggers the activate event > which calls this routine and destroys the bookmark. > > But why would the record count show 1 when the BOf and EOF are set to > True? > > TIA > > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From darren at activebilling.com.au Mon Feb 16 19:52:39 2009 From: darren at activebilling.com.au (Darren D) Date: Tue, 17 Feb 2009 12:52:39 +1100 Subject: [AccessD] KindaOT: Sharing an Outlook Calendar Message-ID: <017301c990a2$6ba7a3a0$131b910a@denzilnote> Hi Team Brains trust Question It's Kinda OT and Kinda not - If I get it working my Access App will be 'talking' to this calendar Is it possible to 'share' a calendar or have access to a shared calendar using Outlook 2003 WITHOUT Exchange server? I know how to create new calendars for my own use on my own machine - not sure how others can access this 'shared calendar' I create though Many thanks in advance Darren From dwaters at usinternet.com Mon Feb 16 20:52:13 2009 From: dwaters at usinternet.com (Dan Waters) Date: Mon, 16 Feb 2009 20:52:13 -0600 Subject: [AccessD] KindaOT: Sharing an Outlook Calendar In-Reply-To: <017301c990a2$6ba7a3a0$131b910a@denzilnote> References: <017301c990a2$6ba7a3a0$131b910a@denzilnote> Message-ID: Hi Darren, Theoretically - Yes! Practically - Maybe! In Outlook, go to Options | Calendar Options | Free Busy Options. Do an internet search for 'Outlook 2003 Free Busy' or something similar. You'll get a number of good hits. I used to be able to use this when I had a web site that allowed an html connection. But now that I have a web site which only allows ftp transfers, I can't get it to work. If it works for you, tell us how! Good Luck! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Darren D Sent: Monday, February 16, 2009 7:53 PM To: 'Access Developers discussion and problem solving' Subject: [AccessD] KindaOT: Sharing an Outlook Calendar Hi Team Brains trust Question It's Kinda OT and Kinda not - If I get it working my Access App will be 'talking' to this calendar Is it possible to 'share' a calendar or have access to a shared calendar using Outlook 2003 WITHOUT Exchange server? I know how to create new calendars for my own use on my own machine - not sure how others can access this 'shared calendar' I create though Many thanks in advance Darren -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From fuller.artful at gmail.com Mon Feb 16 21:15:32 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Mon, 16 Feb 2009 22:15:32 -0500 Subject: [AccessD] Record Count Problem In-Reply-To: <5A80381F4F224687A1B41069A923B8D1@jislaptopdev> References: <83BC2A78223747219DF22CD39840D3D2@HAL9005> <4999c9f8.0856100a.5b46.ffff8236@mx.google.com> <5A80381F4F224687A1B41069A923B8D1@jislaptopdev> Message-ID: <29f585dd0902161915q54f2e2fbs46f6e9d88e23bcab@mail.gmail.com> My point exactly, William... or we're sharing the same senior moment :) On Mon, Feb 16, 2009 at 8:50 PM, William Hindman < wdhindman at dejpolsystems.com> wrote: > ...hhhmmm ...iirc (and that gets more hypothetical with every year) the > rs.recordcount will return a count of records "accessed" ...not the total > count of records in the object ...you have to do a movelast before the > rs.recordcount to be sure what its actually counting. > > William > From jwcolby at colbyconsulting.com Mon Feb 16 21:22:43 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 16 Feb 2009 22:22:43 -0500 Subject: [AccessD] =?windows-1252?q?Classes_and_Events_=96_Using_a_library?= Message-ID: <499A2D83.4000904@colbyconsulting.com> An access library consists of an access container that contains code which will be used in more than one Access application. Just as in the case with classes, the objective is to have a single place to go to store, find and maintain code that is useful in more than one specific place, in this case in more than one application. My rule of thumb is that if the code is specific to an application, then that code belongs in that application. If the code can be used in more than one application, then that code belongs in a library. Libraries in Access are traditionally named with an MDA or MDE extension, however in fact that is not a requirement. Any Access container can in fact have any extension, or even no extension at all and it will still function perfectly. Access can open an FE regardless of extension, can link to tables in a BE regardless of extension, and can reference code in a library regardless of extension. The extension is useful however when trying to reference the library, since the reference dialog will automatically add a filter of .mda and .mde to the file find dialog and when those extensions are selected in the dialog, only objects with those extensions will show in that dialog. Thus if you do happen to use the MDE/MDA extensions it will make the library easy to find in a cluttered directory. A library is like any other MDB in that locks are created to work in it etc. so it is often best to copy the library to a location local to the user?s workstation, then reference the library at that local location. I usually copy the FE to the local workstation as well, so I just place the library in the same directory that I place the FE. If a reference is broken, Access will search a specific set of paths, beginning with the location of the FE. This being the case, the library will be immediately found and the reference repaired by Access automatically. What this means to you is that if you place the library in the same directory as the FE, the reference does not matter, as long as a reference exists. As we know, code has scope. A call to a function will first be searched for in the current module of the calling code. If not found, the function will be searched for in other modules in the current DB container. If still not found, the function will be searched for in the referenced objects, in the order of the references, in other words from the top down in the references dialog. The implication here is that you can have the same class name, function, constant or variable in several different places, and the first place it is found is the copy that will be used. This can cause extremely difficult to track problems as you might expect. Often times I develop code in the FE container, and when I get it debugged (assuming that it is not FE specific) I will then move it to the library. If I am not careful to cut the code and paste it into the library, I can end up with the same code in the FE and the library. If I then go to the library to make changes, my FE will not see those changes since the code in the FE is found first, but I made the changes in the library. If I make changes in the FE but use the library in several different Fes, the code may work differently in the other Fes, because they do not have a local copy of the code. It is important to keep this ?first found? rule in mind as you develop your code. Many people become familiar with libraries before they discover classes. Often developers discover libraries, and start moving code from their FE to the library, which is the correct thing to do. Once they discover classes, they start designing classes in the FE, then when they move the class to the library the classes cannot be seen outside of the Library. The problem is that classes are intentionally not exposed outside of the library. I have never red a cogent explanation of why Microsoft made this decision, but it is a simple fact that without taking special steps, classes cannot be seen outside of the Access container that they exist in. It is however possible to cause them to be exposed outside of the database container they are in. There are two ways to do this. The first is to design a function wrapper, and return an object type pointer to the wrapped object. The problem with this approach is that you lose intellisense. In other words, an object reference does not provide you with the properties and methods of the object that it represents. It is just a naked pointer to ?something?. The second method is an ?officially undocumented? trick which allows you to edit the class properties that keep it unexposed, and in the process expose the class from the outside of the Access database container or library. The process consists of exporting each class that you wish to expose to a text file. Doing so will expose a set of properties in the header of the class which are normally invisible and cannot be manipulated. Because they are exposed in the text file, you can toggle two of the properties, save the file to disk again with these properties modified, then import the class files back in to the database. Once you have done this, the class object can be seen from outside of the library just like any public variable or function can. We will be using this second method. In this lecture we have discussed using a library to hold code that is useful to more than a single application. We have discussed a few details of referencing the library modules and how copying them to the local workstation is often a good strategy. We have learned a little about code scope and discovered that moving code to a library can cause issues if you have function or variable names defined the same in the FE and the library. Finally we discussed a major issue with using classes from outside of the library and a couple of strategies for dealing with the problem. In the next lecture we will take our demo database and turn it into a library and a FE. We will expose the classes that we need to make public, and we will then reference our new library from our new FE. We will then demonstrate using the classes inside of the library. -- John W. Colby www.ColbyConsulting.com From darren at activebilling.com.au Mon Feb 16 21:44:56 2009 From: darren at activebilling.com.au (Darren D) Date: Tue, 17 Feb 2009 14:44:56 +1100 Subject: [AccessD] KindaOT: Sharing an Outlook Calendar In-Reply-To: References: <017301c990a2$6ba7a3a0$131b910a@denzilnote> Message-ID: <000801c990b2$1b207460$131b910a@denzilnote> Hi Dan and others I wanted to keep away from that scenario if possible - I did do some reading on it - just today in fact - but would keep it as a last option I searched the archives because I was sure I had asked this before - And I had. In a previous life whilst working for a previous employer. Never implemented it though Got some good pointers but the PST files DO not allow sharing - thus very tricky Any other suggestions? - Looks like I may have to buy something - yech!!!! Darren -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: Tuesday, 17 February 2009 1:52 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] KindaOT: Sharing an Outlook Calendar Hi Darren, Theoretically - Yes! Practically - Maybe! In Outlook, go to Options | Calendar Options | Free Busy Options. Do an internet search for 'Outlook 2003 Free Busy' or something similar. You'll get a number of good hits. I used to be able to use this when I had a web site that allowed an html connection. But now that I have a web site which only allows ftp transfers, I can't get it to work. If it works for you, tell us how! Good Luck! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Darren D Sent: Monday, February 16, 2009 7:53 PM To: 'Access Developers discussion and problem solving' Subject: [AccessD] KindaOT: Sharing an Outlook Calendar Hi Team Brains trust Question It's Kinda OT and Kinda not - If I get it working my Access App will be 'talking' to this calendar Is it possible to 'share' a calendar or have access to a shared calendar using Outlook 2003 WITHOUT Exchange server? I know how to create new calendars for my own use on my own machine - not sure how others can access this 'shared calendar' I create though Many thanks in advance Darren -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Mon Feb 16 22:04:49 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Mon, 16 Feb 2009 20:04:49 -0800 Subject: [AccessD] Record Count Problem In-Reply-To: <5A80381F4F224687A1B41069A923B8D1@jislaptopdev> References: <83BC2A78223747219DF22CD39840D3D2@HAL9005><4999c9f8.0856100a.5b46.ffff8236@mx.google.com> <5A80381F4F224687A1B41069A923B8D1@jislaptopdev> Message-ID: <95205108170845749D808391D5CBBF61@HAL9005> Well I only need to know if there's at least 1 record not the real record count. So I think I'm safe. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Monday, February 16, 2009 5:51 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Record Count Problem ...hhhmmm ...iirc (and that gets more hypothetical with every year) the rs.recordcount will return a count of records "accessed" ...not the total count of records in the object ...you have to do a movelast before the rs.recordcount to be sure what its actually counting. William -------------------------------------------------- From: "Rocky Smolin at Beach Access Software" Sent: Monday, February 16, 2009 3:58 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Record Count Problem > I changed > > If rs.BOF = True And rs.EOF = True Then > > To > > If rs.RecordCount = 0 Then > > Crude but effective. > > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Monday, February 16, 2009 12:18 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Record Count Problem > > If rs.BOF = True And rs.EOF = True and rs.recordcount = 0 Then GoTo > GoodBye Else Goto WaveHelloToRocky End if > > > Or save the PK, then requery, then find saved PK and position on it. > > > Max > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 16 February 2009 19:09 > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Record Count Problem > > Dear List: > > In the following: > > Set rs = Me.RecordsetClone > ' If no records then goodbye: > MsgBox rs.RecordCount > If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: > > the record count shows as 1 but BOF and EOF are both true. > > The record was just added. So the routine exits instead of doing what > it's supposed to do. > > A Me.Requery solves the problem, but leaves the pointer at the start > of the the recordset instead of the record the user was working on. > > I can's save a bookmark because the Requery triggers the activate > event which calls this routine and destroys the bookmark. > > But why would the record count show 1 when the BOf and EOF are set to > True? > > TIA > > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Tue Feb 17 02:49:30 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 17 Feb 2009 08:49:30 -0000 Subject: [AccessD] Record Count Problem In-Reply-To: <5A80381F4F224687A1B41069A923B8D1@jislaptopdev> References: <83BC2A78223747219DF22CD39840D3D2@HAL9005><4999c9f8.0856100a.5b46.ffff8236@mx.google.com> <5A80381F4F224687A1B41069A923B8D1@jislaptopdev> Message-ID: <499a7a20.0ac0100a.2fb6.ffffe5d0@mx.google.com> Hi William, I *think* that Rocky just needs to know if there are ANY records at all. He is not interested in how many there are, just whether there is none or some. For his own reasons he said he does not want to requery the recordset to use the recordsetclone and therefore the rs.recordcount will work just fine whereas the rs.eof and rs.bof will not. Personally, I would have requeried if I was using a recordsetclone having saved the record pointer and then repositioned on the pointer. Rocky did not want to do that. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: 17 February 2009 01:51 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Record Count Problem ...hhhmmm ...iirc (and that gets more hypothetical with every year) the rs.recordcount will return a count of records "accessed" ...not the total count of records in the object ...you have to do a movelast before the rs.recordcount to be sure what its actually counting. William -------------------------------------------------- From: "Rocky Smolin at Beach Access Software" Sent: Monday, February 16, 2009 3:58 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Record Count Problem > I changed > > If rs.BOF = True And rs.EOF = True Then > > To > > If rs.RecordCount = 0 Then > > Crude but effective. > > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Monday, February 16, 2009 12:18 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Record Count Problem > > If rs.BOF = True And rs.EOF = True and rs.recordcount = 0 Then > GoTo GoodBye > Else > Goto WaveHelloToRocky > End if > > > Or save the PK, then requery, then find saved PK and position on it. > > > Max > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: 16 February 2009 19:09 > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Record Count Problem > > Dear List: > > In the following: > > Set rs = Me.RecordsetClone > ' If no records then goodbye: > MsgBox rs.RecordCount > If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: > > the record count shows as 1 but BOF and EOF are both true. > > The record was just added. So the routine exits instead of doing what > it's > supposed to do. > > A Me.Requery solves the problem, but leaves the pointer at the start of > the > the recordset instead of the record the user was working on. > > I can's save a bookmark because the Requery triggers the activate event > which calls this routine and destroys the bookmark. > > But why would the record count show 1 when the BOf and EOF are set to > True? > > TIA > > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Tue Feb 17 03:27:45 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 17 Feb 2009 10:27:45 +0100 Subject: [AccessD] Mailing Label Bar Code Font Message-ID: Hi Stuart and Rocky Lots of fun generating such codes. The first 12 pages here explains how: https://ribbs.usps.gov/onecodesolution/SPUSPS-B-3200E001.pdf /gustav >>> stuart at lexacorp.com.pg 16-02-2009 23:18 >>> You should be looking at Intelligent Mail rather than Postnet. See https://ribbs.usps.gov/onecodesolution/ O 16 Feb 2009 at 13:33, Rocky Smolin at Beach Access Software wrote: > Dear List: > > I have a requirement to make mailing labels bar code on the bottom so the > client can get the bulk rate. I think it's called PostNet. Does anyone have > any experience with the bar code font - where to get it, how to use it, > etc.? From andy at minstersystems.co.uk Tue Feb 17 05:25:19 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Tue, 17 Feb 2009 11:25:19 -0000 Subject: [AccessD] Specific Printer In-Reply-To: Message-ID: <4AA8BEAD91294092A234F143779E6F97@MINSTER> A follow-up to this Gustav. If I create a printer named the same as the user's printer but a completely different type of printer, than save a report pointing to that printer, do you think it will still work on-site when printed to their printer? I wouldn't be setting any specific printing characteristics of course. Andy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 05 February 2009 10:32 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Specific Printer Hi Andy You should be able to create a printer setup at your machine named exactly the same as at the client, and then set your report to use that specific printer. If you use anything else than the default paper size, you may get into trouble. /gustav >>> andy at minstersystems.co.uk 05-02-2009 11:12 >>> Hi folks How do I supply an MDB with a report set to print to a specific printer which I don't have? The report is used by several people in an office and needs to print on their one colour printer which is not the default for any of them. So it's a network printer and I'm not on their netowrk of course. Can this be done, by code if necessary? Oh and this is A2K. Cheers Andy Lacey PS Deep snow today here. A very pretty English scene as long as you don't have to try to negotiate the roads, which I don't tee hee. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Tue Feb 17 05:31:03 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 17 Feb 2009 12:31:03 +0100 Subject: [AccessD] Specific Printer Message-ID: Hi Andy Yes I think so. Even if some specifics were set. Those not found at the client will probably be ignored. For specail paper size, this _may_ even be reset even if fournd at the client. /gustav >>> andy at minstersystems.co.uk 17-02-2009 12:25 >>> A follow-up to this Gustav. If I create a printer named the same as the user's printer but a completely different type of printer, than save a report pointing to that printer, do you think it will still work on-site when printed to their printer? I wouldn't be setting any specific printing characteristics of course. Andy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 05 February 2009 10:32 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Specific Printer Hi Andy You should be able to create a printer setup at your machine named exactly the same as at the client, and then set your report to use that specific printer. If you use anything else than the default paper size, you may get into trouble. /gustav >>> andy at minstersystems.co.uk 05-02-2009 11:12 >>> Hi folks How do I supply an MDB with a report set to print to a specific printer which I don't have? The report is used by several people in an office and needs to print on their one colour printer which is not the default for any of them. So it's a network printer and I'm not on their netowrk of course. Can this be done, by code if necessary? Oh and this is A2K. Cheers Andy Lacey PS Deep snow today here. A very pretty English scene as long as you don't have to try to negotiate the roads, which I don't tee hee. From andy at minstersystems.co.uk Tue Feb 17 07:03:35 2009 From: andy at minstersystems.co.uk (Andy Lacey) Date: Tue, 17 Feb 2009 13:03:35 -0000 Subject: [AccessD] Specific Printer In-Reply-To: Message-ID: <61DF267247654526AE04B1536ECD8266@MINSTER> Ok thanks Gustav, I'll give it a go. Andy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 17 February 2009 11:31 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Specific Printer Hi Andy Yes I think so. Even if some specifics were set. Those not found at the client will probably be ignored. For specail paper size, this _may_ even be reset even if fournd at the client. /gustav >>> andy at minstersystems.co.uk 17-02-2009 12:25 >>> A follow-up to this Gustav. If I create a printer named the same as the user's printer but a completely different type of printer, than save a report pointing to that printer, do you think it will still work on-site when printed to their printer? I wouldn't be setting any specific printing characteristics of course. Andy -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 05 February 2009 10:32 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Specific Printer Hi Andy You should be able to create a printer setup at your machine named exactly the same as at the client, and then set your report to use that specific printer. If you use anything else than the default paper size, you may get into trouble. /gustav >>> andy at minstersystems.co.uk 05-02-2009 11:12 >>> Hi folks How do I supply an MDB with a report set to print to a specific printer which I don't have? The report is used by several people in an office and needs to print on their one colour printer which is not the default for any of them. So it's a network printer and I'm not on their netowrk of course. Can this be done, by code if necessary? Oh and this is A2K. Cheers Andy Lacey PS Deep snow today here. A very pretty English scene as long as you don't have to try to negotiate the roads, which I don't tee hee. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Tue Feb 17 08:41:52 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Tue, 17 Feb 2009 09:41:52 -0500 Subject: [AccessD] Record Count Problem References: <83BC2A78223747219DF22CD39840D3D2@HAL9005><4999c9f8.0856100a.5b46.ffff8236@mx.google.com> <5A80381F4F224687A1B41069A923B8D1@jislaptopdev> <499a7a20.0ac0100a.2fb6.ffffe5d0@mx.google.com> Message-ID: ...I understand that Max ...the question is, without the movelast, what is a stand-alone recordcount actually counting ...does recordcount return a 1 or zero if a record has not been accessed ...I always go to the last record so I can't say yes or no ...but if records are there but have not been accessed as yet, will recordcount return a zero value? William -------------------------------------------------- From: "Max Wanadoo" Sent: Tuesday, February 17, 2009 3:49 AM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Record Count Problem > Hi William, > > I *think* that Rocky just needs to know if there are ANY records at all. > > He is not interested in how many there are, just whether there is none or > some. For his own reasons he said he does not want to requery the > recordset > to use the recordsetclone and therefore the rs.recordcount will work just > fine whereas the rs.eof and rs.bof will not. > > Personally, I would have requeried if I was using a recordsetclone having > saved the record pointer and then repositioned on the pointer. Rocky did > not want to do that. > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman > Sent: 17 February 2009 01:51 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Record Count Problem > > ...hhhmmm ...iirc (and that gets more hypothetical with every year) the > rs.recordcount will return a count of records "accessed" ...not the total > count of records in the object ...you have to do a movelast before the > rs.recordcount to be sure what its actually counting. > > William > > -------------------------------------------------- > From: "Rocky Smolin at Beach Access Software" > Sent: Monday, February 16, 2009 3:58 PM > To: "'Access Developers discussion and problem solving'" > > Subject: Re: [AccessD] Record Count Problem > >> I changed >> >> If rs.BOF = True And rs.EOF = True Then >> >> To >> >> If rs.RecordCount = 0 Then >> >> Crude but effective. >> >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo >> Sent: Monday, February 16, 2009 12:18 PM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Record Count Problem >> >> If rs.BOF = True And rs.EOF = True and rs.recordcount = 0 Then >> GoTo GoodBye >> Else >> Goto WaveHelloToRocky >> End if >> >> >> Or save the PK, then requery, then find saved PK and position on it. >> >> >> Max >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin >> at >> Beach Access Software >> Sent: 16 February 2009 19:09 >> To: 'Access Developers discussion and problem solving' >> Subject: [AccessD] Record Count Problem >> >> Dear List: >> >> In the following: >> >> Set rs = Me.RecordsetClone >> ' If no records then goodbye: >> MsgBox rs.RecordCount >> If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: >> >> the record count shows as 1 but BOF and EOF are both true. >> >> The record was just added. So the routine exits instead of doing what >> it's >> supposed to do. >> >> A Me.Requery solves the problem, but leaves the pointer at the start of >> the >> the recordset instead of the record the user was working on. >> >> I can's save a bookmark because the Requery triggers the activate event >> which calls this routine and destroys the bookmark. >> >> But why would the record count show 1 when the BOf and EOF are set to >> True? >> >> TIA >> >> >> >> >> >> >> Rocky Smolin >> >> Beach Access Software >> >> 858-259-4334 >> >> www.e-z-mrp.com >> >> www.bchacc.com >> >> >> >> >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From stuart at lexacorp.com.pg Tue Feb 17 08:45:34 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 18 Feb 2009 00:45:34 +1000 Subject: [AccessD] ZIpping Files In-Reply-To: <61DF267247654526AE04B1536ECD8266@MINSTER> References: , <61DF267247654526AE04B1536ECD8266@MINSTER> Message-ID: <499B5A2E.5161.25732CE@stuart.lexacorp.com.pg> There has just been a discussion over on dba-Tech about the built in Zip capabilities in Windows (XP onwards?) where "Compressed (zipped) Folders" are just ordinary zip files. This got me thinking about how you could use the built in capabilities to manage zip files through VBA rather than needing a third party DLL, the Winzip CLI or whatever. Turns out it is trivial to to create an empty ZIp file, it is just a string of 22 bytes as follows: Function CreateNewZipFolder(Filename As String) As Long Dim strEmptyZip As String strEmptyZip = Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String$(18, Chr$(0)) Open Filename For Binary As #1 Put #1, , strEmptyZip Close #1 End Function You can now use a Shell.Application object to work with this file/folder. Firstly set a reference to Microsoft Shell Controls and Automation: Shell32.dll Then you just need a couple of simple functions: Function AddFileToZip(ZipFileName As String, Filename As String) 'Zipfilename and Filename need to be full paths Dim oShellApp As Shell32.Shell Set oShellApp = CreateObject("Shell.Application") oShellApp.NameSpace(ZipFileName).CopyHere Filename Set oShellApp = Nothing End Function and Function ExtractFileFromZip(ZipFileName As String, DestDir as String,Filename As String) 'Zipfilename and DestDir need to be full paths 'Filename should just be the filename without a path Dim oShellApp As Shell32.Shell Set oShellApp = CreateObject("Shell.Application") oShellApp.NameSpace(DestDir).CopyHere _ oShellApp.Namespace(ZipFileName).Items.Item(Filename) Set oShellApp = Nothing End Function To extract all files replace oShellApp.Namespace(ZipFileName).Items.Item(Filename) with oShellApp.Namespace(ZipFileName).Items Note that this is a bare shell and you will need to add a bit of error checking - oShellApp doesn't like it if files/directories don't exist and will pop up a standard "File exists, do you want to copy" dialog if the zip or destination already contains the file. -- Stuart From rockysmolin at bchacc.com Tue Feb 17 08:56:43 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 17 Feb 2009 06:56:43 -0800 Subject: [AccessD] Record Count Problem In-Reply-To: References: <83BC2A78223747219DF22CD39840D3D2@HAL9005><4999c9f8.0856100a.5b46.ffff8236@mx.google.com> <5A80381F4F224687A1B41069A923B8D1@jislaptopdev><499a7a20.0ac0100a.2fb6.ffffe5d0@mx.google.com> Message-ID: <2D8E3A4B3E2F41A5B109A5FF12E2BC2B@HAL9005> I could do the move last but that would mean a bit of On Error GoTo, check for the right error code, Resume Label:, etc. I've used error traps before to trap errors which are deliberately generated, but as an old fashioned programmer it always rubbed me the wrong way. Nothing wrong with it, of course, just like to write programs that don't create errors. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Tuesday, February 17, 2009 6:42 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Record Count Problem ...I understand that Max ...the question is, without the movelast, what is a stand-alone recordcount actually counting ...does recordcount return a 1 or zero if a record has not been accessed ...I always go to the last record so I can't say yes or no ...but if records are there but have not been accessed as yet, will recordcount return a zero value? William -------------------------------------------------- From: "Max Wanadoo" Sent: Tuesday, February 17, 2009 3:49 AM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Record Count Problem > Hi William, > > I *think* that Rocky just needs to know if there are ANY records at all. > > He is not interested in how many there are, just whether there is none > or some. For his own reasons he said he does not want to requery the > recordset to use the recordsetclone and therefore the rs.recordcount > will work just fine whereas the rs.eof and rs.bof will not. > > Personally, I would have requeried if I was using a recordsetclone > having saved the record pointer and then repositioned on the pointer. > Rocky did not want to do that. > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William > Hindman > Sent: 17 February 2009 01:51 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Record Count Problem > > ...hhhmmm ...iirc (and that gets more hypothetical with every year) > the rs.recordcount will return a count of records "accessed" ...not > the total count of records in the object ...you have to do a movelast > before the rs.recordcount to be sure what its actually counting. > > William > > -------------------------------------------------- > From: "Rocky Smolin at Beach Access Software" > Sent: Monday, February 16, 2009 3:58 PM > To: "'Access Developers discussion and problem solving'" > > Subject: Re: [AccessD] Record Count Problem > >> I changed >> >> If rs.BOF = True And rs.EOF = True Then >> >> To >> >> If rs.RecordCount = 0 Then >> >> Crude but effective. >> >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max >> Wanadoo >> Sent: Monday, February 16, 2009 12:18 PM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Record Count Problem >> >> If rs.BOF = True And rs.EOF = True and rs.recordcount = 0 Then GoTo >> GoodBye Else Goto WaveHelloToRocky End if >> >> >> Or save the PK, then requery, then find saved PK and position on it. >> >> >> Max >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >> Smolin at Beach Access Software >> Sent: 16 February 2009 19:09 >> To: 'Access Developers discussion and problem solving' >> Subject: [AccessD] Record Count Problem >> >> Dear List: >> >> In the following: >> >> Set rs = Me.RecordsetClone >> ' If no records then goodbye: >> MsgBox rs.RecordCount >> If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: >> >> the record count shows as 1 but BOF and EOF are both true. >> >> The record was just added. So the routine exits instead of doing >> what it's supposed to do. >> >> A Me.Requery solves the problem, but leaves the pointer at the start >> of the the recordset instead of the record the user was working on. >> >> I can's save a bookmark because the Requery triggers the activate >> event which calls this routine and destroys the bookmark. >> >> But why would the record count show 1 when the BOf and EOF are set to >> True? >> >> TIA >> >> >> >> >> >> >> Rocky Smolin >> >> Beach Access Software >> >> 858-259-4334 >> >> www.e-z-mrp.com >> >> www.bchacc.com >> >> >> >> >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Feb 17 09:14:50 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 17 Feb 2009 10:14:50 -0500 Subject: [AccessD] ZIpping Files In-Reply-To: <499B5A2E.5161.25732CE@stuart.lexacorp.com.pg> References: , <61DF267247654526AE04B1536ECD8266@MINSTER> <499B5A2E.5161.25732CE@stuart.lexacorp.com.pg> Message-ID: <499AD46A.1020403@colbyconsulting.com> Wow, is that cool or what! Now all we need is a version checker or some other method to determine if this is valid on the current OS. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > There has just been a discussion over on dba-Tech about the built in Zip capabilities in > Windows (XP onwards?) where "Compressed (zipped) Folders" are just ordinary zip files. > > This got me thinking about how you could use the built in capabilities to manage zip files > through VBA rather than needing a third party DLL, the Winzip CLI or whatever. > > Turns out it is trivial to to create an empty ZIp file, it is just a string of 22 bytes as follows: > > Function CreateNewZipFolder(Filename As String) As Long > Dim strEmptyZip As String > strEmptyZip = Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String$(18, Chr$(0)) > Open Filename For Binary As #1 > Put #1, , strEmptyZip > Close #1 > End Function > > You can now use a Shell.Application object to work with this file/folder. > > Firstly set a reference to Microsoft Shell Controls and Automation: Shell32.dll > > Then you just need a couple of simple functions: > > Function AddFileToZip(ZipFileName As String, Filename As String) > 'Zipfilename and Filename need to be full paths > Dim oShellApp As Shell32.Shell > Set oShellApp = CreateObject("Shell.Application") > oShellApp.NameSpace(ZipFileName).CopyHere Filename > Set oShellApp = Nothing > End Function > > and > > Function ExtractFileFromZip(ZipFileName As String, DestDir as String,Filename As String) > 'Zipfilename and DestDir need to be full paths > 'Filename should just be the filename without a path > Dim oShellApp As Shell32.Shell > Set oShellApp = CreateObject("Shell.Application") > oShellApp.NameSpace(DestDir).CopyHere _ > oShellApp.Namespace(ZipFileName).Items.Item(Filename) > Set oShellApp = Nothing > End Function > > To extract all files replace > oShellApp.Namespace(ZipFileName).Items.Item(Filename) > with > oShellApp.Namespace(ZipFileName).Items > > Note that this is a bare shell and you will need to add a bit of error checking - oShellApp > doesn't like it if files/directories don't exist and will pop up a standard "File exists, do you > want to copy" dialog if the zip or destination already contains the file. > From fuller.artful at gmail.com Tue Feb 17 09:30:24 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Tue, 17 Feb 2009 10:30:24 -0500 Subject: [AccessD] ZIpping Files In-Reply-To: <499B5A2E.5161.25732CE@stuart.lexacorp.com.pg> References: <61DF267247654526AE04B1536ECD8266@MINSTER> <499B5A2E.5161.25732CE@stuart.lexacorp.com.pg> Message-ID: <29f585dd0902170730u3c4bd1ffp6c89cf7867c74bd7@mail.gmail.com> Pretty neat! It could use a third function that lists the files and folders with a given zip file. Then it would be totally slick. A. From jwcolby at colbyconsulting.com Tue Feb 17 09:34:31 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 17 Feb 2009 10:34:31 -0500 Subject: [AccessD] ZIpping Files In-Reply-To: <29f585dd0902170730u3c4bd1ffp6c89cf7867c74bd7@mail.gmail.com> References: <61DF267247654526AE04B1536ECD8266@MINSTER> <499B5A2E.5161.25732CE@stuart.lexacorp.com.pg> <29f585dd0902170730u3c4bd1ffp6c89cf7867c74bd7@mail.gmail.com> Message-ID: <499AD907.2080208@colbyconsulting.com> Unfortunately one of my major clients is still on Windows 2000 and Office 2000, with no intention of upgrading either. John W. Colby www.ColbyConsulting.com Arthur Fuller wrote: > Pretty neat! It could use a third function that lists the files and folders > with a given zip file. Then it would be totally slick. > > A. From DWUTKA at Marlow.com Tue Feb 17 09:38:21 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 17 Feb 2009 09:38:21 -0600 Subject: [AccessD] Record Count Problem In-Reply-To: <95205108170845749D808391D5CBBF61@HAL9005> References: <83BC2A78223747219DF22CD39840D3D2@HAL9005><4999c9f8.0856100a.5b46.ffff8236@mx.google.com><5A80381F4F224687A1B41069A923B8D1@jislaptopdev> <95205108170845749D808391D5CBBF61@HAL9005> Message-ID: Just curious Rocky, what kind of recordset is this (ADO, DAO) and what kind of cursor type is used? Sounds like what you are dealing with is a recordset that is forward only.... but I could be wrong... Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Monday, February 16, 2009 10:05 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Record Count Problem Well I only need to know if there's at least 1 record not the real record count. So I think I'm safe. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Monday, February 16, 2009 5:51 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Record Count Problem ...hhhmmm ...iirc (and that gets more hypothetical with every year) the rs.recordcount will return a count of records "accessed" ...not the total count of records in the object ...you have to do a movelast before the rs.recordcount to be sure what its actually counting. William -------------------------------------------------- From: "Rocky Smolin at Beach Access Software" Sent: Monday, February 16, 2009 3:58 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Record Count Problem > I changed > > If rs.BOF = True And rs.EOF = True Then > > To > > If rs.RecordCount = 0 Then > > Crude but effective. > > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Monday, February 16, 2009 12:18 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Record Count Problem > > If rs.BOF = True And rs.EOF = True and rs.recordcount = 0 Then GoTo > GoodBye Else Goto WaveHelloToRocky End if > > > Or save the PK, then requery, then find saved PK and position on it. > > > Max > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 16 February 2009 19:09 > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Record Count Problem > > Dear List: > > In the following: > > Set rs = Me.RecordsetClone > ' If no records then goodbye: > MsgBox rs.RecordCount > If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: > > the record count shows as 1 but BOF and EOF are both true. > > The record was just added. So the routine exits instead of doing what > it's supposed to do. > > A Me.Requery solves the problem, but leaves the pointer at the start > of the the recordset instead of the record the user was working on. > > I can's save a bookmark because the Requery triggers the activate > event which calls this routine and destroys the bookmark. > > But why would the record count show 1 when the BOf and EOF are set to > True? > > TIA > > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwcolby at colbyconsulting.com Tue Feb 17 09:39:08 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 17 Feb 2009 10:39:08 -0500 Subject: [AccessD] table spec Message-ID: <499ADA1C.5060506@colbyconsulting.com> Does anyone have code or a trick to get a table spec printed out? I have to provide a client a spec of a table that we import, with the field name, data type and number of characters if done as a flat file. Starting position, from / to columns would be nice but not essential. -- John W. Colby www.ColbyConsulting.com From cfoust at infostatsystems.com Tue Feb 17 09:42:17 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Tue, 17 Feb 2009 07:42:17 -0800 Subject: [AccessD] Don't miss this special occasion... (Unix/Posix time) In-Reply-To: References: Message-ID: I was being facetious, Gustav. I know that's hard to believe, but it WAS Friday, after all. ;-> Charlotte -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Friday, February 13, 2009 1:21 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Don't miss this special occasion... (Unix/Posix time) Hi Charlotte John wrote UTC time zone. But if you prefer, insert your own timezone bias: Public Function DateFromUnix( _ ByVal dblSeconds As Double, _ Optional lngLocalTimeBias As Long) _ As Date ' Converts UNIX (or POSIX) time value to UTC date value. ' Optionally, a local time bias can be specified; ' this must be in minutes with a resolution of 15 minutes. ' ' Examples: ' UTC. dblSeconds: 1000000000, lngLocalTimeBias: 0 ' 2001-09-09 01:46:40 ' CET. dblSeconds: 1000000000, lngLocalTimeBias: -60 ' 2001-09-09 02:46:40 ' ' 2004-03-23. Cactus Data ApS. CPH. ' 2008-02-27. Constants renamed for clarity. ' UNIX epoch (start time). Const cdatUnixEpoch As Date = #1/1/1970# ' Maximum time bias in seconds, 12 hours. Const clngSecondsBiasMax As Long = 12& * 60& ' Count of seconds of one day. Const clngSecondsPerDay As Long = 24& * 60& * 60& Dim dblDays As Double Dim dblDaysSeconds As Double Dim lngSeconds As Long Dim datTime As Date ' Limit intervals for DateAdd to Long to be acceptable. dblDays = Int(dblSeconds / clngSecondsPerDay) dblDaysSeconds = dblDays * clngSecondsPerDay lngSeconds = dblSeconds - dblDaysSeconds datTime = DateAdd("d", dblDays, cdatUnixEpoch) datTime = DateAdd("s", lngSeconds, datTime) If lngLocalTimeBias <> 0 Then If Abs(lngLocalTimeBias) < clngSecondsBiasMax Then datTime = DateAdd("n", -lngLocalTimeBias, datTime) End If End If DateFromUnix = datTime End Function Public Function UnixTimeValue( _ ByVal datTime As Date, _ Optional ByVal lngLocalTimeBias As Long) _ As Double ' Converts UTC date value to UNIX (or POSIX) time value. ' Optionally, a local time bias can be specified; ' this must be in minutes with a resolution of 15 minutes. ' ' Examples: ' UTC. datTime: #09/09/2001 01:46:40#, lngLocalTimeBias: 0 ' 1000000000 ' CET. datTime: #09/09/2001 02:46:40#, lngLocalTimeBias: -60 ' 1000000000 ' ' 2004-03-23. Cactus Data ApS. CPH. ' 2008-02-27. Constants renamed for clarity. ' UNIX epoch (start time). Const cdatUnixEpoch As Date = #1/1/1970# ' Maximum time bias in seconds, 12 hours. Const clngSecondsBiasMax As Long = 12& * 60& Dim dblSeconds As Double If lngLocalTimeBias <> 0 Then If Abs(lngLocalTimeBias) < clngSecondsBiasMax Then datTime = DateAdd("n", lngLocalTimeBias, datTime) End If End If dblSeconds = DateDiff("s", cdatUnixEpoch, datTime) UnixTimeValue = dblSeconds End Function Have fun! /gustav >>> cfoust at infostatsystems.com 13-02-2009 19:08 >>> Is that Pacific or Eastern? Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 13, 2009 10:04 AM To: Access Developers discussion and problem solving Subject: [AccessD] Don't miss this special occasion... There is something that is important happening today! And I just know how interested you are in this bit of time trivia for all you IT geeks out there ... Many computer operating systems measure time by counting the number of seconds before/after midnight of January 1, 1970. This is known as POSIX or Universal Time Code (UTC) time. Today, a memorable event occurs in UTC time. On Friday, Feb 13 2009 at exactly 3:31:30 PM the UTC will be 1234567890 - the numbers of seconds since 1/1/70. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Tue Feb 17 09:53:10 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Tue, 17 Feb 2009 10:53:10 -0500 Subject: [AccessD] table spec References: <499ADA1C.5060506@colbyconsulting.com> Message-ID: <8885A103A53F4842A53083D1C1B698D7@jislaptopdev> ...try: http://www.cleandatasystems.com/#DataDict William -------------------------------------------------- From: "jwcolby" Sent: Tuesday, February 17, 2009 10:39 AM To: "Access Developers discussion and problem solving" Subject: [AccessD] table spec > Does anyone have code or a trick to get a table spec printed out? I have > to provide a client a spec > of a table that we import, with the field name, data type and number of > characters if done as a flat > file. Starting position, from / to columns would be nice but not > essential. > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From max.wanadoo at gmail.com Tue Feb 17 10:16:38 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 17 Feb 2009 16:16:38 -0000 Subject: [AccessD] table spec In-Reply-To: <8885A103A53F4842A53083D1C1B698D7@jislaptopdev> References: <499ADA1C.5060506@colbyconsulting.com> <8885A103A53F4842A53083D1C1B698D7@jislaptopdev> Message-ID: <499ae2f0.06a0100a.4f92.2251@mx.google.com> John: That program I sent you to export the Table Definition will do what you want. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: 17 February 2009 15:53 To: Access Developers discussion and problem solving Subject: Re: [AccessD] table spec ...try: http://www.cleandatasystems.com/#DataDict William -------------------------------------------------- From: "jwcolby" Sent: Tuesday, February 17, 2009 10:39 AM To: "Access Developers discussion and problem solving" Subject: [AccessD] table spec > Does anyone have code or a trick to get a table spec printed out? I have > to provide a client a spec > of a table that we import, with the field name, data type and number of > characters if done as a flat > file. Starting position, from / to columns would be nice but not > essential. > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Tue Feb 17 10:22:38 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Tue, 17 Feb 2009 11:22:38 -0500 Subject: [AccessD] table spec References: <499ADA1C.5060506@colbyconsulting.com><8885A103A53F4842A53083D1C1B698D7@jislaptopdev> <499ae2f0.06a0100a.4f92.2251@mx.google.com> Message-ID: <9EB701FAA5624BC7B7CAFE6279214654@jislaptopdev> William -------------------------------------------------- From: "Max Wanadoo" Sent: Tuesday, February 17, 2009 11:16 AM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] table spec > John: That program I sent you to export the Table Definition will do what > you want. > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman > Sent: 17 February 2009 15:53 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] table spec > > ...try: http://www.cleandatasystems.com/#DataDict > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Tuesday, February 17, 2009 10:39 AM > To: "Access Developers discussion and problem solving" > > Subject: [AccessD] table spec > >> Does anyone have code or a trick to get a table spec printed out? I have >> to provide a client a spec >> of a table that we import, with the field name, data type and number of >> characters if done as a flat >> file. Starting position, from / to columns would be nice but not >> essential. >> >> -- >> John W. Colby >> www.ColbyConsulting.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From rockysmolin at bchacc.com Tue Feb 17 10:23:42 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 17 Feb 2009 08:23:42 -0800 Subject: [AccessD] Record Count Problem In-Reply-To: References: <83BC2A78223747219DF22CD39840D3D2@HAL9005><4999c9f8.0856100a.5b46.ffff8236@mx.google.com><5A80381F4F224687A1B41069A923B8D1@jislaptopdev><95205108170845749D808391D5CBBF61@HAL9005> Message-ID: It's actually the form's recordset - Set rs = Me.RecordsetClone Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, February 17, 2009 7:38 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Record Count Problem Just curious Rocky, what kind of recordset is this (ADO, DAO) and what kind of cursor type is used? Sounds like what you are dealing with is a recordset that is forward only.... but I could be wrong... Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Monday, February 16, 2009 10:05 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Record Count Problem Well I only need to know if there's at least 1 record not the real record count. So I think I'm safe. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Monday, February 16, 2009 5:51 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Record Count Problem ...hhhmmm ...iirc (and that gets more hypothetical with every year) the rs.recordcount will return a count of records "accessed" ...not the total count of records in the object ...you have to do a movelast before the rs.recordcount to be sure what its actually counting. William -------------------------------------------------- From: "Rocky Smolin at Beach Access Software" Sent: Monday, February 16, 2009 3:58 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Record Count Problem > I changed > > If rs.BOF = True And rs.EOF = True Then > > To > > If rs.RecordCount = 0 Then > > Crude but effective. > > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Monday, February 16, 2009 12:18 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Record Count Problem > > If rs.BOF = True And rs.EOF = True and rs.recordcount = 0 Then GoTo > GoodBye Else Goto WaveHelloToRocky End if > > > Or save the PK, then requery, then find saved PK and position on it. > > > Max > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 16 February 2009 19:09 > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Record Count Problem > > Dear List: > > In the following: > > Set rs = Me.RecordsetClone > ' If no records then goodbye: > MsgBox rs.RecordCount > If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: > > the record count shows as 1 but BOF and EOF are both true. > > The record was just added. So the routine exits instead of doing what > it's supposed to do. > > A Me.Requery solves the problem, but leaves the pointer at the start > of the the recordset instead of the record the user was working on. > > I can's save a bookmark because the Requery triggers the activate > event which calls this routine and destroys the bookmark. > > But why would the record count show 1 when the BOf and EOF are set to > True? > > TIA > > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Feb 17 10:24:58 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 17 Feb 2009 11:24:58 -0500 Subject: [AccessD] table spec In-Reply-To: <8885A103A53F4842A53083D1C1B698D7@jislaptopdev> References: <499ADA1C.5060506@colbyconsulting.com> <8885A103A53F4842A53083D1C1B698D7@jislaptopdev> Message-ID: <499AE4DA.5020407@colbyconsulting.com> Got it, thanks. John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...try: http://www.cleandatasystems.com/#DataDict > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Tuesday, February 17, 2009 10:39 AM > To: "Access Developers discussion and problem solving" > > Subject: [AccessD] table spec > >> Does anyone have code or a trick to get a table spec printed out? I have >> to provide a client a spec >> of a table that we import, with the field name, data type and number of >> characters if done as a flat >> file. Starting position, from / to columns would be nice but not >> essential. >> >> -- >> John W. Colby >> www.ColbyConsulting.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From Gustav at cactus.dk Tue Feb 17 10:40:18 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 17 Feb 2009 17:40:18 +0100 Subject: [AccessD] Don't miss this special occasion... (Unix/Posix time) Message-ID: Hi Charlotte Sorry, missed that (not the Friday). /gustav >>> cfoust at infostatsystems.com 17-02-2009 16:42 >>> I was being facetious, Gustav. I know that's hard to believe, but it WAS Friday, after all. ;-> From jwcolby at colbyconsulting.com Tue Feb 17 11:56:06 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 17 Feb 2009 12:56:06 -0500 Subject: [AccessD] Classes and Events - The clsCtlLabel Message-ID: <499AFA36.7030101@colbyconsulting.com> Control Labels It is sometimes useful to be able to manipulate the label of a control in some way. For example if a control is going to have a dbl-click event behavior we might want to set the label to a different color so that the user can visually see that they can double click on that combo to modify the list behind the combo. You may find your own reasons to modify the control's label. Each control has a Controls() collection just like the form does. In most of the controls, the Controls collection has nothing but the label in it. In all cases, the label is the index position zero in the collection if the label exists. Not every control has a label, for example tabs and pages. Even controls that do normally have a label can have the label intentionally removed by the developer. Thus while we can in fact obtain a pointer to the label, we may have to do tests to determine whether the label exists. In order to practice building classes, we will build a new clsCtlLbl for our label control. " In the demo database, click Insert / Class. " Immediately save as clsCtlLbl " In the header add the following code: ' Private mlbl As Label 'The label associated with this control ' " In the left combo box, select the class. This will insert the _Initialize event stub which we will not be using. " In the right combo box select Terminate. This will insert the Terminate stub. " Insert the following code in the Terminate stub: Private Sub Class_Terminate() Set mlbl = Nothing End Sub The class Terminate() event performs cleanup for the class. " In mInit add the following code: Function mInit(ctl As Control) mGetLbl ctl End Function This function passes in a control to the label class. mGetLbl ctl will search the control's Control() collection to see if there is a label in the collection, and if so get a pointer to it. " Immediately under mInit() add the following code: Property Get ctlLbl() As Label Set ctlLbl = mlbl End Property This code adds a property to the class which allows the parent class to get a pointer to the label. " In the bottom of the class add the following code ' 'Connects a label to a control - used for continuous forms where the label is in the header etc. ' Function ConnectLabel(llbl As Label) Set mlbl = llbl End Function ' 'Finds the label that "belongs to" the passed in control. ' Private Function mGetLbl(ctlFindLbl As Control) As Label Dim ctl As Control For Each ctl In ctlFindLbl.Controls If ctl.ControlType = acLabel Then Set mGetLbl = ctl Exit For End If Next ctl Exit_mGetLbl: Exit Function End Function In this lecture we have discussed why we might want to manipulate the label of a control. We then created a new class to hold all of the data and code required to process labels, and to get a pointer to the label. -- John W. Colby www.ColbyConsulting.com From cfoust at infostatsystems.com Tue Feb 17 12:02:24 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Tue, 17 Feb 2009 10:02:24 -0800 Subject: [AccessD] Record Count Problem In-Reply-To: References: <83BC2A78223747219DF22CD39840D3D2@HAL9005><4999c9f8.0856100a.5b46.ffff8236@mx.google.com><5A80381F4F224687A1B41069A923B8D1@jislaptopdev><95205108170845749D808391D5CBBF61@HAL9005> Message-ID: If the recordset is the clone, did you create it before or after you added the new record to the form? The two recordsets don't stay in sync automatically unless you requery to keep them that way or create a new recordset when you need it. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Tuesday, February 17, 2009 8:24 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Record Count Problem It's actually the form's recordset - Set rs = Me.RecordsetClone Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, February 17, 2009 7:38 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Record Count Problem Just curious Rocky, what kind of recordset is this (ADO, DAO) and what kind of cursor type is used? Sounds like what you are dealing with is a recordset that is forward only.... but I could be wrong... Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Monday, February 16, 2009 10:05 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Record Count Problem Well I only need to know if there's at least 1 record not the real record count. So I think I'm safe. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Monday, February 16, 2009 5:51 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Record Count Problem ...hhhmmm ...iirc (and that gets more hypothetical with every year) the rs.recordcount will return a count of records "accessed" ...not the total count of records in the object ...you have to do a movelast before the rs.recordcount to be sure what its actually counting. William -------------------------------------------------- From: "Rocky Smolin at Beach Access Software" Sent: Monday, February 16, 2009 3:58 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Record Count Problem > I changed > > If rs.BOF = True And rs.EOF = True Then > > To > > If rs.RecordCount = 0 Then > > Crude but effective. > > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Monday, February 16, 2009 12:18 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Record Count Problem > > If rs.BOF = True And rs.EOF = True and rs.recordcount = 0 Then GoTo > GoodBye Else Goto WaveHelloToRocky End if > > > Or save the PK, then requery, then find saved PK and position on it. > > > Max > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 16 February 2009 19:09 > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Record Count Problem > > Dear List: > > In the following: > > Set rs = Me.RecordsetClone > ' If no records then goodbye: > MsgBox rs.RecordCount > If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: > > the record count shows as 1 but BOF and EOF are both true. > > The record was just added. So the routine exits instead of doing what > it's supposed to do. > > A Me.Requery solves the problem, but leaves the pointer at the start > of the the recordset instead of the record the user was working on. > > I can's save a bookmark because the Requery triggers the activate > event which calls this routine and destroys the bookmark. > > But why would the record count show 1 when the BOf and EOF are set to > True? > > TIA > > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Tue Feb 17 12:42:53 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 17 Feb 2009 10:42:53 -0800 Subject: [AccessD] Record Count Problem In-Reply-To: References: <83BC2A78223747219DF22CD39840D3D2@HAL9005><4999c9f8.0856100a.5b46.ffff8236@mx.google.com><5A80381F4F224687A1B41069A923B8D1@jislaptopdev><95205108170845749D808391D5CBBF61@HAL9005> Message-ID: After. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Tuesday, February 17, 2009 10:02 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Record Count Problem If the recordset is the clone, did you create it before or after you added the new record to the form? The two recordsets don't stay in sync automatically unless you requery to keep them that way or create a new recordset when you need it. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Tuesday, February 17, 2009 8:24 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Record Count Problem It's actually the form's recordset - Set rs = Me.RecordsetClone Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, February 17, 2009 7:38 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Record Count Problem Just curious Rocky, what kind of recordset is this (ADO, DAO) and what kind of cursor type is used? Sounds like what you are dealing with is a recordset that is forward only.... but I could be wrong... Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Monday, February 16, 2009 10:05 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Record Count Problem Well I only need to know if there's at least 1 record not the real record count. So I think I'm safe. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Monday, February 16, 2009 5:51 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Record Count Problem ...hhhmmm ...iirc (and that gets more hypothetical with every year) the rs.recordcount will return a count of records "accessed" ...not the total count of records in the object ...you have to do a movelast before the rs.recordcount to be sure what its actually counting. William -------------------------------------------------- From: "Rocky Smolin at Beach Access Software" Sent: Monday, February 16, 2009 3:58 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Record Count Problem > I changed > > If rs.BOF = True And rs.EOF = True Then > > To > > If rs.RecordCount = 0 Then > > Crude but effective. > > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Monday, February 16, 2009 12:18 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Record Count Problem > > If rs.BOF = True And rs.EOF = True and rs.recordcount = 0 Then GoTo > GoodBye Else Goto WaveHelloToRocky End if > > > Or save the PK, then requery, then find saved PK and position on it. > > > Max > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 16 February 2009 19:09 > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Record Count Problem > > Dear List: > > In the following: > > Set rs = Me.RecordsetClone > ' If no records then goodbye: > MsgBox rs.RecordCount > If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: > > the record count shows as 1 but BOF and EOF are both true. > > The record was just added. So the routine exits instead of doing what > it's supposed to do. > > A Me.Requery solves the problem, but leaves the pointer at the start > of the the recordset instead of the record the user was working on. > > I can's save a bookmark because the Requery triggers the activate > event which calls this routine and destroys the bookmark. > > But why would the record count show 1 when the BOf and EOF are set to > True? > > TIA > > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Tue Feb 17 12:42:58 2009 From: max.wanadoo at gmail.com (Denis Sherman) Date: Tue, 17 Feb 2009 18:42:58 -0000 Subject: [AccessD] ZIpping Files In-Reply-To: <499B5A2E.5161.25732CE@stuart.lexacorp.com.pg> References: , <61DF267247654526AE04B1536ECD8266@MINSTER> <499B5A2E.5161.25732CE@stuart.lexacorp.com.pg> Message-ID: <499b0541.0ac0100a.567c.ffffad95@mx.google.com> Stuart, What sort of thing would you use this for? Would it be to archive stuff, mail stuff, that sort of thing? Or is there something more intrinsic to Access that I am not grasping? Thanks Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: 17 February 2009 14:46 To: Access Developers discussion and problem solving Subject: [AccessD] ZIpping Files There has just been a discussion over on dba-Tech about the built in Zip capabilities in Windows (XP onwards?) where "Compressed (zipped) Folders" are just ordinary zip files. This got me thinking about how you could use the built in capabilities to manage zip files through VBA rather than needing a third party DLL, the Winzip CLI or whatever. Turns out it is trivial to to create an empty ZIp file, it is just a string of 22 bytes as follows: Function CreateNewZipFolder(Filename As String) As Long Dim strEmptyZip As String strEmptyZip = Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String$(18, Chr$(0)) Open Filename For Binary As #1 Put #1, , strEmptyZip Close #1 End Function You can now use a Shell.Application object to work with this file/folder. Firstly set a reference to Microsoft Shell Controls and Automation: Shell32.dll Then you just need a couple of simple functions: Function AddFileToZip(ZipFileName As String, Filename As String) 'Zipfilename and Filename need to be full paths Dim oShellApp As Shell32.Shell Set oShellApp = CreateObject("Shell.Application") oShellApp.NameSpace(ZipFileName).CopyHere Filename Set oShellApp = Nothing End Function and Function ExtractFileFromZip(ZipFileName As String, DestDir as String,Filename As String) 'Zipfilename and DestDir need to be full paths 'Filename should just be the filename without a path Dim oShellApp As Shell32.Shell Set oShellApp = CreateObject("Shell.Application") oShellApp.NameSpace(DestDir).CopyHere _ oShellApp.Namespace(ZipFileName).Items.Item(Filename) Set oShellApp = Nothing End Function To extract all files replace oShellApp.Namespace(ZipFileName).Items.Item(Filename) with oShellApp.Namespace(ZipFileName).Items Note that this is a bare shell and you will need to add a bit of error checking - oShellApp doesn't like it if files/directories don't exist and will pop up a standard "File exists, do you want to copy" dialog if the zip or destination already contains the file. -- Stuart -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From markamatte at hotmail.com Tue Feb 17 13:07:06 2009 From: markamatte at hotmail.com (Mark A Matte) Date: Tue, 17 Feb 2009 19:07:06 +0000 Subject: [AccessD] ZIpping Files In-Reply-To: <499b0541.0ac0100a.567c.ffffad95@mx.google.com> References: , <61DF267247654526AE04B1536ECD8266@MINSTER> <499B5A2E.5161.25732CE@stuart.lexacorp.com.pg> <499b0541.0ac0100a.567c.ffffad95@mx.google.com> Message-ID: Personally...before I retired the app...I had a Stock program...that would retireve an FTP file, UNZIP it...and 'do stuff' to the data...14 times a day. I had to pay for the command line utility to unzip the files. Everything else was in MS Access...if I had this...no third party stuff would have been needed to fully automate the process. Mark A. Matte ---------------------------------------- > From: max.wanadoo at gmail.com > To: accessd at databaseadvisors.com > Date: Tue, 17 Feb 2009 18:42:58 +0000 > Subject: Re: [AccessD] ZIpping Files > > Stuart, > What sort of thing would you use this for? Would it be to archive stuff, > mail stuff, that sort of thing? Or is there something more intrinsic to > Access that I am not grasping? > Thanks > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: 17 February 2009 14:46 > To: Access Developers discussion and problem solving > Subject: [AccessD] ZIpping Files > > There has just been a discussion over on dba-Tech about the built in Zip > capabilities in > Windows (XP onwards?) where "Compressed (zipped) Folders" are just ordinary > zip files. > > This got me thinking about how you could use the built in capabilities to > manage zip files > through VBA rather than needing a third party DLL, the Winzip CLI or > whatever. > > Turns out it is trivial to to create an empty ZIp file, it is just a string > of 22 bytes as follows: > > Function CreateNewZipFolder(Filename As String) As Long > Dim strEmptyZip As String > strEmptyZip = Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String$(18, Chr$(0)) > Open Filename For Binary As #1 > Put #1, , strEmptyZip > Close #1 > End Function > > You can now use a Shell.Application object to work with this file/folder. > > Firstly set a reference to Microsoft Shell Controls and Automation: > Shell32.dll > > Then you just need a couple of simple functions: > > Function AddFileToZip(ZipFileName As String, Filename As String) > 'Zipfilename and Filename need to be full paths > Dim oShellApp As Shell32.Shell > Set oShellApp = CreateObject("Shell.Application") > oShellApp.NameSpace(ZipFileName).CopyHere Filename > Set oShellApp = Nothing > End Function > > and > > Function ExtractFileFromZip(ZipFileName As String, DestDir as > String,Filename As String) > 'Zipfilename and DestDir need to be full paths > 'Filename should just be the filename without a path > Dim oShellApp As Shell32.Shell > Set oShellApp = CreateObject("Shell.Application") > oShellApp.NameSpace(DestDir).CopyHere _ > oShellApp.Namespace(ZipFileName).Items.Item(Filename) > Set oShellApp = Nothing > End Function > > To extract all files replace > oShellApp.Namespace(ZipFileName).Items.Item(Filename) > with > oShellApp.Namespace(ZipFileName).Items > > Note that this is a bare shell and you will need to add a bit of error > checking - oShellApp > doesn't like it if files/directories don't exist and will pop up a standard > "File exists, do you > want to copy" dialog if the zip or destination already contains the file. > > -- > Stuart > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com _________________________________________________________________ Windows Live?: Keep your life in sync. http://windowslive.com/howitworks?ocid=TXT_TAGLM_WL_t1_allup_howitworks_022009 From rockysmolin at bchacc.com Tue Feb 17 13:11:04 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 17 Feb 2009 11:11:04 -0800 Subject: [AccessD] Form Resizing Slow in A2K7 Message-ID: <2F159A64EB394C61AA935771278BFF60@HAL9005> Dear List: I'm using form resizing in an application. Works well in 2003. But since 2007 runs slower than a stuck pig, when I open a form I see it for about 1/3 of a second small (screen is at a higher resolution that the form was designed in - 800x600, mostly) and then resizes to fill the screen. Looks crappy. What's the best way around this problem? MTIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com From bill_patten at embarqmail.com Tue Feb 17 13:23:46 2009 From: bill_patten at embarqmail.com (Bill Patten) Date: Tue, 17 Feb 2009 11:23:46 -0800 Subject: [AccessD] Form Resizing Slow in A2K7 In-Reply-To: <2F159A64EB394C61AA935771278BFF60@HAL9005> References: <2F159A64EB394C61AA935771278BFF60@HAL9005> Message-ID: <4D90B131A43944CE8C6AE155A0A30C0C@BPCS> Hi Rocky, I don't know if this will help but you might want to look into it. A friend of mine was having some performance issues with 2007 that he did not have with 2003. He installed this patch and one specific routine went from 21 min 48 sec to 3 min 37 sec. He is convinced that even though 2003 is still faster his client (who requested 2007) was much happier. http://support.microsoft.com/kb/960307 I did install it in mine, it doesn't appear to cause any problems but I don't use 2007 except for testing so didn't run any time tests of my own. HTH Bill ----- Original Message ----- From: "Rocky Smolin at Beach Access Software" To: "'Access Developers discussion and problem solving'" Sent: Tuesday, February 17, 2009 11:11 AM Subject: [AccessD] Form Resizing Slow in A2K7 Dear List: I'm using form resizing in an application. Works well in 2003. But since 2007 runs slower than a stuck pig, when I open a form I see it for about 1/3 of a second small (screen is at a higher resolution that the form was designed in - 800x600, mostly) and then resizes to fill the screen. Looks crappy. What's the best way around this problem? MTIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Tue Feb 17 13:57:39 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 17 Feb 2009 19:57:39 -0000 Subject: [AccessD] Form Resizing Slow in A2K7 In-Reply-To: <4D90B131A43944CE8C6AE155A0A30C0C@BPCS> References: <2F159A64EB394C61AA935771278BFF60@HAL9005> <4D90B131A43944CE8C6AE155A0A30C0C@BPCS> Message-ID: <499b16b8.06a0100a.7d82.ffffe364@mx.google.com> Bill, I am writing a program in 2007 for work where it will be run as 2003. It is horrendous in 2007 - every so slow. Keeps crashing etc. Saved it in 2003 format as an mdb and it went from 1,422,500 disk bytes to 380,112 disk bytes. I will have a go at this link and see if it helps. Thanks Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bill Patten Sent: 17 February 2009 19:24 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Form Resizing Slow in A2K7 Hi Rocky, I don't know if this will help but you might want to look into it. A friend of mine was having some performance issues with 2007 that he did not have with 2003. He installed this patch and one specific routine went from 21 min 48 sec to 3 min 37 sec. He is convinced that even though 2003 is still faster his client (who requested 2007) was much happier. http://support.microsoft.com/kb/960307 I did install it in mine, it doesn't appear to cause any problems but I don't use 2007 except for testing so didn't run any time tests of my own. HTH Bill ----- Original Message ----- From: "Rocky Smolin at Beach Access Software" To: "'Access Developers discussion and problem solving'" Sent: Tuesday, February 17, 2009 11:11 AM Subject: [AccessD] Form Resizing Slow in A2K7 Dear List: I'm using form resizing in an application. Works well in 2003. But since 2007 runs slower than a stuck pig, when I open a form I see it for about 1/3 of a second small (screen is at a higher resolution that the form was designed in - 800x600, mostly) and then resizes to fill the screen. Looks crappy. What's the best way around this problem? MTIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Tue Feb 17 13:58:19 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 17 Feb 2009 11:58:19 -0800 Subject: [AccessD] Form Resizing Slow in A2K7 In-Reply-To: <4D90B131A43944CE8C6AE155A0A30C0C@BPCS> References: <2F159A64EB394C61AA935771278BFF60@HAL9005> <4D90B131A43944CE8C6AE155A0A30C0C@BPCS> Message-ID: <4D56D7EBADF84C89B701288DA1BF4B19@HAL9005> Bill: Didn't help, but rearranging some of my housekeeping in the open event getting some better response. Thanks and regards Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bill Patten Sent: Tuesday, February 17, 2009 11:24 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Form Resizing Slow in A2K7 Hi Rocky, I don't know if this will help but you might want to look into it. A friend of mine was having some performance issues with 2007 that he did not have with 2003. He installed this patch and one specific routine went from 21 min 48 sec to 3 min 37 sec. He is convinced that even though 2003 is still faster his client (who requested 2007) was much happier. http://support.microsoft.com/kb/960307 I did install it in mine, it doesn't appear to cause any problems but I don't use 2007 except for testing so didn't run any time tests of my own. HTH Bill ----- Original Message ----- From: "Rocky Smolin at Beach Access Software" To: "'Access Developers discussion and problem solving'" Sent: Tuesday, February 17, 2009 11:11 AM Subject: [AccessD] Form Resizing Slow in A2K7 Dear List: I'm using form resizing in an application. Works well in 2003. But since 2007 runs slower than a stuck pig, when I open a form I see it for about 1/3 of a second small (screen is at a higher resolution that the form was designed in - 800x600, mostly) and then resizes to fill the screen. Looks crappy. What's the best way around this problem? MTIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From drawbridgej at sympatico.ca Tue Feb 17 14:21:10 2009 From: drawbridgej at sympatico.ca (Jack and Pat) Date: Tue, 17 Feb 2009 15:21:10 -0500 Subject: [AccessD] Class lecture emails In-Reply-To: <4995A49A.9090408@colbyconsulting.com> References: <4995A49A.9090408@colbyconsulting.com> Message-ID: Could some one please forward to me the email related to JC's # 19? I don't have it although I have the others. I was having considerable difficulty with CLSMSG DEMO and USING CLSMSGDEMO, especially cMsg() and Private WithEvents mclsMsg As clsMsg , but now realize that I was really missing the # 19 email. Thanks, jack -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 13, 2009 11:50 AM To: Access Developers discussion and problem solving Subject: [AccessD] Class lecture emails I show the following emails as lectures: 1) [AccessD] Classes and Events 2) [AccessD] CREATE CLASSES AND EVENTS DEMO DATABASE 3) [AccessD] LOAD THE FORM CLASS IN THE FORM 4) [AccessD] Get event sinks working 5) [AccessD] Building a Control Scanner 6) [AccessD] Building a control class 7) [AccessD] MODIFY THE FORM CLASS TO LOAD THE NEW COMBO CLASS. 8) [AccessD] Classes and Events - EVENTS NOT REQUIRED 9) [AccessD] BUILDING A TEXT CONTROL CLASS 10) [AccessD] The classes as they are at this instant - clsTimer 11) [AccessD] The classes as they are at this instant - clsCtlCbo 12) [AccessD] The classes as they are at this instant - clsCtlTxt 13) [AccessD] The classes as they are at this instant - clsFrm 14) [AccessD] The form 15) [AccessD] IMPORT THE FORM 16) [AccessD] SINKING EVENTS IN MULTIPLE PLACES 17) [AccessD] EMERGENCY HALT: was Re: The form for demo event sink in two places 18) [AccessD] Demo sinking events in two places 19) [AccessD] ClsMsg 20) [AccessD] CLSMSG DEMO 21) [AccessD] USING CLSMSGDEMO Not too bad for 5 days work. If you work through all of these lectures you will be awarded membership to the AccessD Order of the Classy Developers. More importantly, you will have done what too few Access programmers ever do, started down the road to mastering classes and events. Do or do not, there is no try. John W. Colby www.ColbyConsulting.com Johncliviger at aol.com wrote: > Hi JWC > > I started following the lectures on Tuesday so I'm behind. However I'm > working my way thru it all. But I'm not sure whether I've got all the essential > bits. How many lectures have you done to date? > > Your modus operandi is great and keeping going > > Regards > john cliviger > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From dwaters at usinternet.com Tue Feb 17 14:27:24 2009 From: dwaters at usinternet.com (Dan Waters) Date: Tue, 17 Feb 2009 14:27:24 -0600 Subject: [AccessD] Form Resizing Slow in A2K7 In-Reply-To: <2F159A64EB394C61AA935771278BFF60@HAL9005> References: <2F159A64EB394C61AA935771278BFF60@HAL9005> Message-ID: <19B0F96EF25E4809A4B288B6BDF60C4F@danwaters> Hi Rocky, You could try turning off the screen re-display while the form is re-sizing. It may not go faster, but at least the change won't be seen. Private sub OpenAndResizeForm() On Error GoTo EH Application.echo False '-- open and resize code here Application.Echo True EH: Application.Echo True Exit Sub -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Tuesday, February 17, 2009 1:11 PM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Form Resizing Slow in A2K7 Dear List: I'm using form resizing in an application. Works well in 2003. But since 2007 runs slower than a stuck pig, when I open a form I see it for about 1/3 of a second small (screen is at a higher resolution that the form was designed in - 800x600, mostly) and then resizes to fill the screen. Looks crappy. What's the best way around this problem? MTIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From bill_patten at embarqmail.com Tue Feb 17 14:27:54 2009 From: bill_patten at embarqmail.com (Bill Patten) Date: Tue, 17 Feb 2009 12:27:54 -0800 Subject: [AccessD] Form Resizing Slow in A2K7 In-Reply-To: <4D56D7EBADF84C89B701288DA1BF4B19@HAL9005> References: <2F159A64EB394C61AA935771278BFF60@HAL9005><4D90B131A43944CE8C6AE155A0A30C0C@BPCS> <4D56D7EBADF84C89B701288DA1BF4B19@HAL9005> Message-ID: <4B2330AB9ECD45A58CB6F70C21A0CCF2@BPCS> Sorry, but I thought it might be worth a try. Bill ----- Original Message ----- From: "Rocky Smolin at Beach Access Software" To: "'Access Developers discussion and problem solving'" Sent: Tuesday, February 17, 2009 11:58 AM Subject: Re: [AccessD] Form Resizing Slow in A2K7 Bill: Didn't help, but rearranging some of my housekeeping in the open event getting some better response. Thanks and regards Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bill Patten Sent: Tuesday, February 17, 2009 11:24 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Form Resizing Slow in A2K7 Hi Rocky, I don't know if this will help but you might want to look into it. A friend of mine was having some performance issues with 2007 that he did not have with 2003. He installed this patch and one specific routine went from 21 min 48 sec to 3 min 37 sec. He is convinced that even though 2003 is still faster his client (who requested 2007) was much happier. http://support.microsoft.com/kb/960307 I did install it in mine, it doesn't appear to cause any problems but I don't use 2007 except for testing so didn't run any time tests of my own. HTH Bill ----- Original Message ----- From: "Rocky Smolin at Beach Access Software" To: "'Access Developers discussion and problem solving'" Sent: Tuesday, February 17, 2009 11:11 AM Subject: [AccessD] Form Resizing Slow in A2K7 Dear List: I'm using form resizing in an application. Works well in 2003. But since 2007 runs slower than a stuck pig, when I open a form I see it for about 1/3 of a second small (screen is at a higher resolution that the form was designed in - 800x600, mostly) and then resizes to fill the screen. Looks crappy. What's the best way around this problem? MTIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Feb 17 14:32:39 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 17 Feb 2009 15:32:39 -0500 Subject: [AccessD] Class lecture emails In-Reply-To: References: <4995A49A.9090408@colbyconsulting.com> Message-ID: <499B1EE7.5060808@colbyconsulting.com> I don't have them numbered in this way. Do you know what #19 is? Is it the email that introduces clsMsg? John W. Colby www.ColbyConsulting.com Jack and Pat wrote: > Could some one please forward to me the email related to JC's # 19? > I don't have it although I have the others. > I was having considerable difficulty with CLSMSG DEMO > and USING CLSMSGDEMO, especially cMsg() and > Private WithEvents mclsMsg As clsMsg > , but now realize that I was really missing the # 19 email. > > > Thanks, > > jack > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 13, 2009 11:50 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Class lecture emails > > I show the following emails as lectures: > > 1) [AccessD] Classes and Events > 2) [AccessD] CREATE CLASSES AND EVENTS DEMO DATABASE > 3) [AccessD] LOAD THE FORM CLASS IN THE FORM > 4) [AccessD] Get event sinks working > 5) [AccessD] Building a Control Scanner > 6) [AccessD] Building a control class > 7) [AccessD] MODIFY THE FORM CLASS TO LOAD THE NEW COMBO CLASS. > 8) [AccessD] Classes and Events - EVENTS NOT REQUIRED > 9) [AccessD] BUILDING A TEXT CONTROL CLASS > 10) [AccessD] The classes as they are at this instant - clsTimer > 11) [AccessD] The classes as they are at this instant - clsCtlCbo > 12) [AccessD] The classes as they are at this instant - clsCtlTxt > 13) [AccessD] The classes as they are at this instant - clsFrm > 14) [AccessD] The form > 15) [AccessD] IMPORT THE FORM > 16) [AccessD] SINKING EVENTS IN MULTIPLE PLACES > 17) [AccessD] EMERGENCY HALT: was Re: The form for demo event sink in two > places > 18) [AccessD] Demo sinking events in two places > 19) [AccessD] ClsMsg > 20) [AccessD] CLSMSG DEMO > 21) [AccessD] USING CLSMSGDEMO > > Not too bad for 5 days work. > > If you work through all of these lectures you will be awarded membership to > the AccessD Order of the > Classy Developers. More importantly, you will have done what too few Access > programmers ever do, > started down the road to mastering classes and events. > > Do or do not, there is no try. > > John W. Colby > www.ColbyConsulting.com > > > Johncliviger at aol.com wrote: >> Hi JWC >> >> I started following the lectures on Tuesday so I'm behind. However I'm >> working my way thru it all. But I'm not sure whether I've got all the > essential >> bits. How many lectures have you done to date? >> >> Your modus operandi is great and keeping going >> >> Regards >> john cliviger >> From jwcolby at colbyconsulting.com Tue Feb 17 14:33:37 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 17 Feb 2009 15:33:37 -0500 Subject: [AccessD] Class lecture emails In-Reply-To: References: <4995A49A.9090408@colbyconsulting.com> Message-ID: <499B1F21.1010101@colbyconsulting.com> ROTFL. Ooops. The OhNoSecond strikes again. THE MESSAGE CLASS The following class demonstrates raising events. It is about as simple a class as you will find,. It has a pair of events that it can raise, and a pair of methods that can be called and passed in variables. The methods simply raise the event and pass along the variables passed in. ? In the demo database, click Insert / Class. ? Cut and paste the following code into that class Option Compare Database Option Explicit Public Event Message(varFrom As Variant, varTo As Variant, _ varSubj As Variant, varMsg As Variant) Public Event MessageSimple(varMsg As Variant) Function Send(varFrom As Variant, varTo As Variant, _ varSubj As Variant, varMsg As Variant) RaiseEvent Message(varFrom, varTo, varSubj, varMsg) ' Debug.Print "From: " & varFrom & vbCrLf & "To: " & varTo & vbCrLf & "Subj: " & varSubj & vbCrLf & "Msg: " & varMsg End Function Function SendSimple(varMsg As Variant) RaiseEvent MessageSimple(varMsg) ' Debug.Print varMsg End Function ? Compile and save the class as clsMsg Public Event Message(varFrom As Variant, varTo As Variant, _ varSubj As Variant, varMsg As Variant) Public Event MessageSimple(varMsg As Variant) Here we have defined TWO events that this class can raise. Notice that we are defining several parameters that the Event will pass along to the event sink. Function Send(varFrom As Variant, varTo As Variant, _ varSubj As Variant, varMsg As Variant) RaiseEvent Message(varFrom, varTo, varSubj, varMsg) ' Debug.Print "From: " & varFrom & vbCrLf & "To: " & varTo & vbCrLf & "Subj: " & varSubj & vbCrLf & "Msg: " & varMsg End Function This is the first event and mimics an email with a From, To, Subject, and Body. Function SendSimple(varMsg As Variant) RaiseEvent MessageSimple(varMsg) ' Debug.Print varMsg End Function This code is a very simple send routine that just passes along a variable. ? In this case we need to build a module to initialize and tear down this message class. Click Insert / Module. ? Cut and paste the following code into that module. Private mclsMsg As clsMsg Function mMsgInit() If mclsMsg Is Nothing Then Set mclsMsg = New clsMsg End If End Function Function mMsgTerm() Set mclsMsg = Nothing End Function Function cMsg() As clsMsg mMsgInit Set cMsg = mclsMsg End Function ? Compile and save as basInitMsg. Private mclsMsg As clsMsg Notice that we have a PRIVATE global variable mclsMsg. Function mMsgInit() If mclsMsg Is Nothing Then Set mclsMsg = New clsMsg End If End Function Here we have a function that initializes the mclsMsg variable ONLY IF the pointer is not already initialized. Function mMsgTerm() Set mclsMsg = Nothing End Function Here we have a function that will clean up the class whenever we no longer need it. Function cMsg() As clsMsg mMsgInit Set cMsg = mclsMsg End Function This function gets the pointer to the class, initializing it if it isn?t already initialized. This email defines a new clsMsg. This class can raise two events, a msg and a msgSimple. Each can pass on parameters. We also define a module where we can set up, tear down, and get a pointer to the message class. I will create a demo for this class later tonight. John W. Colby www.ColbyConsulting.com Jack and Pat wrote: > Could some one please forward to me the email related to JC's # 19? > I don't have it although I have the others. > I was having considerable difficulty with CLSMSG DEMO > and USING CLSMSGDEMO, especially cMsg() and > Private WithEvents mclsMsg As clsMsg > , but now realize that I was really missing the # 19 email. > > > Thanks, > > jack > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 13, 2009 11:50 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Class lecture emails > > I show the following emails as lectures: > > 1) [AccessD] Classes and Events > 2) [AccessD] CREATE CLASSES AND EVENTS DEMO DATABASE > 3) [AccessD] LOAD THE FORM CLASS IN THE FORM > 4) [AccessD] Get event sinks working > 5) [AccessD] Building a Control Scanner > 6) [AccessD] Building a control class > 7) [AccessD] MODIFY THE FORM CLASS TO LOAD THE NEW COMBO CLASS. > 8) [AccessD] Classes and Events - EVENTS NOT REQUIRED > 9) [AccessD] BUILDING A TEXT CONTROL CLASS > 10) [AccessD] The classes as they are at this instant - clsTimer > 11) [AccessD] The classes as they are at this instant - clsCtlCbo > 12) [AccessD] The classes as they are at this instant - clsCtlTxt > 13) [AccessD] The classes as they are at this instant - clsFrm > 14) [AccessD] The form > 15) [AccessD] IMPORT THE FORM > 16) [AccessD] SINKING EVENTS IN MULTIPLE PLACES > 17) [AccessD] EMERGENCY HALT: was Re: The form for demo event sink in two > places > 18) [AccessD] Demo sinking events in two places > 19) [AccessD] ClsMsg > 20) [AccessD] CLSMSG DEMO > 21) [AccessD] USING CLSMSGDEMO > > Not too bad for 5 days work. > > If you work through all of these lectures you will be awarded membership to > the AccessD Order of the > Classy Developers. More importantly, you will have done what too few Access > programmers ever do, > started down the road to mastering classes and events. > > Do or do not, there is no try. > > John W. Colby > www.ColbyConsulting.com > > > Johncliviger at aol.com wrote: >> Hi JWC >> >> I started following the lectures on Tuesday so I'm behind. However I'm >> working my way thru it all. But I'm not sure whether I've got all the > essential >> bits. How many lectures have you done to date? >> >> Your modus operandi is great and keeping going >> >> Regards >> john cliviger >> From rockysmolin at bchacc.com Tue Feb 17 14:35:30 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 17 Feb 2009 12:35:30 -0800 Subject: [AccessD] Form Resizing Slow in A2K7 In-Reply-To: <4B2330AB9ECD45A58CB6F70C21A0CCF2@BPCS> References: <2F159A64EB394C61AA935771278BFF60@HAL9005><4D90B131A43944CE8C6AE155A0A30C0C@BPCS><4D56D7EBADF84C89B701288DA1BF4B19@HAL9005> <4B2330AB9ECD45A58CB6F70C21A0CCF2@BPCS> Message-ID: No problem. Didn't hurt nothin'. Probably do something good too that I'll never know about. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bill Patten Sent: Tuesday, February 17, 2009 12:28 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Form Resizing Slow in A2K7 Sorry, but I thought it might be worth a try. Bill ----- Original Message ----- From: "Rocky Smolin at Beach Access Software" To: "'Access Developers discussion and problem solving'" Sent: Tuesday, February 17, 2009 11:58 AM Subject: Re: [AccessD] Form Resizing Slow in A2K7 Bill: Didn't help, but rearranging some of my housekeeping in the open event getting some better response. Thanks and regards Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bill Patten Sent: Tuesday, February 17, 2009 11:24 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Form Resizing Slow in A2K7 Hi Rocky, I don't know if this will help but you might want to look into it. A friend of mine was having some performance issues with 2007 that he did not have with 2003. He installed this patch and one specific routine went from 21 min 48 sec to 3 min 37 sec. He is convinced that even though 2003 is still faster his client (who requested 2007) was much happier. http://support.microsoft.com/kb/960307 I did install it in mine, it doesn't appear to cause any problems but I don't use 2007 except for testing so didn't run any time tests of my own. HTH Bill ----- Original Message ----- From: "Rocky Smolin at Beach Access Software" To: "'Access Developers discussion and problem solving'" Sent: Tuesday, February 17, 2009 11:11 AM Subject: [AccessD] Form Resizing Slow in A2K7 Dear List: I'm using form resizing in an application. Works well in 2003. But since 2007 runs slower than a stuck pig, when I open a form I see it for about 1/3 of a second small (screen is at a higher resolution that the form was designed in - 800x600, mostly) and then resizes to fill the screen. Looks crappy. What's the best way around this problem? MTIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Feb 17 14:36:12 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 17 Feb 2009 15:36:12 -0500 Subject: [AccessD] Class lecture emails In-Reply-To: <499B1EE7.5060808@colbyconsulting.com> References: <4995A49A.9090408@colbyconsulting.com> <499B1EE7.5060808@colbyconsulting.com> Message-ID: <499B1FBC.8040202@colbyconsulting.com> Sorry jack, I didn't see the lower part where someone (?) numbered (??) the emails. ;-) John W. Colby www.ColbyConsulting.com jwcolby wrote: > I don't have them numbered in this way. Do you know what #19 is? Is it the email that introduces > clsMsg? > > John W. Colby > www.ColbyConsulting.com > > > Jack and Pat wrote: >> Could some one please forward to me the email related to JC's # 19? >> I don't have it although I have the others. >> I was having considerable difficulty with CLSMSG DEMO >> and USING CLSMSGDEMO, especially cMsg() and >> Private WithEvents mclsMsg As clsMsg >> , but now realize that I was really missing the # 19 email. >> >> >> Thanks, >> >> jack >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Friday, February 13, 2009 11:50 AM >> To: Access Developers discussion and problem solving >> Subject: [AccessD] Class lecture emails >> >> I show the following emails as lectures: >> >> 1) [AccessD] Classes and Events >> 2) [AccessD] CREATE CLASSES AND EVENTS DEMO DATABASE >> 3) [AccessD] LOAD THE FORM CLASS IN THE FORM >> 4) [AccessD] Get event sinks working >> 5) [AccessD] Building a Control Scanner >> 6) [AccessD] Building a control class >> 7) [AccessD] MODIFY THE FORM CLASS TO LOAD THE NEW COMBO CLASS. >> 8) [AccessD] Classes and Events - EVENTS NOT REQUIRED >> 9) [AccessD] BUILDING A TEXT CONTROL CLASS >> 10) [AccessD] The classes as they are at this instant - clsTimer >> 11) [AccessD] The classes as they are at this instant - clsCtlCbo >> 12) [AccessD] The classes as they are at this instant - clsCtlTxt >> 13) [AccessD] The classes as they are at this instant - clsFrm >> 14) [AccessD] The form >> 15) [AccessD] IMPORT THE FORM >> 16) [AccessD] SINKING EVENTS IN MULTIPLE PLACES >> 17) [AccessD] EMERGENCY HALT: was Re: The form for demo event sink in two >> places >> 18) [AccessD] Demo sinking events in two places >> 19) [AccessD] ClsMsg >> 20) [AccessD] CLSMSG DEMO >> 21) [AccessD] USING CLSMSGDEMO >> >> Not too bad for 5 days work. >> >> If you work through all of these lectures you will be awarded membership to >> the AccessD Order of the >> Classy Developers. More importantly, you will have done what too few Access >> programmers ever do, >> started down the road to mastering classes and events. >> >> Do or do not, there is no try. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Johncliviger at aol.com wrote: >>> Hi JWC >>> >>> I started following the lectures on Tuesday so I'm behind. However I'm >>> working my way thru it all. But I'm not sure whether I've got all the >> essential >>> bits. How many lectures have you done to date? >>> >>> Your modus operandi is great and keeping going >>> >>> Regards >>> john cliviger >>> From drawbridgej at sympatico.ca Tue Feb 17 14:37:08 2009 From: drawbridgej at sympatico.ca (Jack and Pat) Date: Tue, 17 Feb 2009 15:37:08 -0500 Subject: [AccessD] Class lecture emails -thx In-Reply-To: <499B1F21.1010101@colbyconsulting.com> References: <4995A49A.9090408@colbyconsulting.com> <499B1F21.1010101@colbyconsulting.com> Message-ID: <9B23E50FBB2847568FF67485CDD122EB@home6399619597> Thanks John. That's the one. I must have hit the Delete a little too quickly. Jack From max.wanadoo at gmail.com Tue Feb 17 14:46:46 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 17 Feb 2009 20:46:46 -0000 Subject: [AccessD] ZIpping Files In-Reply-To: References: , <61DF267247654526AE04B1536ECD8266@MINSTER> <499B5A2E.5161.25732CE@stuart.lexacorp.com.pg> <499b0541.0ac0100a.567c.ffffad95@mx.google.com> Message-ID: <499b223c.0b9e100a.6fb7.32ec@mx.google.com> Yeah, I see. Thanks Mark Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Mark A Matte Sent: 17 February 2009 19:07 To: accessd at databaseadvisors.com Subject: Re: [AccessD] ZIpping Files Personally...before I retired the app...I had a Stock program...that would retireve an FTP file, UNZIP it...and 'do stuff' to the data...14 times a day. I had to pay for the command line utility to unzip the files. Everything else was in MS Access...if I had this...no third party stuff would have been needed to fully automate the process. Mark A. Matte ---------------------------------------- > From: max.wanadoo at gmail.com > To: accessd at databaseadvisors.com > Date: Tue, 17 Feb 2009 18:42:58 +0000 > Subject: Re: [AccessD] ZIpping Files > > Stuart, > What sort of thing would you use this for? Would it be to archive stuff, > mail stuff, that sort of thing? Or is there something more intrinsic to > Access that I am not grasping? > Thanks > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: 17 February 2009 14:46 > To: Access Developers discussion and problem solving > Subject: [AccessD] ZIpping Files > > There has just been a discussion over on dba-Tech about the built in Zip > capabilities in > Windows (XP onwards?) where "Compressed (zipped) Folders" are just ordinary > zip files. > > This got me thinking about how you could use the built in capabilities to > manage zip files > through VBA rather than needing a third party DLL, the Winzip CLI or > whatever. > > Turns out it is trivial to to create an empty ZIp file, it is just a string > of 22 bytes as follows: > > Function CreateNewZipFolder(Filename As String) As Long > Dim strEmptyZip As String > strEmptyZip = Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String$(18, Chr$(0)) > Open Filename For Binary As #1 > Put #1, , strEmptyZip > Close #1 > End Function > > You can now use a Shell.Application object to work with this file/folder. > > Firstly set a reference to Microsoft Shell Controls and Automation: > Shell32.dll > > Then you just need a couple of simple functions: > > Function AddFileToZip(ZipFileName As String, Filename As String) > 'Zipfilename and Filename need to be full paths > Dim oShellApp As Shell32.Shell > Set oShellApp = CreateObject("Shell.Application") > oShellApp.NameSpace(ZipFileName).CopyHere Filename > Set oShellApp = Nothing > End Function > > and > > Function ExtractFileFromZip(ZipFileName As String, DestDir as > String,Filename As String) > 'Zipfilename and DestDir need to be full paths > 'Filename should just be the filename without a path > Dim oShellApp As Shell32.Shell > Set oShellApp = CreateObject("Shell.Application") > oShellApp.NameSpace(DestDir).CopyHere _ > oShellApp.Namespace(ZipFileName).Items.Item(Filename) > Set oShellApp = Nothing > End Function > > To extract all files replace > oShellApp.Namespace(ZipFileName).Items.Item(Filename) > with > oShellApp.Namespace(ZipFileName).Items > > Note that this is a bare shell and you will need to add a bit of error > checking - oShellApp > doesn't like it if files/directories don't exist and will pop up a standard > "File exists, do you > want to copy" dialog if the zip or destination already contains the file. > > -- > Stuart > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com _________________________________________________________________ Windows LiveT: Keep your life in sync. http://windowslive.com/howitworks?ocid=TXT_TAGLM_WL_t1_allup_howitworks_0220 09 -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Feb 17 14:49:43 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 17 Feb 2009 15:49:43 -0500 Subject: [AccessD] Class lecture emails -thx In-Reply-To: <9B23E50FBB2847568FF67485CDD122EB@home6399619597> References: <4995A49A.9090408@colbyconsulting.com> <499B1F21.1010101@colbyconsulting.com> <9B23E50FBB2847568FF67485CDD122EB@home6399619597> Message-ID: <499B22E7.6000303@colbyconsulting.com> > Thanks John. That's the one. I must have hit the Delete a little too quickly. LOL. John W. Colby www.ColbyConsulting.com Jack and Pat wrote: > Thanks John. That's the one. I must have hit the Delete a little too > quickly. > > Jack > From jwcolby at colbyconsulting.com Tue Feb 17 15:21:52 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 17 Feb 2009 16:21:52 -0500 Subject: [AccessD] Classes and Events - Using clsCtlLbl Message-ID: <499B2A70.7050602@colbyconsulting.com> Now that we have a class for the label control it is time to integrate it into the control classes. We will start with clsCtlCbo. ? In the demo database, open clsCtlLbl ? In the header add the following code: Private mclsCtlLbl As clsCtlLbl This code dimensions a new variable to hold our label class. ? Using the two combos select Class and add the Initialize event stub. ? Add the following code to the initialize stub: Private Sub Class_Initialize() Set mclsCtlLbl = New clsCtlLbl End Sub I always initialize new objects such as classes, collections, recordsets etc. in the Initialize event. ? In Class_Terminate add the following code: Private Sub Class_Terminate() Set mctlTxt = Nothing Set mclsCtlLbl = Nothing End Sub This cleans up the label class when clsCtlCbo class closes. ? At the bottom of mInit() add the following code: mclsCtlLbl.mInit lctlTxt Since mclsCtlLbl was initialized in the Initialize event of the class it is ready to use when we get to mInit. We simply call the mInit method of mclsCtlLbl and pass in the combo control passed in to clsCtlCbo. ? Directly underneath mInit add the following property code: Property Get cCtlLbl() As clsCtlLbl Set cCtlLbl = mclsCtlLbl End Property This property allows the parent class to access mclsCtlLbl. It is quite common for classes to initialize and use other classes. It is often useful to expose those classes to other code in the system and we can do that by a property that returns the pointer to the class. In this lecture we dimensioned a new variable in the class header of clsCtlCbo to hold an instance of clsCtlLbl. In the class Initialize event we initialized mclsCtlLbl. In the Terminate event we cleaned up mclsCtlLbl. In mInit we added code to call the mInit() of mclsCtlLbl passing in the same control that was passed in to clsCtlCbo. Finally, we added a new property to clsCtlCbo to expose our instance of clsCtlLbl. This basic pattern will be repeated in all of our clsCtlXXX classes in order to add a clsCtlLbl to each class. Please repeat the process for clsCtlTxt now. -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Tue Feb 17 16:54:16 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 17 Feb 2009 17:54:16 -0500 Subject: [AccessD] Classes and Events: Errata to clsCtlLbl Message-ID: <499B4018.3060106@colbyconsulting.com> My apologies but I need to make two changes to clsCtlLbl. Replace the following code Property Get ctlLbl() As Label Set ctlLbl = mlbl End Property with: Property Get ctl() As Label Set ctl = mlbl End Property We will be building a generic ctl property in all of our control classes which will pass back a pointer to the control for that class. Also replace the following code: Private Function mGetLbl(ctlFindLbl As Control) As Label Dim ctl As Control For Each ctl In ctlFindLbl.Controls If ctl.ControlType = acLabel Then Set mGetLbl = ctl Set mlbl = ctl Exit For End If Next ctl Exit_mGetLbl: Exit Function End Function with: Private Function mGetLbl(ctlFindLbl As Control) Dim ctl As Control For Each ctl In ctlFindLbl.Controls If ctl.ControlType = acLabel Then Set mlbl = ctl Exit For End If Next ctl Exit_mGetLbl: Exit Function End Function This is a private function and does not need to return the control to a caller. However it does need to set the mlbl to the control found. -- John W. Colby www.ColbyConsulting.com From miscellany at mvps.org Tue Feb 17 18:48:41 2009 From: miscellany at mvps.org (Steve Schapel) Date: Wed, 18 Feb 2009 13:48:41 +1300 Subject: [AccessD] ZIpping Files In-Reply-To: <499b0541.0ac0100a.567c.ffffad95@mx.google.com> References: <61DF267247654526AE04B1536ECD8266@MINSTER> <499B5A2E.5161.25732CE@stuart.lexacorp.com.pg> <499b0541.0ac0100a.567c.ffffad95@mx.google.com> Message-ID: <1F83E2FA6DA44B329C09977784A15EB9@stevePC> Max, In some of my apps, I have a button, which I tell the customer to click when they are asking for help with certain types of problem. It zips up their backend database and sends it to me. Regards Steve -------------------------------------------------- From: "Denis Sherman" Sent: Wednesday, February 18, 2009 7:42 AM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] ZIpping Files > Stuart, > What sort of thing would you use this for? Would it be to archive stuff, > mail stuff, that sort of thing? Or is there something more intrinsic to > Access that I am not grasping? From max.wanadoo at gmail.com Wed Feb 18 00:49:13 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 18 Feb 2009 06:49:13 -0000 Subject: [AccessD] ZIpping Files In-Reply-To: <1F83E2FA6DA44B329C09977784A15EB9@stevePC> References: <61DF267247654526AE04B1536ECD8266@MINSTER> <499B5A2E.5161.25732CE@stuart.lexacorp.com.pg> <499b0541.0ac0100a.567c.ffffad95@mx.google.com> <1F83E2FA6DA44B329C09977784A15EB9@stevePC> Message-ID: <499baf6e.0a04d00a.07f8.ffff8cf7@mx.google.com> Hi Steve, Yes, I can see that being useful (size permitting etc) Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Schapel Sent: 18 February 2009 00:49 To: Access Developers discussion and problem solving Subject: Re: [AccessD] ZIpping Files Max, In some of my apps, I have a button, which I tell the customer to click when they are asking for help with certain types of problem. It zips up their backend database and sends it to me. Regards Steve -------------------------------------------------- From: "Denis Sherman" Sent: Wednesday, February 18, 2009 7:42 AM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] ZIpping Files > Stuart, > What sort of thing would you use this for? Would it be to archive stuff, > mail stuff, that sort of thing? Or is there something more intrinsic to > Access that I am not grasping? -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 18 00:49:13 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 18 Feb 2009 06:49:13 -0000 Subject: [AccessD] Record Count Problem In-Reply-To: <2D8E3A4B3E2F41A5B109A5FF12E2BC2B@HAL9005> References: <83BC2A78223747219DF22CD39840D3D2@HAL9005><4999c9f8.0856100a.5b46.ffff8236@mx.google.com> <5A80381F4F224687A1B41069A923B8D1@jislaptopdev><499a7a20.0ac0100a.2fb6.ffffe5d0@mx.google.com> <2D8E3A4B3E2F41A5B109A5FF12E2BC2B@HAL9005> Message-ID: <499baf71.0a04d00a.07f8.ffff8d01@mx.google.com> Hi Rocky, >just like to write programs that don't create errors. Don't think of them as "errors" but as "conditions". When this "condition" occurs, do this. I also use the rs.goto lastmodified to position on the record just added Would you like me to post the code I use when adding records in code (not SQL, straight VBA)? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 17 February 2009 14:57 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Record Count Problem I could do the move last but that would mean a bit of On Error GoTo, check for the right error code, Resume Label:, etc. I've used error traps before to trap errors which are deliberately generated, but as an old fashioned programmer it always rubbed me the wrong way. Nothing wrong with it, of course, just like to write programs that don't create errors. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Tuesday, February 17, 2009 6:42 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Record Count Problem ...I understand that Max ...the question is, without the movelast, what is a stand-alone recordcount actually counting ...does recordcount return a 1 or zero if a record has not been accessed ...I always go to the last record so I can't say yes or no ...but if records are there but have not been accessed as yet, will recordcount return a zero value? William -------------------------------------------------- From: "Max Wanadoo" Sent: Tuesday, February 17, 2009 3:49 AM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Record Count Problem > Hi William, > > I *think* that Rocky just needs to know if there are ANY records at all. > > He is not interested in how many there are, just whether there is none > or some. For his own reasons he said he does not want to requery the > recordset to use the recordsetclone and therefore the rs.recordcount > will work just fine whereas the rs.eof and rs.bof will not. > > Personally, I would have requeried if I was using a recordsetclone > having saved the record pointer and then repositioned on the pointer. > Rocky did not want to do that. > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William > Hindman > Sent: 17 February 2009 01:51 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Record Count Problem > > ...hhhmmm ...iirc (and that gets more hypothetical with every year) > the rs.recordcount will return a count of records "accessed" ...not > the total count of records in the object ...you have to do a movelast > before the rs.recordcount to be sure what its actually counting. > > William > > -------------------------------------------------- > From: "Rocky Smolin at Beach Access Software" > Sent: Monday, February 16, 2009 3:58 PM > To: "'Access Developers discussion and problem solving'" > > Subject: Re: [AccessD] Record Count Problem > >> I changed >> >> If rs.BOF = True And rs.EOF = True Then >> >> To >> >> If rs.RecordCount = 0 Then >> >> Crude but effective. >> >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max >> Wanadoo >> Sent: Monday, February 16, 2009 12:18 PM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Record Count Problem >> >> If rs.BOF = True And rs.EOF = True and rs.recordcount = 0 Then GoTo >> GoodBye Else Goto WaveHelloToRocky End if >> >> >> Or save the PK, then requery, then find saved PK and position on it. >> >> >> Max >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >> Smolin at Beach Access Software >> Sent: 16 February 2009 19:09 >> To: 'Access Developers discussion and problem solving' >> Subject: [AccessD] Record Count Problem >> >> Dear List: >> >> In the following: >> >> Set rs = Me.RecordsetClone >> ' If no records then goodbye: >> MsgBox rs.RecordCount >> If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: >> >> the record count shows as 1 but BOF and EOF are both true. >> >> The record was just added. So the routine exits instead of doing >> what it's supposed to do. >> >> A Me.Requery solves the problem, but leaves the pointer at the start >> of the the recordset instead of the record the user was working on. >> >> I can's save a bookmark because the Requery triggers the activate >> event which calls this routine and destroys the bookmark. >> >> But why would the record count show 1 when the BOf and EOF are set to >> True? >> >> TIA >> >> >> >> >> >> >> Rocky Smolin >> >> Beach Access Software >> >> 858-259-4334 >> >> www.e-z-mrp.com >> >> www.bchacc.com >> >> >> >> >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From miscellany at mvps.org Wed Feb 18 01:14:10 2009 From: miscellany at mvps.org (Steve Schapel) Date: Wed, 18 Feb 2009 20:14:10 +1300 Subject: [AccessD] ZIpping Files In-Reply-To: <499baf6e.0a04d00a.07f8.ffff8cf7@mx.google.com> References: <61DF267247654526AE04B1536ECD8266@MINSTER> <499B5A2E.5161.25732CE@stuart.lexacorp.com.pg> <499b0541.0ac0100a.567c.ffffad95@mx.google.com> <1F83E2FA6DA44B329C09977784A15EB9@stevePC> <499baf6e.0a04d00a.07f8.ffff8cf7@mx.google.com> Message-ID: Max, -------------------------------------------------- From: "Max Wanadoo" Sent: Wednesday, February 18, 2009 7:49 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] ZIpping Files > (size permitting etc) Well, that's the reason for zipping it, isn't it. In one case, a 40 MB accdb file zips down to about 10 MB. In another, a 6 MB mdb zips down to 850 KB. Not too bad. I often find it easier to replicate a problem if I have the client's data. Regards Steve From jwcolby at colbyconsulting.com Wed Feb 18 03:57:33 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 18 Feb 2009 04:57:33 -0500 Subject: [AccessD] Classes and events: Exposing the wrapped control Message-ID: <499BDB8D.1000508@colbyconsulting.com> Classes which wrap controls need to expose the control itself to the developer. In order to do this we will build a property which returns the control. For naming consistency we use just Ctl as the name of the property in cases where the class wraps a single control, for example the clsCtlTxt and clsCtlCbo. * Open clsCtlCbo and place the following code directly under mInit() ' 'Expose the control ' Property Get ctl() As ComboBox Set ctl = mctlCbo End Property * Compile and save the class. * Open clsCtlLbl and place the following code directly under mInit() ' 'Expose the control ' Property Get ctl() As Label Set ctl = mlbl End Property * Compile and save the class * Open clsCtlTxt and place the following code directly under mInit() ' 'Expose the control ' Property Get ctl() As TextBox Set ctl = mctlTxt End Property * Compile and save the class. -- John W. Colby www.ColbyConsulting.com From Darryl.Collins at coles.com.au Wed Feb 18 04:00:23 2009 From: Darryl.Collins at coles.com.au (Darryl Collins) Date: Wed, 18 Feb 2009 21:00:23 +1100 Subject: [AccessD] ZIpping Files In-Reply-To: Message-ID: <57E6E6CA42105A48B977303A2CDC2720080A7DAB58@WPEXCH22.retail.ad.cmltd.net.au> I guess where Max is coming from is if you have 1.5 GB database zipped to 80 mb or similar. that wouldn't be so email friendly :) but I love the zip code, great stuff. thanks for sharing that as in most cases it will be very useful. cheers darryl -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Steve Schapel Sent: Wednesday, 18 February 2009 6:14 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] ZIpping Files Max, -------------------------------------------------- From: "Max Wanadoo" Sent: Wednesday, February 18, 2009 7:49 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] ZIpping Files > (size permitting etc) Well, that's the reason for zipping it, isn't it. In one case, a 40 MB accdb file zips down to about 10 MB. In another, a 6 MB mdb zips down to 850 KB. Not too bad. I often find it easier to replicate a problem if I have the client's data. Regards Steve -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com This email and any attachments may contain privileged and confidential information and are intended for the named addressee only. If you have received this e-mail in error, please notify the sender and delete this e-mail immediately. Any confidentiality, privilege or copyright is not waived or lost because this e-mail has been sent to you in error. It is your responsibility to check this e-mail and any attachments for viruses. No warranty is made that this material is free from computer virus or any other defect or error. Any loss/damage incurred by using this material is not the sender's responsibility. The sender's entire liability will be limited to resupplying the material. From jwcolby at colbyconsulting.com Wed Feb 18 04:35:55 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 18 Feb 2009 05:35:55 -0500 Subject: [AccessD] Classes and Events: Exposing child classes in clsFrm Message-ID: <499BE48B.8000409@colbyconsulting.com> It is often useful to expose child classes to parent classes. clsFrm is a base class which is responsible for among other things scanning all of the controls on the form and automatically loading a class for each control for which a class is available. clsFrm will be manipulated from the parent form?s class in order to program clsFrm itself and also the clsCtlXXX classes that clsFrm loads. In order to allow the developer to program the various classes, we need to expose the control classes. That will be the subject of this lecture. Before we get into the code I want to discuss class organization. I like to organize my classes such that I have areas or regions of the class where I know to look for specific parts of the class. Just like any other organizational task, organizing the class makes your programming more efficient. Classes can get quite large, and knowing where in the class to go to look for specific pieces simply makes the maintenance of the class easier. ? The Header. The top of every class is called the header and I like to place constants first in the header, then variables, then Event declarations. ? Directly underneath the header I like to place the Class_Initialize and Class_Terminate event stubs. For whatever reason, if you create these event stubs late in the process of building a class, the editor will place them down at the end of the class. I simply cut and paste them to the top. ? Directly underneath Class_Terminate I place mInit() ? Underneath mInit() I place all properties. Properties consist of Property Get / Let / Set statements, and occasionally functions that I ?label? as a property (rare, but there). I always start the property name with p (lower case). If the property will return a class pointer I start the property name with a lower case c. I start a property name with a lower case col if it returns a collection. I do this simply because I like my properties and methods to group in intellisense and I also can simply read the property name and know that it will return a variable, or a class or a collection. ? Underneath the properties I place the object event sinks if any. ? Underneath the event sinks I like to group private methods of the class, which I prefix with a lower case m. ? Underneath the private methods I like to group the public methods, also prefixed with a lower case m. These conventions are my own and I do not expect you to adopt them, though you may if you wish. I have just found after years of programming that these conventions help me in my organization. With that out of the way? ? Open the demo database. ? Open clsFrm ? Add the following code to clsFrm directly underneath mInit(): Property Get cCtlCbo(strCboName As String) As clsCtlCbo Set cCtlCbo = mcolCtls(strCboName) End Property Property Get cCtlTxt(strCboName As String) As clsCtlTxt Set cCtlTxt = mcolCtls(strCboName) End Property ? Save the class. These two properties expose combo and text box classes that are held in mcolCtls. We pass in the text name of the control to the property. Remember that the control scanner placed the clsCtlXXX instances into colCtls keyed on the control name so using the name we can index into the collection and grab the pointer to the correct class, and return that class pointer. Notice that I defined the properties to return clsCtlCbo and clsCtlTxt. Doing so allows the developer to directly use the methods and properties of the corresponding class without having to dimension a variable to store the class up in the form class. In other words we can directly program the clsCtlXXX simply by calling the correct property, passing in the correct name of a control and then manipulating the properties of the returned class. I will demonstrate that next. ? Open frmDemoCtls in design view and immediately save as frmDemoCtls2. ? In the form class delete the existing code and insert the following code: Public fclsFrm As clsFrm Private Sub Form_Open(Cancel As Integer) Set fclsFrm = New clsFrm fclsFrm.mInit Me With fclsFrm End With End Sub Notice that we now have a clean form with just fclsFrm to manipulate. Underneath fclsFrm.mInit we have inserted a With block to allow us to directly manipulate fclsFrm. Inside of the With block type in the following code. Please do the typing yourself as I want you to experience the Intellisense response. .cCtlCbo("Combo11"). Notice that as soon as you type in the trailing . intellisense presents you with properties of a specific instance of clsCtlCbo ? the instance for combo11. Type in the following code: .cCtlCbo("Combo11").Ctl. Again notice that as soon as you type in the trailing . intellisense presents you with the properties of the wrapped control for that specific clsCtlCbo. Type in the following code: .cCtlCbo("Combo11).ctl.Name You have just asked for the name of the control contained in the clsCtlCbo instance for Combo11. Hit debug / compile. You should get a compile error because you are not doing anything valid with the name property that you requested. Add debug.print in front of this line of code like this: Debug.Print .cCtlCbo("Combo11").ctl.Name Now? until you actually run this code you cannot be sure that you will get a correct result, simply because you requested stuff for combo11. If combo11 does not exist you will get a run time error when cCtlCbo tries to index into the collection. Compile / save and open the form. Walk through the same process using the following code: Debug.Print .cCtlCbo("Combo11").cCtlLbl.ctl.Name Notice that you have full intellisense as you type in the code ? the properties for cCtlCbo, then the properties for cCtlLbl, then the properties for the label control. We have full intellisense because we declared the property as returning the specific class or object. For example in clsFrm: Property Get cCtlCbo(strCboName As String) As clsCtlCbo Set cCtlCbo = mcolCtls(strCboName) End Property Returns a clsCtlCbo, and thus we can use intellisense to browse all of the properties of clsCtlCbo. In the future as we add new control classes to the system, we will come into clsFrm and build a new property to expose each additional control wrapper class by its type. This will ensure easy and efficient programming back in the parent form class. In this lecture we have designed a method of exposing the classes that the scanner in clsFrm created and placed into mcolCtls. We created a property for each type of clsCtlXXX such that the property returns that specific class type. We then built code back in the frmDemo to demonstrate the ease of programming that intellisense will provide because we have a property for each class type. Because there are a fixed number of controls provided by Access, there will always be a limited number of control wrappers and thus having a system to explicitly expose each class type makes good sense. -- John W. Colby www.ColbyConsulting.com From stuart at lexacorp.com.pg Wed Feb 18 05:06:38 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 18 Feb 2009 21:06:38 +1000 Subject: [AccessD] ZIpping Files In-Reply-To: <29f585dd0902170730u3c4bd1ffp6c89cf7867c74bd7@mail.gmail.com> References: , <499B5A2E.5161.25732CE@stuart.lexacorp.com.pg>, <29f585dd0902170730u3c4bd1ffp6c89cf7867c74bd7@mail.gmail.com> Message-ID: <499C785E.19326.25BE358@stuart.lexacorp.com.pg> On 17 Feb 2009 at 10:30, Arthur Fuller wrote: > Pretty neat! It could use a third function that lists the files and folders > with a given zip file. Then it would be totally slick. Had to think about that one a bit :-) Because a Compressed (Zipped) folder can contain other folders, we need a recursive function, called by a wrapper function. Function EnumerateZipContents(ZipFileName As String) As Variant 'Returns an Array containing all folder and file names in the zip EnumerateZipContents = Split(ListFilesInZipFolder(ZipFileName), Chr$(13) & Chr$(10)) End Function Function ListFilesInZipFolder(ZipFileName As String) As String Dim oShellApp As Shell32.Shell Dim ofile As Object Dim strNames As String Set oShellApp = CreateObject("Shell.Application") For Each ofile In oShellApp.NameSpace(ZipFileName).Items If ofile.IsFolder Then strNames = strNames & "Fldr: " & ZipFileName & "\" & ofile.Name & Chr$(13) & Chr$(10) strNames = strNames & ListFilesInZipFolder(ZipFileName & "\" & ofile.Name) Else strNames = strNames & "File: " & ZipFileName & "\" & ofile.Name & Chr$(13) & Chr$(10) End If Next ListFilesInZipFolder = strNames End Function -- Stuart From stuart at lexacorp.com.pg Wed Feb 18 05:15:06 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 18 Feb 2009 21:15:06 +1000 Subject: [AccessD] ZIpping Files In-Reply-To: <499C785E.19326.25BE358@stuart.lexacorp.com.pg> References: , <29f585dd0902170730u3c4bd1ffp6c89cf7867c74bd7@mail.gmail.com>, <499C785E.19326.25BE358@stuart.lexacorp.com.pg> Message-ID: <499C7A5A.26914.263A436@stuart.lexacorp.com.pg> On 18 Feb 2009 at 21:06, Stuart McLachlan wrote: > Function EnumerateZipContents(ZipFileName As String) As Variant > 'Returns an Array containing all folder and file names in the zip > EnumerateZipContents = Split(ListFilesInZipFolder(ZipFileName), Chr$(13) & Chr$(10)) > End Function That returns a blank last array element. It should be: Function EnumerateZipContents(ZipFileName As String) As Variant 'Returns an Array containing all folder and file names in the zip Dim strTemp As String strTemp = ListFilesInZipFolder(ZipFileName) 'strip last crlf strTemp = Left$(strTemp, Len(strTemp) - 2) EnumerateZipContents = Split(strTemp, Chr$(13) & Chr$(10)) End Function From rockysmolin at bchacc.com Wed Feb 18 08:17:27 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 18 Feb 2009 06:17:27 -0800 Subject: [AccessD] Record Count Problem In-Reply-To: <499baf71.0a04d00a.07f8.ffff8d01@mx.google.com> References: <83BC2A78223747219DF22CD39840D3D2@HAL9005><4999c9f8.0856100a.5b46.ffff8236@mx.google.com> <5A80381F4F224687A1B41069A923B8D1@jislaptopdev><499a7a20.0ac0100a.2fb6.ffffe5d0@mx.google.com> <2D8E3A4B3E2F41A5B109A5FF12E2BC2B@HAL9005> <499baf71.0a04d00a.07f8.ffff8d01@mx.google.com> Message-ID: <311A80434F2D436DBD3C87D9902F2600@HAL9005> Yes, please. I didn't know about rs.goto lastmodified. Would that take the place of the whole Bookmark gyration I go through to position the pointer back to the record the user was working on after an update, add, Requery, etc? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Tuesday, February 17, 2009 10:49 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Record Count Problem Hi Rocky, >just like to write programs that don't create errors. Don't think of them as "errors" but as "conditions". When this "condition" occurs, do this. I also use the rs.goto lastmodified to position on the record just added Would you like me to post the code I use when adding records in code (not SQL, straight VBA)? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 17 February 2009 14:57 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Record Count Problem I could do the move last but that would mean a bit of On Error GoTo, check for the right error code, Resume Label:, etc. I've used error traps before to trap errors which are deliberately generated, but as an old fashioned programmer it always rubbed me the wrong way. Nothing wrong with it, of course, just like to write programs that don't create errors. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Tuesday, February 17, 2009 6:42 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Record Count Problem ...I understand that Max ...the question is, without the movelast, what is a stand-alone recordcount actually counting ...does recordcount return a 1 or zero if a record has not been accessed ...I always go to the last record so I can't say yes or no ...but if records are there but have not been accessed as yet, will recordcount return a zero value? William -------------------------------------------------- From: "Max Wanadoo" Sent: Tuesday, February 17, 2009 3:49 AM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Record Count Problem > Hi William, > > I *think* that Rocky just needs to know if there are ANY records at all. > > He is not interested in how many there are, just whether there is none > or some. For his own reasons he said he does not want to requery the > recordset to use the recordsetclone and therefore the rs.recordcount > will work just fine whereas the rs.eof and rs.bof will not. > > Personally, I would have requeried if I was using a recordsetclone > having saved the record pointer and then repositioned on the pointer. > Rocky did not want to do that. > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William > Hindman > Sent: 17 February 2009 01:51 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Record Count Problem > > ...hhhmmm ...iirc (and that gets more hypothetical with every year) > the rs.recordcount will return a count of records "accessed" ...not > the total count of records in the object ...you have to do a movelast > before the rs.recordcount to be sure what its actually counting. > > William > > -------------------------------------------------- > From: "Rocky Smolin at Beach Access Software" > Sent: Monday, February 16, 2009 3:58 PM > To: "'Access Developers discussion and problem solving'" > > Subject: Re: [AccessD] Record Count Problem > >> I changed >> >> If rs.BOF = True And rs.EOF = True Then >> >> To >> >> If rs.RecordCount = 0 Then >> >> Crude but effective. >> >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max >> Wanadoo >> Sent: Monday, February 16, 2009 12:18 PM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Record Count Problem >> >> If rs.BOF = True And rs.EOF = True and rs.recordcount = 0 Then GoTo >> GoodBye Else Goto WaveHelloToRocky End if >> >> >> Or save the PK, then requery, then find saved PK and position on it. >> >> >> Max >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >> Smolin at Beach Access Software >> Sent: 16 February 2009 19:09 >> To: 'Access Developers discussion and problem solving' >> Subject: [AccessD] Record Count Problem >> >> Dear List: >> >> In the following: >> >> Set rs = Me.RecordsetClone >> ' If no records then goodbye: >> MsgBox rs.RecordCount >> If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: >> >> the record count shows as 1 but BOF and EOF are both true. >> >> The record was just added. So the routine exits instead of doing >> what it's supposed to do. >> >> A Me.Requery solves the problem, but leaves the pointer at the start >> of the the recordset instead of the record the user was working on. >> >> I can's save a bookmark because the Requery triggers the activate >> event which calls this routine and destroys the bookmark. >> >> But why would the record count show 1 when the BOf and EOF are set to >> True? >> >> TIA >> >> >> >> >> >> >> Rocky Smolin >> >> Beach Access Software >> >> 858-259-4334 >> >> www.e-z-mrp.com >> >> www.bchacc.com >> >> >> >> >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Wed Feb 18 10:13:52 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Wed, 18 Feb 2009 08:13:52 -0800 Subject: [AccessD] Record Count Problem In-Reply-To: References: <83BC2A78223747219DF22CD39840D3D2@HAL9005><4999c9f8.0856100a.5b46.ffff8236@mx.google.com> Message-ID: So you were getting BOF and EOF when recordcount > 0? In that case you needed to move into the recordset with a movelast or movefirst. And is this a DAO or ADO recordset? They behave slightly differently. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Monday, February 16, 2009 12:58 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Record Count Problem I changed If rs.BOF = True And rs.EOF = True Then To If rs.RecordCount = 0 Then Crude but effective. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Monday, February 16, 2009 12:18 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Record Count Problem If rs.BOF = True And rs.EOF = True and rs.recordcount = 0 Then GoTo GoodBye Else Goto WaveHelloToRocky End if Or save the PK, then requery, then find saved PK and position on it. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 16 February 2009 19:09 To: 'Access Developers discussion and problem solving' Subject: [AccessD] Record Count Problem Dear List: In the following: Set rs = Me.RecordsetClone ' If no records then goodbye: MsgBox rs.RecordCount If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: the record count shows as 1 but BOF and EOF are both true. The record was just added. So the routine exits instead of doing what it's supposed to do. A Me.Requery solves the problem, but leaves the pointer at the start of the the recordset instead of the record the user was working on. I can's save a bookmark because the Requery triggers the activate event which calls this routine and destroys the bookmark. But why would the record count show 1 when the BOf and EOF are set to True? TIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From cjlabs at worldnet.att.net Wed Feb 18 10:23:16 2009 From: cjlabs at worldnet.att.net (Carolyn Johnson) Date: Wed, 18 Feb 2009 10:23:16 -0600 Subject: [AccessD] form resizing code References: <83BC2A78223747219DF22CD39840D3D2@HAL9005><4999c9f8.0856100a.5b46.ffff8236@mx.google.com> Message-ID: I've been using the form resizing code from ADH for 10 years -- starting with A97 through A2007. I have databases that are transferred to and from a variety of computers with a wide range of monitor size, so the resizing really makes a difference. Lately, I've seen more and more problems with continuous forms getting "scrambled". If I switch to datasheet view and then back to form view, the screen is displayed normally, but it's not an ideal solution. It doesn't happen with all continuous forms or on all monitors, but happens enough that I'd like to fix it. I'm guessing it has something to do with the screen dimensions and/or resolution, but don't really have any understanding of it. Does anyone have suggestions for resizing code that works well with a wide variety of monitor size/resolution? Thanks Carolyn Johnson St Louis, MO From paul.hartland at googlemail.com Wed Feb 18 10:25:39 2009 From: paul.hartland at googlemail.com (Paul Hartland) Date: Wed, 18 Feb 2009 16:25:39 +0000 Subject: [AccessD] Record Count Problem In-Reply-To: References: <83BC2A78223747219DF22CD39840D3D2@HAL9005> <4999c9f8.0856100a.5b46.ffff8236@mx.google.com> Message-ID: <38c884770902180825p48dd1ff4k215c8b97bffbd90b@mail.gmail.com> just a quick not but shouldn't the line If rs.BOF = True And rs.EOF = True Then of been If rs.BOF = True Or rs.EOF = True Then Paul Hartland 2009/2/18 Charlotte Foust > So you were getting BOF and EOF when recordcount > 0? In that case you > needed to move into the recordset with a movelast or movefirst. And > is this a DAO or ADO recordset? They behave slightly differently. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin > at Beach Access Software > Sent: Monday, February 16, 2009 12:58 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Record Count Problem > > I changed > > If rs.BOF = True And rs.EOF = True Then > > To > > If rs.RecordCount = 0 Then > > Crude but effective. > > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Monday, February 16, 2009 12:18 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Record Count Problem > > If rs.BOF = True And rs.EOF = True and rs.recordcount = 0 Then > GoTo GoodBye > Else > Goto WaveHelloToRocky > End if > > > Or save the PK, then requery, then find saved PK and position on it. > > > Max > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin > at Beach Access Software > Sent: 16 February 2009 19:09 > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Record Count Problem > > Dear List: > > In the following: > > Set rs = Me.RecordsetClone > ' If no records then goodbye: > MsgBox rs.RecordCount > If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: > > the record count shows as 1 but BOF and EOF are both true. > > The record was just added. So the routine exits instead of doing what > it's supposed to do. > > A Me.Requery solves the problem, but leaves the pointer at the start of > the the recordset instead of the record the user was working on. > > I can's save a bookmark because the Requery triggers the activate event > which calls this routine and destroys the bookmark. > > But why would the record count show 1 when the BOf and EOF are set to > True? > > TIA > > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- Paul Hartland paul.hartland at googlemail.com From rockysmolin at bchacc.com Wed Feb 18 10:29:41 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 18 Feb 2009 08:29:41 -0800 Subject: [AccessD] Record Count Problem In-Reply-To: References: <83BC2A78223747219DF22CD39840D3D2@HAL9005><4999c9f8.0856100a.5b46.ffff8236@mx.google.com> Message-ID: <7AE30DC425174C85BAC650BB85B03CB3@HAL9005> The recordset is the bound recordset - Set rs = Me.RecordsetClone. And moving to the last record if there's no records generates an error. Which I could trap. But, as I explained, I find it esthetically objectionable to deliberately generate an error, but that has no place in programming discipline anyway. But I think I finessed the problem with .RecordCount > 0. I don't care how many records are there, only that there's at least 1. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Wednesday, February 18, 2009 8:14 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Record Count Problem So you were getting BOF and EOF when recordcount > 0? In that case you needed to move into the recordset with a movelast or movefirst. And is this a DAO or ADO recordset? They behave slightly differently. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Monday, February 16, 2009 12:58 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Record Count Problem I changed If rs.BOF = True And rs.EOF = True Then To If rs.RecordCount = 0 Then Crude but effective. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Monday, February 16, 2009 12:18 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Record Count Problem If rs.BOF = True And rs.EOF = True and rs.recordcount = 0 Then GoTo GoodBye Else Goto WaveHelloToRocky End if Or save the PK, then requery, then find saved PK and position on it. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 16 February 2009 19:09 To: 'Access Developers discussion and problem solving' Subject: [AccessD] Record Count Problem Dear List: In the following: Set rs = Me.RecordsetClone ' If no records then goodbye: MsgBox rs.RecordCount If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: the record count shows as 1 but BOF and EOF are both true. The record was just added. So the routine exits instead of doing what it's supposed to do. A Me.Requery solves the problem, but leaves the pointer at the start of the the recordset instead of the record the user was working on. I can's save a bookmark because the Requery triggers the activate event which calls this routine and destroys the bookmark. But why would the record count show 1 when the BOf and EOF are set to True? TIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 18 10:32:31 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 18 Feb 2009 08:32:31 -0800 Subject: [AccessD] form resizing code In-Reply-To: References: <83BC2A78223747219DF22CD39840D3D2@HAL9005><4999c9f8.0856100a.5b46.ffff8236@mx.google.com> Message-ID: <08A9C9E9C9F0472EBB2168E86E0373B3@HAL9005> I've had trouble with the ADH resizing code but it's still the best that I've been able to find. Have had problems especially with tab forms and sub forms on tab forms. But I devised a workaround which I can post if anyone's interested. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Carolyn Johnson Sent: Wednesday, February 18, 2009 8:23 AM To: Access Developers discussion and problem solving Subject: [AccessD] form resizing code I've been using the form resizing code from ADH for 10 years -- starting with A97 through A2007. I have databases that are transferred to and from a variety of computers with a wide range of monitor size, so the resizing really makes a difference. Lately, I've seen more and more problems with continuous forms getting "scrambled". If I switch to datasheet view and then back to form view, the screen is displayed normally, but it's not an ideal solution. It doesn't happen with all continuous forms or on all monitors, but happens enough that I'd like to fix it. I'm guessing it has something to do with the screen dimensions and/or resolution, but don't really have any understanding of it. Does anyone have suggestions for resizing code that works well with a wide variety of monitor size/resolution? Thanks Carolyn Johnson St Louis, MO -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Wed Feb 18 10:31:01 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Wed, 18 Feb 2009 08:31:01 -0800 Subject: [AccessD] Record Count Problem In-Reply-To: <38c884770902180825p48dd1ff4k215c8b97bffbd90b@mail.gmail.com> References: <83BC2A78223747219DF22CD39840D3D2@HAL9005><4999c9f8.0856100a.5b46.ffff8236@mx.google.com> <38c884770902180825p48dd1ff4k215c8b97bffbd90b@mail.gmail.com> Message-ID: No, because one condition can be true without the other, but theoretically if both conditions are true, the recordset is empty. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Paul Hartland Sent: Wednesday, February 18, 2009 8:26 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Record Count Problem just a quick not but shouldn't the line If rs.BOF = True And rs.EOF = True Then of been If rs.BOF = True Or rs.EOF = True Then Paul Hartland 2009/2/18 Charlotte Foust > So you were getting BOF and EOF when recordcount > 0? In that case you > needed to move into the recordset with a movelast or movefirst. And > is this a DAO or ADO recordset? They behave slightly differently. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: Monday, February 16, 2009 12:58 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Record Count Problem > > I changed > > If rs.BOF = True And rs.EOF = True Then > > To > > If rs.RecordCount = 0 Then > > Crude but effective. > > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Monday, February 16, 2009 12:18 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Record Count Problem > > If rs.BOF = True And rs.EOF = True and rs.recordcount = 0 Then > GoTo GoodBye > Else > Goto WaveHelloToRocky > End if > > > Or save the PK, then requery, then find saved PK and position on it. > > > Max > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 16 February 2009 19:09 > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Record Count Problem > > Dear List: > > In the following: > > Set rs = Me.RecordsetClone > ' If no records then goodbye: > MsgBox rs.RecordCount > If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: > > the record count shows as 1 but BOF and EOF are both true. > > The record was just added. So the routine exits instead of doing what > it's supposed to do. > > A Me.Requery solves the problem, but leaves the pointer at the start > of the the recordset instead of the record the user was working on. > > I can's save a bookmark because the Requery triggers the activate > event which calls this routine and destroys the bookmark. > > But why would the record count show 1 when the BOf and EOF are set to > True? > > TIA > > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- Paul Hartland paul.hartland at googlemail.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 18 10:33:36 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 18 Feb 2009 08:33:36 -0800 Subject: [AccessD] Record Count Problem In-Reply-To: <38c884770902180825p48dd1ff4k215c8b97bffbd90b@mail.gmail.com> References: <83BC2A78223747219DF22CD39840D3D2@HAL9005><4999c9f8.0856100a.5b46.ffff8236@mx.google.com> <38c884770902180825p48dd1ff4k215c8b97bffbd90b@mail.gmail.com> Message-ID: <4F6F92C13768458C8EB5E822077E6A45@HAL9005> I don't know. I've always used AND to find out if a recordset was empty. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Paul Hartland Sent: Wednesday, February 18, 2009 8:26 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Record Count Problem just a quick not but shouldn't the line If rs.BOF = True And rs.EOF = True Then of been If rs.BOF = True Or rs.EOF = True Then Paul Hartland 2009/2/18 Charlotte Foust > So you were getting BOF and EOF when recordcount > 0? In that case you > needed to move into the recordset with a movelast or movefirst. And > is this a DAO or ADO recordset? They behave slightly differently. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: Monday, February 16, 2009 12:58 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Record Count Problem > > I changed > > If rs.BOF = True And rs.EOF = True Then > > To > > If rs.RecordCount = 0 Then > > Crude but effective. > > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Monday, February 16, 2009 12:18 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Record Count Problem > > If rs.BOF = True And rs.EOF = True and rs.recordcount = 0 Then > GoTo GoodBye > Else > Goto WaveHelloToRocky > End if > > > Or save the PK, then requery, then find saved PK and position on it. > > > Max > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 16 February 2009 19:09 > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Record Count Problem > > Dear List: > > In the following: > > Set rs = Me.RecordsetClone > ' If no records then goodbye: > MsgBox rs.RecordCount > If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: > > the record count shows as 1 but BOF and EOF are both true. > > The record was just added. So the routine exits instead of doing what > it's supposed to do. > > A Me.Requery solves the problem, but leaves the pointer at the start > of the the recordset instead of the record the user was working on. > > I can's save a bookmark because the Requery triggers the activate > event which calls this routine and destroys the bookmark. > > But why would the record count show 1 when the BOf and EOF are set to > True? > > TIA > > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- Paul Hartland paul.hartland at googlemail.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Wed Feb 18 10:34:48 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Wed, 18 Feb 2009 08:34:48 -0800 Subject: [AccessD] Record Count Problem In-Reply-To: <7AE30DC425174C85BAC650BB85B03CB3@HAL9005> References: <83BC2A78223747219DF22CD39840D3D2@HAL9005><4999c9f8.0856100a.5b46.ffff8236@mx.google.com> <7AE30DC425174C85BAC650BB85B03CB3@HAL9005> Message-ID: Then you might be safer with .RecordCount <> 0. If you're working with an ADO recordset or with some particular types of cursors, recordcount returns -1 if there are records. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 18, 2009 8:30 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Record Count Problem The recordset is the bound recordset - Set rs = Me.RecordsetClone. And moving to the last record if there's no records generates an error. Which I could trap. But, as I explained, I find it esthetically objectionable to deliberately generate an error, but that has no place in programming discipline anyway. But I think I finessed the problem with .RecordCount > 0. I don't care how many records are there, only that there's at least 1. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Wednesday, February 18, 2009 8:14 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Record Count Problem So you were getting BOF and EOF when recordcount > 0? In that case you needed to move into the recordset with a movelast or movefirst. And is this a DAO or ADO recordset? They behave slightly differently. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Monday, February 16, 2009 12:58 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Record Count Problem I changed If rs.BOF = True And rs.EOF = True Then To If rs.RecordCount = 0 Then Crude but effective. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Monday, February 16, 2009 12:18 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Record Count Problem If rs.BOF = True And rs.EOF = True and rs.recordcount = 0 Then GoTo GoodBye Else Goto WaveHelloToRocky End if Or save the PK, then requery, then find saved PK and position on it. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 16 February 2009 19:09 To: 'Access Developers discussion and problem solving' Subject: [AccessD] Record Count Problem Dear List: In the following: Set rs = Me.RecordsetClone ' If no records then goodbye: MsgBox rs.RecordCount If rs.BOF = True And rs.EOF = True Then GoTo GoodBye: the record count shows as 1 but BOF and EOF are both true. The record was just added. So the routine exits instead of doing what it's supposed to do. A Me.Requery solves the problem, but leaves the pointer at the start of the the recordset instead of the record the user was working on. I can's save a bookmark because the Requery triggers the activate event which calls this routine and destroys the bookmark. But why would the record count show 1 when the BOf and EOF are set to True? TIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 18 11:55:52 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 18 Feb 2009 17:55:52 -0000 Subject: [AccessD] Record Count Problem In-Reply-To: <311A80434F2D436DBD3C87D9902F2600@HAL9005> References: <83BC2A78223747219DF22CD39840D3D2@HAL9005><4999c9f8.0856100a.5b46.ffff8236@mx.google.com> <5A80381F4F224687A1B41069A923B8D1@jislaptopdev><499a7a20.0ac0100a.2fb6.ffffe5d0@mx.google.com> <2D8E3A4B3E2F41A5B109A5FF12E2BC2B@HAL9005> <499baf71.0a04d00a.07f8.ffff8d01@mx.google.com> <311A80434F2D436DBD3C87D9902F2600@HAL9005> Message-ID: <499c4bb1.0a04d00a.49b1.4eba@mx.google.com> Hi Rocky, Hope these two examples help. Ignore the rubbish coding... You can also position directly onto the rst as shown in vers 2. Max Public Property Get AddNewLocationFromForm(frm As Form) As Long ' Adds a new location based on the data entered into the form On Error GoTo errhandler Dim lngLocationID As Long, lngMailsortAID As Long sqlGeoMailsortA = "SELECT * From mcmGeoMailsortA Where MailsortAID=" & frm!FKMailsortAIDx Set rstGeoMailsortA = dbs.OpenRecordset(sqlGeoMailsortA) If rstGeoMailsortA.EOF Then MsgBox "I cannot find this PostalCode" GoTo exithere Else lngMailsortAID = rstGeoMailsortA!MailsortAID End If sqlLocation = "SELECT * From mcmGeoLocations Where " & _ "FKCountryID = " & Nz(frm!FKCountryIDx, 617) & _ " AND OverseasPostCode = " & conQuote & Nz(frm!OverseasPostCodex, "") & conQuote Set rstLocation = dbs.OpenRecordset(sqlLocation) If rstLocation.EOF Then lngLocationID = 0 rstLocation.AddNew rstLocation!FKCountryID = Nz(frm!FKCountryIDx, 617) rstLocation!OverseasPostCode = Nz(frm!OverseasPostCodex, "") rstLocation!LastUser = "System" rstLocation!LastEdited = Date rstLocation!CreatedBy = "System" rstLocation!CreateDate = Date rstLocation.Update rstLocation.Move 0, rstLocation.LastModified lngLocationID = rstLocation!LocationID Else lngLocationID = rstLocation!LocationID End If exithere: If lngLocationID = 0 Then MsgBox "This Location cannot be added" Else MsgBox "Location has been added/already present (" & lngLocationID & ")" End If AddNewLocationFromForm = lngLocationID Exit Property errhandler: Select Case Err.Number Case 3022 'dupes lngLocationID = 0 GoTo exithere Case Else MsgBox "Error in Property Get AddNewLocationFromForm: " & Err.Number & vbCrLf & Err.Description Resume exithere End Select End Property Private Function CreateLineRecords(strFile As String, frm As Form) On Error GoTo errhandler If gbMcmModuleLogging = True Then Call mcmModuleLogging("MCM_DoctorsAndOpthalmic", "CreateLineRecords", True) Dim dbs As DAO.Database, rst As DAO.Recordset, sql As String Set dbs = CurrentDb sql = "delete * from Lines" Call pfRunSql(sql) sql = "Select * from Lines" Set rst = dbs.OpenRecordset(sql) Dim strTemp As String, iPos2 As Integer Dim i As Integer, iASC As Integer, iPos As Integer, strOut As String, strIn As String Dim strFullIn As String, strFullOut As String Dim bContinuation As Boolean bContinuation = True ReadingCount = 0 frm!ReadingFile = "Reading " & strFile frm!ReadingCount = ReadingCount WritingCount = 0 frm!ReadingFile = "Writing Line Records " & strFile frm!WritingCount = WritingCount frm.Repaint Open strFile For Input As #3 Do While Not EOF(3) Input #3, strTemp If Len(Trim(strTemp)) > 0 Then ' see if this is a continuation or new line bContinuation = False For i = 1 To 24 bContinuation = True If InStr(strTemp, ary(i)) > 0 Then bContinuation = False Exit For End If Next i If bContinuation Then rst.Edit 'rst!Line = rst!Line & vbCrLf & str rst!Line = rst!Line & ", " & Trim(strTemp) rst.Update Else rst.AddNew rst!Line = strTemp rst.Update rst.Bookmark = rst.LastModified WritingCount = WritingCount + 1 End If End If ReadingCount = ReadingCount + 1 frm!ReadingCount = ReadingCount frm!WritingCount = WritingCount frm.Repaint Loop exithere: If gbMcmModuleLogging = True Then Call mcmModuleLogging("MCM_DoctorsAndOpthalmic", "CreateLineRecords", False) Close 3 Set rst = Nothing Exit Function errhandler: MsgBox "Error: " & Err.Number & vbCrLf & Err.Description GoTo exithere End Function From rockysmolin at bchacc.com Wed Feb 18 11:58:22 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 18 Feb 2009 09:58:22 -0800 Subject: [AccessD] Record Count Problem In-Reply-To: <499c4bb1.0a04d00a.49b1.4eba@mx.google.com> References: <83BC2A78223747219DF22CD39840D3D2@HAL9005><4999c9f8.0856100a.5b46.ffff8236@mx.google.com> <5A80381F4F224687A1B41069A923B8D1@jislaptopdev><499a7a20.0ac0100a.2fb6.ffffe5d0@mx.google.com> <2D8E3A4B3E2F41A5B109A5FF12E2BC2B@HAL9005> <499baf71.0a04d00a.07f8.ffff8d01@mx.google.com><311A80434F2D436DBD3C87D9902F2600@HAL9005> <499c4bb1.0a04d00a.49b1.4eba@mx.google.com> Message-ID: <8EB19A7A49254AAB880BA703E6B09F1B@HAL9005> Thanx Max. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Wednesday, February 18, 2009 9:56 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Record Count Problem Hi Rocky, Hope these two examples help. Ignore the rubbish coding... You can also position directly onto the rst as shown in vers 2. Max Public Property Get AddNewLocationFromForm(frm As Form) As Long ' Adds a new location based on the data entered into the form On Error GoTo errhandler Dim lngLocationID As Long, lngMailsortAID As Long sqlGeoMailsortA = "SELECT * From mcmGeoMailsortA Where MailsortAID=" & frm!FKMailsortAIDx Set rstGeoMailsortA = dbs.OpenRecordset(sqlGeoMailsortA) If rstGeoMailsortA.EOF Then MsgBox "I cannot find this PostalCode" GoTo exithere Else lngMailsortAID = rstGeoMailsortA!MailsortAID End If sqlLocation = "SELECT * From mcmGeoLocations Where " & _ "FKCountryID = " & Nz(frm!FKCountryIDx, 617) & _ " AND OverseasPostCode = " & conQuote & Nz(frm!OverseasPostCodex, "") & conQuote Set rstLocation = dbs.OpenRecordset(sqlLocation) If rstLocation.EOF Then lngLocationID = 0 rstLocation.AddNew rstLocation!FKCountryID = Nz(frm!FKCountryIDx, 617) rstLocation!OverseasPostCode = Nz(frm!OverseasPostCodex, "") rstLocation!LastUser = "System" rstLocation!LastEdited = Date rstLocation!CreatedBy = "System" rstLocation!CreateDate = Date rstLocation.Update rstLocation.Move 0, rstLocation.LastModified lngLocationID = rstLocation!LocationID Else lngLocationID = rstLocation!LocationID End If exithere: If lngLocationID = 0 Then MsgBox "This Location cannot be added" Else MsgBox "Location has been added/already present (" & lngLocationID & ")" End If AddNewLocationFromForm = lngLocationID Exit Property errhandler: Select Case Err.Number Case 3022 'dupes lngLocationID = 0 GoTo exithere Case Else MsgBox "Error in Property Get AddNewLocationFromForm: " & Err.Number & vbCrLf & Err.Description Resume exithere End Select End Property Private Function CreateLineRecords(strFile As String, frm As Form) On Error GoTo errhandler If gbMcmModuleLogging = True Then Call mcmModuleLogging("MCM_DoctorsAndOpthalmic", "CreateLineRecords", True) Dim dbs As DAO.Database, rst As DAO.Recordset, sql As String Set dbs = CurrentDb sql = "delete * from Lines" Call pfRunSql(sql) sql = "Select * from Lines" Set rst = dbs.OpenRecordset(sql) Dim strTemp As String, iPos2 As Integer Dim i As Integer, iASC As Integer, iPos As Integer, strOut As String, strIn As String Dim strFullIn As String, strFullOut As String Dim bContinuation As Boolean bContinuation = True ReadingCount = 0 frm!ReadingFile = "Reading " & strFile frm!ReadingCount = ReadingCount WritingCount = 0 frm!ReadingFile = "Writing Line Records " & strFile frm!WritingCount = WritingCount frm.Repaint Open strFile For Input As #3 Do While Not EOF(3) Input #3, strTemp If Len(Trim(strTemp)) > 0 Then ' see if this is a continuation or new line bContinuation = False For i = 1 To 24 bContinuation = True If InStr(strTemp, ary(i)) > 0 Then bContinuation = False Exit For End If Next i If bContinuation Then rst.Edit 'rst!Line = rst!Line & vbCrLf & str rst!Line = rst!Line & ", " & Trim(strTemp) rst.Update Else rst.AddNew rst!Line = strTemp rst.Update rst.Bookmark = rst.LastModified WritingCount = WritingCount + 1 End If End If ReadingCount = ReadingCount + 1 frm!ReadingCount = ReadingCount frm!WritingCount = WritingCount frm.Repaint Loop exithere: If gbMcmModuleLogging = True Then Call mcmModuleLogging("MCM_DoctorsAndOpthalmic", "CreateLineRecords", False) Close 3 Set rst = Nothing Exit Function errhandler: MsgBox "Error: " & Err.Number & vbCrLf & Err.Description GoTo exithere End Function -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 18 12:02:04 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 18 Feb 2009 18:02:04 -0000 Subject: [AccessD] ZIpping Files In-Reply-To: <57E6E6CA42105A48B977303A2CDC2720080A7DAB58@WPEXCH22.retail.ad.cmltd.net.au> References: <57E6E6CA42105A48B977303A2CDC2720080A7DAB58@WPEXCH22.retail.ad.cmltd.net.au> Message-ID: <499c4d21.1818d00a.7873.39a9@mx.google.com> Yes, My FE zips down to 44,926,673 (44+ Meg) My BE zips down to 108,108,025 (108+ Meg) Wouldn't like to email them but I can see how it would be great for smaller files Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Darryl Collins Sent: 18 February 2009 10:00 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] ZIpping Files I guess where Max is coming from is if you have 1.5 GB database zipped to 80 mb or similar. that wouldn't be so email friendly :) but I love the zip code, great stuff. thanks for sharing that as in most cases it will be very useful. cheers darryl -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Steve Schapel Sent: Wednesday, 18 February 2009 6:14 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] ZIpping Files Max, -------------------------------------------------- From: "Max Wanadoo" Sent: Wednesday, February 18, 2009 7:49 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] ZIpping Files > (size permitting etc) Well, that's the reason for zipping it, isn't it. In one case, a 40 MB accdb file zips down to about 10 MB. In another, a 6 MB mdb zips down to 850 KB. Not too bad. I often find it easier to replicate a problem if I have the client's data. Regards Steve -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com This email and any attachments may contain privileged and confidential information and are intended for the named addressee only. If you have received this e-mail in error, please notify the sender and delete this e-mail immediately. Any confidentiality, privilege or copyright is not waived or lost because this e-mail has been sent to you in error. It is your responsibility to check this e-mail and any attachments for viruses. No warranty is made that this material is free from computer virus or any other defect or error. Any loss/damage incurred by using this material is not the sender's responsibility. The sender's entire liability will be limited to resupplying the material. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From miscellany at mvps.org Wed Feb 18 12:15:37 2009 From: miscellany at mvps.org (Steve Schapel) Date: Thu, 19 Feb 2009 07:15:37 +1300 Subject: [AccessD] ZIpping Files In-Reply-To: <499c4d21.1818d00a.7873.39a9@mx.google.com> References: <57E6E6CA42105A48B977303A2CDC2720080A7DAB58@WPEXCH22.retail.ad.cmltd.net.au> <499c4d21.1818d00a.7873.39a9@mx.google.com> Message-ID: Max, Ok, I agree. I'm sending them by FTP, not email. But yes, size does matter! :-) Regards Steve -------------------------------------------------- From: "Max Wanadoo" Sent: Thursday, February 19, 2009 7:02 AM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] ZIpping Files > Yes, > My FE zips down to 44,926,673 (44+ Meg) > My BE zips down to 108,108,025 (108+ Meg) > Wouldn't like to email them but I can see how it would be great for > smaller > files From max.wanadoo at gmail.com Wed Feb 18 12:49:34 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 18 Feb 2009 18:49:34 -0000 Subject: [AccessD] ZIpping Files In-Reply-To: References: <57E6E6CA42105A48B977303A2CDC2720080A7DAB58@WPEXCH22.retail.ad.cmltd.net.au> <499c4d21.1818d00a.7873.39a9@mx.google.com> Message-ID: <499c5842.0506d00a.6a14.2619@mx.google.com> Yes, with FTP the situation changes to bandwidth. At work I have 8Mb broadband so a 71Mb file comes down in seconds. The same file at home (which I am downloading now) takes 41 minutes on my laptop via mobile (cell net) - no cable, alas! Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Schapel Sent: 18 February 2009 18:16 To: Access Developers discussion and problem solving Subject: Re: [AccessD] ZIpping Files Max, Ok, I agree. I'm sending them by FTP, not email. But yes, size does matter! :-) Regards Steve -------------------------------------------------- From: "Max Wanadoo" Sent: Thursday, February 19, 2009 7:02 AM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] ZIpping Files > Yes, > My FE zips down to 44,926,673 (44+ Meg) > My BE zips down to 108,108,025 (108+ Meg) > Wouldn't like to email them but I can see how it would be great for > smaller > files -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From accessd at gfconsultants.com Wed Feb 18 14:01:21 2009 From: accessd at gfconsultants.com (Reuben Cummings) Date: Wed, 18 Feb 2009 15:01:21 -0500 Subject: [AccessD] Need a Keystroke to perform a task Message-ID: <7163A6A09CF44151AF1E4BDD3E02EBFD@reubennx9500> I must really be stupid this week... I am trying to make a keystroke perform a function when inside a control. I actually need the keystroke to send the action to other functions as is already done when using the mouse. I have an app that when the user double clicks (to confirm the current selection) or changes the Township the status of that record as well as all records with the same address are 'checked'. So if 5 records have the same address they will all five be 'checked' when any of the five is either confirmed or changed (all five would also get changed to the new township. I want a keystroke to perform the same action, but I can't figure out how to make the keystroke work or what keystrike combinations are available. I was thinking a Ctrl+Whatever. Thanks. Reuben Cummings GFC, LLC 812.523.1017 From accessd at gfconsultants.com Wed Feb 18 14:03:38 2009 From: accessd at gfconsultants.com (Reuben Cummings) Date: Wed, 18 Feb 2009 15:03:38 -0500 Subject: [AccessD] OT - How to send messages from different accounts Message-ID: Do I have to send emails to the list from the same email that is on record for the list? I use accessd at gfconsultants.com for the lists (that way the list messages don't get pushed to my phone). But my regular account is reuben at gfc... If I forget to change the sender it'll come from Reuben... Will the list still process the message? Reuben Cummings GFC, LLC 812.523.1017 From DWUTKA at Marlow.com Wed Feb 18 14:09:33 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Wed, 18 Feb 2009 14:09:33 -0600 Subject: [AccessD] OT: Funny Tech story Message-ID: I posted this to OT already, and got some good chuckles. I know it's Wednesday (hump day), but I thought this was too funny not to share here! Yesterday, I gave our GM (CEO) his new Laptop. It's an HP Tablet PC, with Vista Business on it. I'm really starting to like Vista. However, he just called me up, about 15 minutes ago, and he was in a panic. He said that he was in a meeting offsite, connected into Marlow with a VPN connection. He had left the meeting momentarily, and when he got back, there was an email composing on his screen. He then said he was sitting there watching this 'mystery person' typing away an email on his computer. Now, my first reaction is a little skeptical. What hacker is going to get into a PC that's on a pretty tight VPN, to create an email?!?! It's VERY easy to spoof an email to be from someone else.... But then our GM began reading some of the email. It included names of people at Marlow, along with Marlow information. So how would a hacker know this kind of stuff..... so then I asked the critical question: "Is your voice recognition turned on?" LOL! Sure enough, he had Vista's voice recognition turned on, and while he was out of the room, someone must have said something along the lines of 'Creat an email', and Vista was happily chugging along and transcribing what it was hearing in the meeting! LOL. Drew The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From rockysmolin at bchacc.com Wed Feb 18 14:10:42 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 18 Feb 2009 12:10:42 -0800 Subject: [AccessD] Need a Keystroke to perform a task In-Reply-To: <7163A6A09CF44151AF1E4BDD3E02EBFD@reubennx9500> References: <7163A6A09CF44151AF1E4BDD3E02EBFD@reubennx9500> Message-ID: I think you'll need to set the KeyPreview property to true and look for your key being pressed in the KeyPress or KeyDown event. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Reuben Cummings Sent: Wednesday, February 18, 2009 12:01 PM To: AccessD Subject: [AccessD] Need a Keystroke to perform a task I must really be stupid this week... I am trying to make a keystroke perform a function when inside a control. I actually need the keystroke to send the action to other functions as is already done when using the mouse. I have an app that when the user double clicks (to confirm the current selection) or changes the Township the status of that record as well as all records with the same address are 'checked'. So if 5 records have the same address they will all five be 'checked' when any of the five is either confirmed or changed (all five would also get changed to the new township. I want a keystroke to perform the same action, but I can't figure out how to make the keystroke work or what keystrike combinations are available. I was thinking a Ctrl+Whatever. Thanks. Reuben Cummings GFC, LLC 812.523.1017 -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From bill_patten at embarqmail.com Wed Feb 18 14:19:02 2009 From: bill_patten at embarqmail.com (Bill Patten) Date: Wed, 18 Feb 2009 12:19:02 -0800 Subject: [AccessD] OT: Funny Tech story In-Reply-To: References: Message-ID: <3F2EB9D8FEBE4DF1B39DE30A0D18B829@BPCS> Good detective work, and you are right it is funny.. Bill ----- Original Message ----- From: "Drew Wutka" To: "Access Developers discussion and problem solving" Sent: Wednesday, February 18, 2009 12:09 PM Subject: [AccessD] OT: Funny Tech story I posted this to OT already, and got some good chuckles. I know it's Wednesday (hump day), but I thought this was too funny not to share here! Yesterday, I gave our GM (CEO) his new Laptop. It's an HP Tablet PC, with Vista Business on it. I'm really starting to like Vista. However, he just called me up, about 15 minutes ago, and he was in a panic. He said that he was in a meeting offsite, connected into Marlow with a VPN connection. He had left the meeting momentarily, and when he got back, there was an email composing on his screen. He then said he was sitting there watching this 'mystery person' typing away an email on his computer. Now, my first reaction is a little skeptical. What hacker is going to get into a PC that's on a pretty tight VPN, to create an email?!?! It's VERY easy to spoof an email to be from someone else.... But then our GM began reading some of the email. It included names of people at Marlow, along with Marlow information. So how would a hacker know this kind of stuff..... so then I asked the critical question: "Is your voice recognition turned on?" LOL! Sure enough, he had Vista's voice recognition turned on, and while he was out of the room, someone must have said something along the lines of 'Creat an email', and Vista was happily chugging along and transcribing what it was hearing in the meeting! LOL. Drew The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From ab-mi at post3.tele.dk Wed Feb 18 14:39:18 2009 From: ab-mi at post3.tele.dk (Asger Blond) Date: Wed, 18 Feb 2009 21:39:18 +0100 Subject: [AccessD] Need a Keystroke to perform a task In-Reply-To: <7163A6A09CF44151AF1E4BDD3E02EBFD@reubennx9500> References: <7163A6A09CF44151AF1E4BDD3E02EBFD@reubennx9500> Message-ID: <6307B152246D4EA19C3C592A91ED903E@AB> Create a macro named AutoKeys. In this macro use the action RunCode to execute your function, and use the column MacroName to define your keystroke, i.e. ^k for Ctrl+k. Asger -----Oprindelig meddelelse----- Fra: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] P? vegne af Reuben Cummings Sendt: 18. februar 2009 21:01 Til: AccessD Emne: [AccessD] Need a Keystroke to perform a task I must really be stupid this week... I am trying to make a keystroke perform a function when inside a control. I actually need the keystroke to send the action to other functions as is already done when using the mouse. I have an app that when the user double clicks (to confirm the current selection) or changes the Township the status of that record as well as all records with the same address are 'checked'. So if 5 records have the same address they will all five be 'checked' when any of the five is either confirmed or changed (all five would also get changed to the new township. I want a keystroke to perform the same action, but I can't figure out how to make the keystroke work or what keystrike combinations are available. I was thinking a Ctrl+Whatever. Thanks. Reuben Cummings GFC, LLC 812.523.1017 -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Wed Feb 18 14:37:57 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 18 Feb 2009 15:37:57 -0500 Subject: [AccessD] OT: Funny Tech story In-Reply-To: References: Message-ID: <499C71A5.9000900@colbyconsulting.com> You laugh, but that has been called an attack vector. the idea is that as you browse to an infected site, a sound plays which causes the voice recognition to do something. Sounds silly but... John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > I posted this to OT already, and got some good chuckles. I know it's > Wednesday (hump day), but I thought this was too funny not to share > here! > > > > Yesterday, I gave our GM (CEO) his new Laptop. It's an HP Tablet PC, > with Vista Business on it. I'm really starting to like Vista. > > > > > > > > However, he just called me up, about 15 minutes ago, and he was in a > panic. He said that he was in a meeting offsite, connected into Marlow > with a VPN connection. He had left the meeting momentarily, and when he > got back, there was an email composing on his screen. He then said he > was sitting there watching this 'mystery person' typing away an email on > his computer. > > > > > > > > Now, my first reaction is a little skeptical. What hacker is going to > get into a PC that's on a pretty tight VPN, to create an email?!?! It's > VERY easy to spoof an email to be from someone else.... But then our GM > began reading some of the email. It included names of people at Marlow, > along with Marlow information. > > > > > > > > So how would a hacker know this kind of stuff..... so then I asked the > critical question: > > > > > > > > "Is your voice recognition turned on?" > > > > > > > > LOL! Sure enough, he had Vista's voice recognition turned on, and while > he was out of the room, someone must have said something along the lines > of 'Creat an email', and Vista was happily chugging along and > transcribing what it was hearing in the meeting! LOL. > > > > > > > > Drew > > > > > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > From carbonnb at gmail.com Wed Feb 18 14:42:54 2009 From: carbonnb at gmail.com (Bryan Carbonnell) Date: Wed, 18 Feb 2009 15:42:54 -0500 Subject: [AccessD] OT - How to send messages from different accounts In-Reply-To: References: Message-ID: On Wed, Feb 18, 2009 at 3:03 PM, Reuben Cummings wrote: > Do I have to send emails to the list from the same email that is on record > for the list? > > I use accessd at gfconsultants.com for the lists (that way the list messages > don't get pushed to my phone). But my regular account is reuben at gfc... > > If I forget to change the sender it'll come from Reuben... > > Will the list still process the message? Nope. Here's what I recommend though.... Subscribe with reuben at ... and then go into the settings for that subscription and set it to nomail (vacation mode) That way, you won't get email to reuben at ... but can still post from that address. -- Bryan Carbonnell - carbonnb at gmail.com Life's journey is not to arrive at the grave safely in a well preserved body, but rather to skid in sideways, totally worn out, shouting "What a great ride!" From rockysmolin at bchacc.com Wed Feb 18 15:20:13 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 18 Feb 2009 13:20:13 -0800 Subject: [AccessD] OT: Funny Tech story In-Reply-To: <499C71A5.9000900@colbyconsulting.com> References: <499C71A5.9000900@colbyconsulting.com> Message-ID: And if you run it backwards does it say "Paul is dead"? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 18, 2009 12:38 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OT: Funny Tech story You laugh, but that has been called an attack vector. the idea is that as you browse to an infected site, a sound plays which causes the voice recognition to do something. Sounds silly but... John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > I posted this to OT already, and got some good chuckles. I know it's > Wednesday (hump day), but I thought this was too funny not to share > here! > > > > Yesterday, I gave our GM (CEO) his new Laptop. It's an HP Tablet PC, > with Vista Business on it. I'm really starting to like Vista. > > > > > > > > However, he just called me up, about 15 minutes ago, and he was in a > panic. He said that he was in a meeting offsite, connected into > Marlow with a VPN connection. He had left the meeting momentarily, > and when he got back, there was an email composing on his screen. He > then said he was sitting there watching this 'mystery person' typing > away an email on his computer. > > > > > > > > Now, my first reaction is a little skeptical. What hacker is going to > get into a PC that's on a pretty tight VPN, to create an email?!?! > It's VERY easy to spoof an email to be from someone else.... But then > our GM began reading some of the email. It included names of people at > Marlow, along with Marlow information. > > > > > > > > So how would a hacker know this kind of stuff..... so then I asked > the critical question: > > > > > > > > "Is your voice recognition turned on?" > > > > > > > > LOL! Sure enough, he had Vista's voice recognition turned on, and > while he was out of the room, someone must have said something along > the lines of 'Creat an email', and Vista was happily chugging along > and transcribing what it was hearing in the meeting! LOL. > > > > > > > > Drew > > > > > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 18 16:57:04 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 18 Feb 2009 14:57:04 -0800 Subject: [AccessD] Find First in an Array? Message-ID: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> Dear List: I have an app set up for multiple languages. The translations are pulled from a table at the time the form or report is opened by cycling through the controls (labels and button captions) and getting the appropriate translation. To make the thing run faster (there's a noticeable translation delay), I'm thinking of loading these translations into an array in memory and fetching the translation from the array. However, AFAIK, there's no equivalent to a FindFirst in an array like there is in a recordset. So, is there a better way to find the right translation in the array short of going through the array in sequence for each item to be translated? MTIA for any ideas, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com From dw-murphy at cox.net Wed Feb 18 17:10:54 2009 From: dw-murphy at cox.net (Doug Murphy) Date: Wed, 18 Feb 2009 15:10:54 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> Message-ID: Try a collection. Doug -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 18, 2009 2:57 PM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Find First in an Array? Dear List: I have an app set up for multiple languages. The translations are pulled from a table at the time the form or report is opened by cycling through the controls (labels and button captions) and getting the appropriate translation. To make the thing run faster (there's a noticeable translation delay), I'm thinking of loading these translations into an array in memory and fetching the translation from the array. However, AFAIK, there's no equivalent to a FindFirst in an array like there is in a recordset. So, is there a better way to find the right translation in the array short of going through the array in sequence for each item to be translated? MTIA for any ideas, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Wed Feb 18 17:15:48 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Wed, 18 Feb 2009 15:15:48 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> Message-ID: I second that motion. You also have the advantage of keys with a collection. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Doug Murphy Sent: Wednesday, February 18, 2009 3:11 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? Try a collection. Doug -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 18, 2009 2:57 PM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Find First in an Array? Dear List: I have an app set up for multiple languages. The translations are pulled from a table at the time the form or report is opened by cycling through the controls (labels and button captions) and getting the appropriate translation. To make the thing run faster (there's a noticeable translation delay), I'm thinking of loading these translations into an array in memory and fetching the translation from the array. However, AFAIK, there's no equivalent to a FindFirst in an array like there is in a recordset. So, is there a better way to find the right translation in the array short of going through the array in sequence for each item to be translated? MTIA for any ideas, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 18 18:04:10 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 19 Feb 2009 00:04:10 -0000 Subject: [AccessD] Find First in an Array? In-Reply-To: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> Message-ID: <499ca1fe.0506d00a.6d1a.7fbc@mx.google.com> Hey Rocky - something lateral again. If you group select the labels for the controls and copy-paste them then drag them down clear of the originals for the moment. Then group select the original labels and set the Tag to "English" - one entry sets all. Then group select the copied labels and set the Tag to "German" - again one entry sets all Then for each of the German Labels, write the words you want to display in German. Then drag the German Group up over the English Group so that they site exactly on top. Then group select the data control (ie, the text box) and in the Tag put "English-German" - this will match any of the languages. Then in the form.onLoad event put this code Option Compare Database Option Explicit 'Const conLanguage = "German" Const conLanguage = "English" ' these could be a system parameter instead of a constant = this is only for illustrating. Private Sub Form_Load() Dim ctl As Control For Each ctl In Me.Controls Debug.Print ctl.Name, ctl.Tag, InStr(ctl.Tag, conLanguage) > 0 - for testing ctl.Visible = InStr(ctl.Tag, conLanguage) > 0 Next ctl End Sub Swapping the conlanguage constant around will display only the labels that match the language but the data control matches both. On they form I just knocked up it was instantaneous. Repeat for Spanish, Canadian, etc. Lots of Labels (but only 1 set of data controls) - it is only the lables you need to change, right? Something different anyway! Max Ps. I have never done this before so I do not know if it is robust in a working environment, but should be. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 18 February 2009 22:57 To: 'Access Developers discussion and problem solving' Subject: [AccessD] Find First in an Array? Dear List: I have an app set up for multiple languages. The translations are pulled from a table at the time the form or report is opened by cycling through the controls (labels and button captions) and getting the appropriate translation. To make the thing run faster (there's a noticeable translation delay), I'm thinking of loading these translations into an array in memory and fetching the translation from the array. However, AFAIK, there's no equivalent to a FindFirst in an array like there is in a recordset. So, is there a better way to find the right translation in the array short of going through the array in sequence for each item to be translated? MTIA for any ideas, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 18 18:11:27 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 18 Feb 2009 16:11:27 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> Message-ID: Collection, eh? Hmm....back to the ADH! Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Doug Murphy Sent: Wednesday, February 18, 2009 3:11 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? Try a collection. Doug -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 18, 2009 2:57 PM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Find First in an Array? Dear List: I have an app set up for multiple languages. The translations are pulled from a table at the time the form or report is opened by cycling through the controls (labels and button captions) and getting the appropriate translation. To make the thing run faster (there's a noticeable translation delay), I'm thinking of loading these translations into an array in memory and fetching the translation from the array. However, AFAIK, there's no equivalent to a FindFirst in an array like there is in a recordset. So, is there a better way to find the right translation in the array short of going through the array in sequence for each item to be translated? MTIA for any ideas, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 18 18:16:58 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 18 Feb 2009 16:16:58 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: <499ca1fe.0506d00a.6d1a.7fbc@mx.google.com> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <499ca1fe.0506d00a.6d1a.7fbc@mx.google.com> Message-ID: Max: That would work except the table driven approach is so much more easier. Easy to add a language (got French and Spanish now in addition to traditional and simplified Chinese), too, or make a change to a translation. To add a language I just add a column for that language to the Control and Messages tables and send them to the translator. Add that language to the language selector combo on the Preferences form, and walla! Another language. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Wednesday, February 18, 2009 4:04 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? Hey Rocky - something lateral again. If you group select the labels for the controls and copy-paste them then drag them down clear of the originals for the moment. Then group select the original labels and set the Tag to "English" - one entry sets all. Then group select the copied labels and set the Tag to "German" - again one entry sets all Then for each of the German Labels, write the words you want to display in German. Then drag the German Group up over the English Group so that they site exactly on top. Then group select the data control (ie, the text box) and in the Tag put "English-German" - this will match any of the languages. Then in the form.onLoad event put this code Option Compare Database Option Explicit 'Const conLanguage = "German" Const conLanguage = "English" ' these could be a system parameter instead of a constant = this is only for illustrating. Private Sub Form_Load() Dim ctl As Control For Each ctl In Me.Controls Debug.Print ctl.Name, ctl.Tag, InStr(ctl.Tag, conLanguage) > 0 - for testing ctl.Visible = InStr(ctl.Tag, conLanguage) > 0 Next ctl End Sub Swapping the conlanguage constant around will display only the labels that match the language but the data control matches both. On they form I just knocked up it was instantaneous. Repeat for Spanish, Canadian, etc. Lots of Labels (but only 1 set of data controls) - it is only the lables you need to change, right? Something different anyway! Max Ps. I have never done this before so I do not know if it is robust in a working environment, but should be. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 18 February 2009 22:57 To: 'Access Developers discussion and problem solving' Subject: [AccessD] Find First in an Array? Dear List: I have an app set up for multiple languages. The translations are pulled from a table at the time the form or report is opened by cycling through the controls (labels and button captions) and getting the appropriate translation. To make the thing run faster (there's a noticeable translation delay), I'm thinking of loading these translations into an array in memory and fetching the translation from the array. However, AFAIK, there's no equivalent to a FindFirst in an array like there is in a recordset. So, is there a better way to find the right translation in the array short of going through the array in sequence for each item to be translated? MTIA for any ideas, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Wed Feb 18 18:38:23 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 18 Feb 2009 19:38:23 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> Message-ID: <499CA9FF.3040204@colbyconsulting.com> Are you going to cache by form then controls on the form? Will you load (cache) an entire language set? clsXlateSupervisor clsXlateFrm May I suggest a pair of classes? One class holds all the translations for a form, the second is the supervisor that holds all of the form classes. As the form loads, it calls clsXlateSupervisor passing in it's name. Back comes a clsXlateFrm instance for that form. The form then simply passes it's control collection to the class. The class iterates the collection, pulls out the translation value and places it in the correct property. BTW, using a cache like that will make it wicked fast. Of course you have to load the cache. My suggestion would be to load the translation for each form the first time that form is opened, caching the data into the class. Then after that as the form opens the data is loaded and off you go. Tell us what your translation table looks like and I will show you how to do this. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Dear List: > > I have an app set up for multiple languages. The translations are pulled > from a table at the time the form or report is opened by cycling through the > controls (labels and button captions) and getting the appropriate > translation. To make the thing run faster (there's a noticeable translation > delay), I'm thinking of loading these translations into an array in memory > and fetching the translation from the array. However, AFAIK, there's no > equivalent to a FindFirst in an array like there is in a recordset. So, is > there a better way to find the right translation in the array short of going > through the array in sequence for each item to be translated? > > > MTIA for any ideas, > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > From DWUTKA at Marlow.com Wed Feb 18 19:08:55 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Wed, 18 Feb 2009 19:08:55 -0600 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> Message-ID: Here is a VERY down and dirty example of how to use a collection for this Rocky: Dim CommandTranslations as Collection Dim rs as Recordset Dim strSQL as string Set CommandTranslations=New Collection Set rs=new ADODB.Recordset strSQL="SELECT CommandName, Language, Translation FROM tblCommandTranslations" rs.open strsql,currentproject.connection,adopenkeyset,adlockreadonly if rs.eof=false then rs.movefirst do until rs.eof=true CommandTranslations.Add rs.fields(2).value,rs.fields(0).value & _ ":" & rs.fields(1).value Rs.movenext Loop Rs.close Set rs=nothing (I hope the syntax for all that is right, I wrote it out just in this email...) Once this is done, you now have CommandTranslations as a collection of your commands in their proper language. I am assuming you have a table with a 'commandname' (such as a control name), 'Language', and 'Translation'. So to use this collection, you would simply do this: Dim strLanguage As String Dim ctrl strLanguage="English" 'or whatever you use to determine the language for each ctrl in me.Controls ctrl.Caption=CommandTranslations(ctrl.Name & ":" & strLanguage) next Now, to give a little explanation as to what we did here.... A collection has two ways of indexing. An Integer position (and collections are 1 based (ie, SomeCollection(1) is the first object, instead of 0)) and a string 'custom' key. You also don't even need a key to 'run through' a collection (you can use the for each x in xCollection method). The custom key has to be unique. But it's GREAT for finding information quickly! So we created a custom key by putting the command name and the language together (joined with a semicolong). Their should only be one of each command name, and by putting the language with it, they should all be unique. And Walla, an instance retrieval of any command with it's language. Now, personally, I would recommend that you make a Global Class to handle this. Put in some errorhandling in case it runs into a control that doesn't have a translation...etc. But the above is the shotgun method! Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 18, 2009 6:11 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? Collection, eh? Hmm....back to the ADH! Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From rockysmolin at bchacc.com Wed Feb 18 19:31:05 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 18 Feb 2009 17:31:05 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> Message-ID: Thanks - going to take a close look at this tomorrow. Off to band practice tonight. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Wednesday, February 18, 2009 5:09 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Here is a VERY down and dirty example of how to use a collection for this Rocky: Dim CommandTranslations as Collection Dim rs as Recordset Dim strSQL as string Set CommandTranslations=New Collection Set rs=new ADODB.Recordset strSQL="SELECT CommandName, Language, Translation FROM tblCommandTranslations" rs.open strsql,currentproject.connection,adopenkeyset,adlockreadonly if rs.eof=false then rs.movefirst do until rs.eof=true CommandTranslations.Add rs.fields(2).value,rs.fields(0).value & _ ":" & rs.fields(1).value Rs.movenext Loop Rs.close Set rs=nothing (I hope the syntax for all that is right, I wrote it out just in this email...) Once this is done, you now have CommandTranslations as a collection of your commands in their proper language. I am assuming you have a table with a 'commandname' (such as a control name), 'Language', and 'Translation'. So to use this collection, you would simply do this: Dim strLanguage As String Dim ctrl strLanguage="English" 'or whatever you use to determine the language for each ctrl in me.Controls ctrl.Caption=CommandTranslations(ctrl.Name & ":" & strLanguage) next Now, to give a little explanation as to what we did here.... A collection has two ways of indexing. An Integer position (and collections are 1 based (ie, SomeCollection(1) is the first object, instead of 0)) and a string 'custom' key. You also don't even need a key to 'run through' a collection (you can use the for each x in xCollection method). The custom key has to be unique. But it's GREAT for finding information quickly! So we created a custom key by putting the command name and the language together (joined with a semicolong). Their should only be one of each command name, and by putting the language with it, they should all be unique. And Walla, an instance retrieval of any command with it's language. Now, personally, I would recommend that you make a Global Class to handle this. Put in some errorhandling in case it runs into a control that doesn't have a translation...etc. But the above is the shotgun method! Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 18, 2009 6:11 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? Collection, eh? Hmm....back to the ADH! Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Wed Feb 18 19:45:33 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 18 Feb 2009 20:45:33 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <499ca1fe.0506d00a.6d1a.7fbc@mx.google.com> Message-ID: <499CB9BD.7060805@colbyconsulting.com> Does this imply a table structure of: TR_ID Auto TR_CtlName Text TR_L1 text (or memo?) for language 1 TR_L2 text (or memo?) for language 2 Etc I would suggest that you add a form (or container) field. A control name is unique on a form, however it could be the same on different forms but have a different language string. By having a form field you could pull subsets of records based on the form name, then use the control name (now guaranteed to be unique), then obtain the language string. It appears from your email however that you already have this stuff set up, so you might be resistant to modifying how it works. If this is all just one big table with control names guaranteed to be unique then you could just stash it in one big collection. There is a problem however which is that classes get pretty slow as they get large. If you get up past 10,000 strings (I don't know the exact point) it would bog back down. If you broke it down into controls on a form, then you would ensure that the total strings in any given collection is pretty small. Again I would build a class for all the code and the collection to load one form. then a supervisor class to hold instances of this form class keyed on form name. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Max: > > That would work except the table driven approach is so much more easier. > Easy to add a language (got French and Spanish now in addition to > traditional and simplified Chinese), too, or make a change to a translation. > To add a language I just add a column for that language to the Control and > Messages tables and send them to the translator. Add that language to the > language selector combo on the Preferences form, and walla! Another > language. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com From bheid at sc.rr.com Wed Feb 18 21:21:01 2009 From: bheid at sc.rr.com (Bobby Heid) Date: Wed, 18 Feb 2009 22:21:01 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> Message-ID: <003401c99241$1756bde0$460439a0$@rr.com> Rocky, I would also recommend that you try out collections as people suggested earlier. But I would also try an array to compare the speeds of lookups based upon how many items you have. For the array approach, if the items are sorted, and there are over 100 items, I'd recommend searching using a binary search - very fast. You could even use an array of structures. I would do up a little test module to test using a collection and an array. Make sure you search for stuff that may be near the top, middle, and the bottom. Thanks, Bobby -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 18, 2009 5:57 PM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Find First in an Array? Dear List: I have an app set up for multiple languages. The translations are pulled from a table at the time the form or report is opened by cycling through the controls (labels and button captions) and getting the appropriate translation. To make the thing run faster (there's a noticeable translation delay), I'm thinking of loading these translations into an array in memory and fetching the translation from the array. However, AFAIK, there's no equivalent to a FindFirst in an array like there is in a recordset. So, is there a better way to find the right translation in the array short of going through the array in sequence for each item to be translated? MTIA for any ideas, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Wed Feb 18 22:55:32 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 18 Feb 2009 23:55:32 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <003401c99241$1756bde0$460439a0$@rr.com> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <003401c99241$1756bde0$460439a0$@rr.com> Message-ID: <499CE644.5050502@colbyconsulting.com> From experience I would estimate that using a class / collection system, the entire setup of a complex form as it loads would be well under 50 ms once the data is in the cache. I am not an array kind of guy so of course I am biased, but a class / collection system would be extremely easy to build and maintain. I never liked arrays because of the programming required. "Searching" an array is a VBA program. Indexing into a keyed collection is no code and behind the scenes is all low level language (fast). I am willing to do the class system if for no other reason than to add to the class discussion. If anyone wants to do it with an array we can compare results. It should be fun. John W. Colby www.ColbyConsulting.com Bobby Heid wrote: > Rocky, > > I would also recommend that you try out collections as people suggested > earlier. But I would also try an array to compare the speeds of lookups > based upon how many items you have. For the array approach, if the items > are sorted, and there are over 100 items, I'd recommend searching using a > binary search - very fast. You could even use an array of structures. > > I would do up a little test module to test using a collection and an array. > Make sure you search for stuff that may be near the top, middle, and the > bottom. > > Thanks, > Bobby From rockysmolin at bchacc.com Thu Feb 19 00:09:33 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 18 Feb 2009 22:09:33 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: <003401c99241$1756bde0$460439a0$@rr.com> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <003401c99241$1756bde0$460439a0$@rr.com> Message-ID: <02FD063F5E5A45D19AA1B917C45CD508@HAL9005> I'm wondering if an array or collection will be noticeably faster than a recordset since there are about 2500 records in the controls table and so it's probably all in memory already. The fields are not indexed - so I'll bet I could get a little boost in performance by indexing the fields I search on. OTOH, it's a good opportunity to learn something about classes. I'll post the table layout tomorrow. But I think to be fair to John and anyone else who wants to help, I should go back to all those saved emails on the classes class and start from the beginning. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bobby Heid Sent: Wednesday, February 18, 2009 7:21 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? Rocky, I would also recommend that you try out collections as people suggested earlier. But I would also try an array to compare the speeds of lookups based upon how many items you have. For the array approach, if the items are sorted, and there are over 100 items, I'd recommend searching using a binary search - very fast. You could even use an array of structures. I would do up a little test module to test using a collection and an array. Make sure you search for stuff that may be near the top, middle, and the bottom. Thanks, Bobby -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 18, 2009 5:57 PM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Find First in an Array? Dear List: I have an app set up for multiple languages. The translations are pulled from a table at the time the form or report is opened by cycling through the controls (labels and button captions) and getting the appropriate translation. To make the thing run faster (there's a noticeable translation delay), I'm thinking of loading these translations into an array in memory and fetching the translation from the array. However, AFAIK, there's no equivalent to a FindFirst in an array like there is in a recordset. So, is there a better way to find the right translation in the array short of going through the array in sequence for each item to be translated? MTIA for any ideas, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Thu Feb 19 00:57:05 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 18 Feb 2009 22:57:05 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: <499CB9BD.7060805@colbyconsulting.com> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <499ca1fe.0506d00a.6d1a.7fbc@mx.google.com> <499CB9BD.7060805@colbyconsulting.com> Message-ID: <8255763CD64848148125E43CA2B62467@HAL9005> John: The table layout is: fldLanguageID Autonumber fldLanguageForm Text Name of the form that the control is on fldLanguageControl Text Name of the control fldLanguageControlType Text Not Used fldLanguageEnglish Text fldLanguageChineseComplex Text fldLanguageChineseSimple Text fldLanguageSpanish Text fldLanguageFrench Text In the translate routine I use: Set frm = Forms(argForm) For Each ctl In frm rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and fldLanguageControl = '" _ & ctl.Name & "'" Where argForm is the form name passed to the function. So I think I might get a big boost in response time by indexing fldLanguageForm and fldLanguageControl. There are only about 2500 records in the table so I'm thinking that the whole recordset is probably in memory anyway. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 18, 2009 5:46 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Does this imply a table structure of: TR_ID Auto TR_CtlName Text TR_L1 text (or memo?) for language 1 TR_L2 text (or memo?) for language 2 Etc I would suggest that you add a form (or container) field. A control name is unique on a form, however it could be the same on different forms but have a different language string. By having a form field you could pull subsets of records based on the form name, then use the control name (now guaranteed to be unique), then obtain the language string. It appears from your email however that you already have this stuff set up, so you might be resistant to modifying how it works. If this is all just one big table with control names guaranteed to be unique then you could just stash it in one big collection. There is a problem however which is that classes get pretty slow as they get large. If you get up past 10,000 strings (I don't know the exact point) it would bog back down. If you broke it down into controls on a form, then you would ensure that the total strings in any given collection is pretty small. Again I would build a class for all the code and the collection to load one form. then a supervisor class to hold instances of this form class keyed on form name. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Max: > > That would work except the table driven approach is so much more easier. > Easy to add a language (got French and Spanish now in addition to > traditional and simplified Chinese), too, or make a change to a translation. > To add a language I just add a column for that language to the Control > and Messages tables and send them to the translator. Add that > language to the language selector combo on the Preferences form, and > walla! Another language. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Thu Feb 19 01:01:43 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 18 Feb 2009 23:01:43 -0800 Subject: [AccessD] Find First in an Array? References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <499ca1fe.0506d00a.6d1a.7fbc@mx.google.com> <499CB9BD.7060805@colbyconsulting.com> Message-ID: <3B73E0C6477A40DEA9D6E3D8F0A31E49@HAL9005> Oops, just checked - those fields are indexed. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: Rocky Smolin at Beach Access Software [mailto:rockysmolin at bchacc.com] Sent: Wednesday, February 18, 2009 10:57 PM To: 'Access Developers discussion and problem solving' Subject: RE: [AccessD] Find First in an Array? John: The table layout is: fldLanguageID Autonumber fldLanguageForm Text Name of the form that the control is on fldLanguageControl Text Name of the control fldLanguageControlType Text Not Used fldLanguageEnglish Text fldLanguageChineseComplex Text fldLanguageChineseSimple Text fldLanguageSpanish Text fldLanguageFrench Text In the translate routine I use: Set frm = Forms(argForm) For Each ctl In frm rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and fldLanguageControl = '" _ & ctl.Name & "'" Where argForm is the form name passed to the function. So I think I might get a big boost in response time by indexing fldLanguageForm and fldLanguageControl. There are only about 2500 records in the table so I'm thinking that the whole recordset is probably in memory anyway. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 18, 2009 5:46 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Does this imply a table structure of: TR_ID Auto TR_CtlName Text TR_L1 text (or memo?) for language 1 TR_L2 text (or memo?) for language 2 Etc I would suggest that you add a form (or container) field. A control name is unique on a form, however it could be the same on different forms but have a different language string. By having a form field you could pull subsets of records based on the form name, then use the control name (now guaranteed to be unique), then obtain the language string. It appears from your email however that you already have this stuff set up, so you might be resistant to modifying how it works. If this is all just one big table with control names guaranteed to be unique then you could just stash it in one big collection. There is a problem however which is that classes get pretty slow as they get large. If you get up past 10,000 strings (I don't know the exact point) it would bog back down. If you broke it down into controls on a form, then you would ensure that the total strings in any given collection is pretty small. Again I would build a class for all the code and the collection to load one form. then a supervisor class to hold instances of this form class keyed on form name. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Max: > > That would work except the table driven approach is so much more easier. > Easy to add a language (got French and Spanish now in addition to > traditional and simplified Chinese), too, or make a change to a translation. > To add a language I just add a column for that language to the Control > and Messages tables and send them to the translator. Add that > language to the language selector combo on the Preferences form, and > walla! Another language. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Thu Feb 19 01:52:14 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 19 Feb 2009 07:52:14 -0000 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <499ca1fe.0506d00a.6d1a.7fbc@mx.google.com> Message-ID: <499d0fb5.0702d00a.4bd0.5fda@mx.google.com> Yeah, I know. Could get out of hand and un-maintainable very quickly. Ok, I'm back to the lateral thinking position ^-^ Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 19 February 2009 00:17 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? Max: That would work except the table driven approach is so much more easier. Easy to add a language (got French and Spanish now in addition to traditional and simplified Chinese), too, or make a change to a translation. To add a language I just add a column for that language to the Control and Messages tables and send them to the translator. Add that language to the language selector combo on the Preferences form, and walla! Another language. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Wednesday, February 18, 2009 4:04 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? Hey Rocky - something lateral again. If you group select the labels for the controls and copy-paste them then drag them down clear of the originals for the moment. Then group select the original labels and set the Tag to "English" - one entry sets all. Then group select the copied labels and set the Tag to "German" - again one entry sets all Then for each of the German Labels, write the words you want to display in German. Then drag the German Group up over the English Group so that they site exactly on top. Then group select the data control (ie, the text box) and in the Tag put "English-German" - this will match any of the languages. Then in the form.onLoad event put this code Option Compare Database Option Explicit 'Const conLanguage = "German" Const conLanguage = "English" ' these could be a system parameter instead of a constant = this is only for illustrating. Private Sub Form_Load() Dim ctl As Control For Each ctl In Me.Controls Debug.Print ctl.Name, ctl.Tag, InStr(ctl.Tag, conLanguage) > 0 - for testing ctl.Visible = InStr(ctl.Tag, conLanguage) > 0 Next ctl End Sub Swapping the conlanguage constant around will display only the labels that match the language but the data control matches both. On they form I just knocked up it was instantaneous. Repeat for Spanish, Canadian, etc. Lots of Labels (but only 1 set of data controls) - it is only the lables you need to change, right? Something different anyway! Max Ps. I have never done this before so I do not know if it is robust in a working environment, but should be. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 18 February 2009 22:57 To: 'Access Developers discussion and problem solving' Subject: [AccessD] Find First in an Array? Dear List: I have an app set up for multiple languages. The translations are pulled from a table at the time the form or report is opened by cycling through the controls (labels and button captions) and getting the appropriate translation. To make the thing run faster (there's a noticeable translation delay), I'm thinking of loading these translations into an array in memory and fetching the translation from the array. However, AFAIK, there's no equivalent to a FindFirst in an array like there is in a recordset. So, is there a better way to find the right translation in the array short of going through the array in sequence for each item to be translated? MTIA for any ideas, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Thu Feb 19 02:50:22 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 19 Feb 2009 08:50:22 +0000 Subject: [AccessD] Find First in an Array? In-Reply-To: <3B73E0C6477A40DEA9D6E3D8F0A31E49@HAL9005> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <499ca1fe.0506d00a.6d1a.7fbc@mx.google.com> <499CB9BD.7060805@colbyconsulting.com> <3B73E0C6477A40DEA9D6E3D8F0A31E49@HAL9005> Message-ID: Rocky, This is a simple coding solution. I have no idea of how fast it might be viz-a-viz the Collections/Class solutions, but might give a reasonable response time. Called on the form's onload Public Function pfTranslateLabels(frm As Form, strLanguage As String) ' EG:- strLanguage = "fldLanguageChineseComplex" Dim sql As String, rst As DAO.Recordset, ctl As Control, strFind As String sql = "Select * from tblLanguages Where fldLanguageForm ='" & frm.Name & "'" Set rst = CurrentDb.OpenRecordset(sql) If Not rst.EOF Then For Each ctl In frm.Controls If ctl.Type = acLabel Then strFind = "fldLanugageControl='" & ctl.Name & "'" rst.FindFirst strFind If Not rst.NoMatch Then ctl.Caption = rst(strLanguage) End If End If Next ctl End If exithere: Set rst = Nothing: Set ctl = Nothing Exit Function End Function If you have lots of forms doing this, you might want to open the RecordSet as a persistent one and not close it down after each form. Max On Thu, Feb 19, 2009 at 7:01 AM, Rocky Smolin at Beach Access Software < rockysmolin at bchacc.com> wrote: > > Oops, just checked - those fields are indexed. > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: Rocky Smolin at Beach Access Software [mailto:rockysmolin at bchacc.com > ] > Sent: Wednesday, February 18, 2009 10:57 PM > To: 'Access Developers discussion and problem solving' > Subject: RE: [AccessD] Find First in an Array? > > John: > > The table layout is: > > fldLanguageID Autonumber > fldLanguageForm Text Name of the form that the control is on > fldLanguageControl Text Name of the control > fldLanguageControlType Text Not Used > fldLanguageEnglish Text > fldLanguageChineseComplex Text > fldLanguageChineseSimple Text > fldLanguageSpanish Text > fldLanguageFrench Text > > In the translate routine I use: > > Set frm = Forms(argForm) > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Where argForm is the form name passed to the function. So I think I might > get a big boost in response time by indexing fldLanguageForm and > fldLanguageControl. > > There are only about 2500 records in the table so I'm thinking that the > whole recordset is probably in memory anyway. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 18, 2009 5:46 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Does this imply a table structure of: > > TR_ID Auto > TR_CtlName Text > TR_L1 text (or memo?) for language 1 > TR_L2 text (or memo?) for language 2 > Etc > > I would suggest that you add a form (or container) field. A control name > is > unique on a form, however it could be the same on different forms but have > a > different language string. By having a form field you could pull subsets > of > records based on the form name, then use the control name (now guaranteed > to > be unique), then obtain the language string. > > It appears from your email however that you already have this stuff set up, > so you might be resistant to modifying how it works. > > If this is all just one big table with control names guaranteed to be > unique > then you could just stash it in one big collection. There is a problem > however which is that classes get pretty slow as they get large. If you > get > up past 10,000 strings (I don't know the exact point) it would bog back > down. If you broke it down into controls on a form, then you would ensure > that the total strings in any given collection is pretty small. > > Again I would build a class for all the code and the collection to load one > form. then a supervisor class to hold instances of this form class keyed > on > form name. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: > > Max: > > > > That would work except the table driven approach is so much more easier. > > Easy to add a language (got French and Spanish now in addition to > > traditional and simplified Chinese), too, or make a change to a > translation. > > To add a language I just add a column for that language to the Control > > and Messages tables and send them to the translator. Add that > > language to the language selector combo on the Preferences form, and > > walla! Another language. > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From Gustav at cactus.dk Thu Feb 19 04:45:25 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Thu, 19 Feb 2009 11:45:25 +0100 Subject: [AccessD] Find First in an Array? Message-ID: Hi Rocky Do we spot a denormalized table structure here? /gustav >>> rockysmolin at bchacc.com 19-02-2009 07:57 >>> John: The table layout is: fldLanguageID Autonumber fldLanguageForm Text Name of the form that the control is on fldLanguageControl Text Name of the control fldLanguageControlType Text Not Used fldLanguageEnglish Text fldLanguageChineseComplex Text fldLanguageChineseSimple Text fldLanguageSpanish Text fldLanguageFrench Text In the translate routine I use: Set frm = Forms(argForm) For Each ctl In frm rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and fldLanguageControl = '" _ & ctl.Name & "'" Where argForm is the form name passed to the function. So I think I might get a big boost in response time by indexing fldLanguageForm and fldLanguageControl. There are only about 2500 records in the table so I'm thinking that the whole recordset is probably in memory anyway. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 18, 2009 5:46 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Does this imply a table structure of: TR_ID Auto TR_CtlName Text TR_L1 text (or memo?) for language 1 TR_L2 text (or memo?) for language 2 Etc I would suggest that you add a form (or container) field. A control name is unique on a form, however it could be the same on different forms but have a different language string. By having a form field you could pull subsets of records based on the form name, then use the control name (now guaranteed to be unique), then obtain the language string. It appears from your email however that you already have this stuff set up, so you might be resistant to modifying how it works. If this is all just one big table with control names guaranteed to be unique then you could just stash it in one big collection. There is a problem however which is that classes get pretty slow as they get large. If you get up past 10,000 strings (I don't know the exact point) it would bog back down. If you broke it down into controls on a form, then you would ensure that the total strings in any given collection is pretty small. Again I would build a class for all the code and the collection to load one form. then a supervisor class to hold instances of this form class keyed on form name. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Max: > > That would work except the table driven approach is so much more easier. > Easy to add a language (got French and Spanish now in addition to > traditional and simplified Chinese), too, or make a change to a translation. > To add a language I just add a column for that language to the Control > and Messages tables and send them to the translator. Add that > language to the language selector combo on the Preferences form, and > walla! Another language. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com From mcp2004 at mail.ru Thu Feb 19 05:01:55 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Thu, 19 Feb 2009 14:01:55 +0300 Subject: [AccessD] =?koi8-r?b?RmluZCBGaXJzdCBpbiBhbiBBcnJheT8=?= In-Reply-To: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> Message-ID: Hi Rocky, Good old DAO's .Seek should do the trick. You'll have to create dedicated compound index for it. -- Shamil P.S. .Seek code sample for the Northwind's Products table and one field index named ProductName: Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Products", dbOpenTable) With rst .Index = "ProductName" .Seek "=", "Aniseed Syrup" If (.NoMatch) Then Debug.Print "Found" Else Debug.Print "Found" End If End With P.P.S. .Seek code sample for Northwind db and Customers table with additional compound index named Contact created using ContactTitle and ContactName fields: 'Prerequisites: ' Compound index named 'Contact' created ' for ContactTitle and ContactName fields ' of Customers table Dim dbs As DAO.Database Dim rst As DAO.Recordset Dim sql As String Dim avar As Variant Dim i As Long Dim rowCount As Long Dim foundCount As Long Dim notFoundCount As Long Dim cyclesCount As Long Dim k As Integer cyclesCount = 1000 Set dbs = CurrentDb sql = "select CompanyName, ContactName from Customers" Set rst = dbs.OpenRecordset(sql, dbOpenDynaset) rowCount = dbs.TableDefs("Customers").RecordCount avar = rst.GetRows(rowCount) Debug.Print "Started at = " & Now Debug.Print "Row count = " & rowCount foundCount = 0 notFoundCount = 0 Set rst = dbs.OpenRecordset("Customers", dbOpenTable) For k = 1 To cyclesCount Step 1 For i = LBound(avar, 2) To UBound(avar, 2) Step 1 With rst .Index = "Contact" .Seek "=", avar(0, i), avar(1, i) If (.NoMatch) Then foundCount = foundCount + 1 Else notFoundCount = notFoundCount + 1 End If End With Next i Next k rst.Close Set rst = Nothing Debug.Print "Found = " & foundCount Debug.Print "Not found = " & notFoundCount Debug.Print "Finished at = " & Now ' ' test results: 'Started at = 19.02.2009 13:54:18 'Row count = 91 'found = 91000 'Not found = 0 'Finished at = 19.02.2009 13:54:19 From mcp2004 at mail.ru Thu Feb 19 05:32:33 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Thu, 19 Feb 2009 14:32:33 +0300 Subject: [AccessD] =?koi8-r?b?RmluZCBGaXJzdCBpbiBhbiBBcnJheT8=?= In-Reply-To: References: Message-ID: Here are corrected DAO's .Seek code samples (sorry, previous version has had a couple of bugs): Public Function testSeek1() Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Products", dbOpenTable) With rst .Index = "ProductName" .Seek "=", "Aniseed Syrup" If (.NoMatch) Then Debug.Print "Not Found" Else Debug.Print "Found" End If End With End Function Public Function testSeek2() 'Prepequisites: ' Compound index named 'Contact' created ' for ContactTitle and ContactName fields ' of Customers table Dim dbs As DAO.Database Dim rst As DAO.Recordset Dim sql As String Dim avar As Variant Dim i As Long Dim rowCount As Long Dim foundCount As Long Dim notFoundCount As Long Dim cyclesCount As Long Dim k As Integer cyclesCount = 1000 Set dbs = CurrentDb sql = "select ContactTitle, ContactName from Customers" Set rst = dbs.OpenRecordset(sql, dbOpenDynaset) rowCount = dbs.TableDefs("Customers").RecordCount avar = rst.GetRows(rowCount) Debug.Print "Started at = " & Now Debug.Print "Row count = " & rowCount foundCount = 0 notFoundCount = 0 Set rst = dbs.OpenRecordset("Customers", dbOpenTable) For k = 1 To cyclesCount Step 1 For i = LBound(avar, 2) To UBound(avar, 2) Step 1 With rst .Index = "Contact" .Seek "=", avar(0, i), avar(1, i) If (.NoMatch) Then notFoundCount = notFoundCount + 1 Else foundCount = foundCount + 1 End If End With Next i Next k rst.Close Set rst = Nothing Debug.Print "Found = " & foundCount Debug.Print "Not found = " & notFoundCount Debug.Print "Finished at = " & Now ' ' test results: 'Started at = 19.02.2009 13:54:18 'Row count = 91 'found = 91000 'Not found = 0 'Finished at = 19.02.2009 13:54:19 End Function -----Original Message----- From: Salakhetdinov Shamil To: Access Developers discussion and problem solving Date: Thu, 19 Feb 2009 14:01:55 +0300 Subject: Re: [AccessD] Find First in an Array? > > Hi Rocky, > > Good old DAO's .Seek should do the trick. > You'll have to create dedicated compound index for it. > > -- > Shamil > <<< tail trimmed>>> From jwcolby at colbyconsulting.com Thu Feb 19 06:27:58 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 19 Feb 2009 07:27:58 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: References: Message-ID: <499D504E.8080007@colbyconsulting.com> > Do we spot a denormalized table structure here? LOL, now Gustav... John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi Rocky > > Do we spot a denormalized table structure here? > > /gustav > >>>> rockysmolin at bchacc.com 19-02-2009 07:57 >>> > John: > > The table layout is: > > fldLanguageID Autonumber > fldLanguageForm Text Name of the form that the control is on > fldLanguageControl Text Name of the control > fldLanguageControlType Text Not Used > fldLanguageEnglish Text > fldLanguageChineseComplex Text > fldLanguageChineseSimple Text > fldLanguageSpanish Text > fldLanguageFrench Text > > In the translate routine I use: > > Set frm = Forms(argForm) > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Where argForm is the form name passed to the function. So I think I might > get a big boost in response time by indexing fldLanguageForm and > fldLanguageControl. > > There are only about 2500 records in the table so I'm thinking that the > whole recordset is probably in memory anyway. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 18, 2009 5:46 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Does this imply a table structure of: > > TR_ID Auto > TR_CtlName Text > TR_L1 text (or memo?) for language 1 > TR_L2 text (or memo?) for language 2 > Etc > > I would suggest that you add a form (or container) field. A control name is > unique on a form, however it could be the same on different forms but have a > different language string. By having a form field you could pull subsets of > records based on the form name, then use the control name (now guaranteed to > be unique), then obtain the language string. > > It appears from your email however that you already have this stuff set up, > so you might be resistant to modifying how it works. > > If this is all just one big table with control names guaranteed to be unique > then you could just stash it in one big collection. There is a problem > however which is that classes get pretty slow as they get large. If you get > up past 10,000 strings (I don't know the exact point) it would bog back > down. If you broke it down into controls on a form, then you would ensure > that the total strings in any given collection is pretty small. > > Again I would build a class for all the code and the collection to load one > form. then a supervisor class to hold instances of this form class keyed on > form name. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: >> Max: >> >> That would work except the table driven approach is so much more easier. >> Easy to add a language (got French and Spanish now in addition to >> traditional and simplified Chinese), too, or make a change to a > translation. >> To add a language I just add a column for that language to the Control >> and Messages tables and send them to the translator. Add that >> language to the language selector combo on the Preferences form, and >> walla! Another language. >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com > > > From jwcolby at colbyconsulting.com Thu Feb 19 06:48:34 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 19 Feb 2009 07:48:34 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <02FD063F5E5A45D19AA1B917C45CD508@HAL9005> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <003401c99241$1756bde0$460439a0$@rr.com> <02FD063F5E5A45D19AA1B917C45CD508@HAL9005> Message-ID: <499D5522.4050605@colbyconsulting.com> Rocky, A table may or may not be "noticeably slower" however you have already said that you had issues. Once you cache the data, getting data out of a cache structure will be 100 to 1000 times faster. Remember that a table is NOT cached (though a disconnected ADO recordset is I guess). DAO requires a trip to the disk OVER THE NETWORK (if any). As for going back to the beginning, please do but do not let it stop you from implementing what I will build for you. Just remember that a class object is just like any other object in Access (cbo, recordset, query) it is just a tool that anyone can use once built. I will do the building for this instance. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > I'm wondering if an array or collection will be noticeably faster than a > recordset since there are about 2500 records in the controls table and so > it's probably all in memory already. The fields are not indexed - so I'll > bet I could get a little boost in performance by indexing the fields I > search on. > > OTOH, it's a good opportunity to learn something about classes. I'll post > the table layout tomorrow. But I think to be fair to John and anyone else > who wants to help, I should go back to all those saved emails on the classes > class and start from the beginning. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bobby Heid > Sent: Wednesday, February 18, 2009 7:21 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > Rocky, > > I would also recommend that you try out collections as people suggested > earlier. But I would also try an array to compare the speeds of lookups > based upon how many items you have. For the array approach, if the items > are sorted, and there are over 100 items, I'd recommend searching using a > binary search - very fast. You could even use an array of structures. > > I would do up a little test module to test using a collection and an array. > Make sure you search for stuff that may be near the top, middle, and the > bottom. > > Thanks, > Bobby > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: Wednesday, February 18, 2009 5:57 PM > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Find First in an Array? > > > Dear List: > > I have an app set up for multiple languages. The translations are pulled > from a table at the time the form or report is opened by cycling through the > controls (labels and button captions) and getting the appropriate > translation. To make the thing run faster (there's a noticeable translation > delay), I'm thinking of loading these translations into an array in memory > and fetching the translation from the array. However, AFAIK, there's no > equivalent to a FindFirst in an array like there is in a recordset. So, is > there a better way to find the right translation in the array short of going > through the array in sequence for each item to be translated? > > > MTIA for any ideas, > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Thu Feb 19 07:18:56 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 19 Feb 2009 08:18:56 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <8255763CD64848148125E43CA2B62467@HAL9005> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <499ca1fe.0506d00a.6d1a.7fbc@mx.google.com> <499CB9BD.7060805@colbyconsulting.com> <8255763CD64848148125E43CA2B62467@HAL9005> Message-ID: <499D5C40.30207@colbyconsulting.com> Rocky, Is the objective to have all languages loaded into the cache, or to load one language into the cache, and simply reload the cache if the user selects a different language? John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > John: > > The table layout is: > > fldLanguageID Autonumber > fldLanguageForm Text Name of the form that the control is on > fldLanguageControl Text Name of the control > fldLanguageControlType Text Not Used > fldLanguageEnglish Text > fldLanguageChineseComplex Text > fldLanguageChineseSimple Text > fldLanguageSpanish Text > fldLanguageFrench Text > > In the translate routine I use: > > Set frm = Forms(argForm) > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Where argForm is the form name passed to the function. So I think I might > get a big boost in response time by indexing fldLanguageForm and > fldLanguageControl. > > There are only about 2500 records in the table so I'm thinking that the > whole recordset is probably in memory anyway. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 18, 2009 5:46 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Does this imply a table structure of: > > TR_ID Auto > TR_CtlName Text > TR_L1 text (or memo?) for language 1 > TR_L2 text (or memo?) for language 2 > Etc > > I would suggest that you add a form (or container) field. A control name is > unique on a form, however it could be the same on different forms but have a > different language string. By having a form field you could pull subsets of > records based on the form name, then use the control name (now guaranteed to > be unique), then obtain the language string. > > It appears from your email however that you already have this stuff set up, > so you might be resistant to modifying how it works. > > If this is all just one big table with control names guaranteed to be unique > then you could just stash it in one big collection. There is a problem > however which is that classes get pretty slow as they get large. If you get > up past 10,000 strings (I don't know the exact point) it would bog back > down. If you broke it down into controls on a form, then you would ensure > that the total strings in any given collection is pretty small. > > Again I would build a class for all the code and the collection to load one > form. then a supervisor class to hold instances of this form class keyed on > form name. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: >> Max: >> >> That would work except the table driven approach is so much more easier. >> Easy to add a language (got French and Spanish now in addition to >> traditional and simplified Chinese), too, or make a change to a > translation. >> To add a language I just add a column for that language to the Control >> and Messages tables and send them to the translator. Add that >> language to the language selector combo on the Preferences form, and >> walla! Another language. >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From rockysmolin at bchacc.com Thu Feb 19 07:52:28 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Thu, 19 Feb 2009 05:52:28 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005><499ca1fe.0506d00a.6d1a.7fbc@mx.google.com><499CB9BD.7060805@colbyconsulting.com><3B73E0C6477A40DEA9D6E3D8F0A31E49@HAL9005> Message-ID: <2FB419230AE04F0CBD50ECA64D648872@HAL9005> Max: That's pretty much what I'm doing now, except the language choice is in a global variable. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Thursday, February 19, 2009 12:50 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Rocky, This is a simple coding solution. I have no idea of how fast it might be viz-a-viz the Collections/Class solutions, but might give a reasonable response time. Called on the form's onload Public Function pfTranslateLabels(frm As Form, strLanguage As String) ' EG:- strLanguage = "fldLanguageChineseComplex" Dim sql As String, rst As DAO.Recordset, ctl As Control, strFind As String sql = "Select * from tblLanguages Where fldLanguageForm ='" & frm.Name & "'" Set rst = CurrentDb.OpenRecordset(sql) If Not rst.EOF Then For Each ctl In frm.Controls If ctl.Type = acLabel Then strFind = "fldLanugageControl='" & ctl.Name & "'" rst.FindFirst strFind If Not rst.NoMatch Then ctl.Caption = rst(strLanguage) End If End If Next ctl End If exithere: Set rst = Nothing: Set ctl = Nothing Exit Function End Function If you have lots of forms doing this, you might want to open the RecordSet as a persistent one and not close it down after each form. Max On Thu, Feb 19, 2009 at 7:01 AM, Rocky Smolin at Beach Access Software < rockysmolin at bchacc.com> wrote: > > Oops, just checked - those fields are indexed. > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: Rocky Smolin at Beach Access Software > [mailto:rockysmolin at bchacc.com ] > Sent: Wednesday, February 18, 2009 10:57 PM > To: 'Access Developers discussion and problem solving' > Subject: RE: [AccessD] Find First in an Array? > > John: > > The table layout is: > > fldLanguageID Autonumber > fldLanguageForm Text Name of the form that the control is on > fldLanguageControl Text Name of the control > fldLanguageControlType Text Not Used > fldLanguageEnglish Text > fldLanguageChineseComplex Text > fldLanguageChineseSimple Text > fldLanguageSpanish Text > fldLanguageFrench Text > > In the translate routine I use: > > Set frm = Forms(argForm) > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Where argForm is the form name passed to the function. So I think I > might get a big boost in response time by indexing fldLanguageForm and > fldLanguageControl. > > There are only about 2500 records in the table so I'm thinking that > the whole recordset is probably in memory anyway. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 18, 2009 5:46 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Does this imply a table structure of: > > TR_ID Auto > TR_CtlName Text > TR_L1 text (or memo?) for language 1 > TR_L2 text (or memo?) for language 2 > Etc > > I would suggest that you add a form (or container) field. A control > name is unique on a form, however it could be the same on different > forms but have a different language string. By having a form field > you could pull subsets of records based on the form name, then use the > control name (now guaranteed to be unique), then obtain the language > string. > > It appears from your email however that you already have this stuff > set up, so you might be resistant to modifying how it works. > > If this is all just one big table with control names guaranteed to be > unique then you could just stash it in one big collection. There is a > problem however which is that classes get pretty slow as they get > large. If you get up past 10,000 strings (I don't know the exact > point) it would bog back down. If you broke it down into controls on > a form, then you would ensure that the total strings in any given > collection is pretty small. > > Again I would build a class for all the code and the collection to > load one form. then a supervisor class to hold instances of this form > class keyed on form name. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: > > Max: > > > > That would work except the table driven approach is so much more easier. > > Easy to add a language (got French and Spanish now in addition to > > traditional and simplified Chinese), too, or make a change to a > translation. > > To add a language I just add a column for that language to the > > Control and Messages tables and send them to the translator. Add > > that language to the language selector combo on the Preferences > > form, and walla! Another language. > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Thu Feb 19 07:54:56 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Thu, 19 Feb 2009 05:54:56 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: References: Message-ID: <7263FA3D8706447A86959920A35F789B@HAL9005> Yes. The Form should be a FK to a Forms table. Control Type should by a FK to a control type table. The control types are actually numeric. But they're not used anyway. I put them in there initially because I thought knowing the control type would be useful. But it turned out not to be. The other fields are unique. But there are only 2500 records - will never be significantly more. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Thursday, February 19, 2009 2:45 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Find First in an Array? Hi Rocky Do we spot a denormalized table structure here? /gustav >>> rockysmolin at bchacc.com 19-02-2009 07:57 >>> John: The table layout is: fldLanguageID Autonumber fldLanguageForm Text Name of the form that the control is on fldLanguageControl Text Name of the control fldLanguageControlType Text Not Used fldLanguageEnglish Text fldLanguageChineseComplex Text fldLanguageChineseSimple Text fldLanguageSpanish Text fldLanguageFrench Text In the translate routine I use: Set frm = Forms(argForm) For Each ctl In frm rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and fldLanguageControl = '" _ & ctl.Name & "'" Where argForm is the form name passed to the function. So I think I might get a big boost in response time by indexing fldLanguageForm and fldLanguageControl. There are only about 2500 records in the table so I'm thinking that the whole recordset is probably in memory anyway. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 18, 2009 5:46 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Does this imply a table structure of: TR_ID Auto TR_CtlName Text TR_L1 text (or memo?) for language 1 TR_L2 text (or memo?) for language 2 Etc I would suggest that you add a form (or container) field. A control name is unique on a form, however it could be the same on different forms but have a different language string. By having a form field you could pull subsets of records based on the form name, then use the control name (now guaranteed to be unique), then obtain the language string. It appears from your email however that you already have this stuff set up, so you might be resistant to modifying how it works. If this is all just one big table with control names guaranteed to be unique then you could just stash it in one big collection. There is a problem however which is that classes get pretty slow as they get large. If you get up past 10,000 strings (I don't know the exact point) it would bog back down. If you broke it down into controls on a form, then you would ensure that the total strings in any given collection is pretty small. Again I would build a class for all the code and the collection to load one form. then a supervisor class to hold instances of this form class keyed on form name. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Max: > > That would work except the table driven approach is so much more easier. > Easy to add a language (got French and Spanish now in addition to > traditional and simplified Chinese), too, or make a change to a translation. > To add a language I just add a column for that language to the Control > and Messages tables and send them to the translator. Add that > language to the language selector combo on the Preferences form, and > walla! Another language. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Thu Feb 19 07:59:48 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 19 Feb 2009 08:59:48 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <8255763CD64848148125E43CA2B62467@HAL9005> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <499ca1fe.0506d00a.6d1a.7fbc@mx.google.com> <499CB9BD.7060805@colbyconsulting.com> <8255763CD64848148125E43CA2B62467@HAL9005> Message-ID: <499D65D4.8070100@colbyconsulting.com> Rocky, I see nothing for dealing with things like tooltip etc. If you want to deal with that kind of thing, then you need to supply a property name where the translation string would be stored. I am assuming that at the moment all data goes into labels and therefore the string is placed into the Caption property? John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > John: > > The table layout is: > > fldLanguageID Autonumber > fldLanguageForm Text Name of the form that the control is on > fldLanguageControl Text Name of the control > fldLanguageControlType Text Not Used > fldLanguageEnglish Text > fldLanguageChineseComplex Text > fldLanguageChineseSimple Text > fldLanguageSpanish Text > fldLanguageFrench Text > > In the translate routine I use: > > Set frm = Forms(argForm) > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Where argForm is the form name passed to the function. So I think I might > get a big boost in response time by indexing fldLanguageForm and > fldLanguageControl. > > There are only about 2500 records in the table so I'm thinking that the > whole recordset is probably in memory anyway. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 18, 2009 5:46 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Does this imply a table structure of: > > TR_ID Auto > TR_CtlName Text > TR_L1 text (or memo?) for language 1 > TR_L2 text (or memo?) for language 2 > Etc > > I would suggest that you add a form (or container) field. A control name is > unique on a form, however it could be the same on different forms but have a > different language string. By having a form field you could pull subsets of > records based on the form name, then use the control name (now guaranteed to > be unique), then obtain the language string. > > It appears from your email however that you already have this stuff set up, > so you might be resistant to modifying how it works. > > If this is all just one big table with control names guaranteed to be unique > then you could just stash it in one big collection. There is a problem > however which is that classes get pretty slow as they get large. If you get > up past 10,000 strings (I don't know the exact point) it would bog back > down. If you broke it down into controls on a form, then you would ensure > that the total strings in any given collection is pretty small. > > Again I would build a class for all the code and the collection to load one > form. then a supervisor class to hold instances of this form class keyed on > form name. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: >> Max: >> >> That would work except the table driven approach is so much more easier. >> Easy to add a language (got French and Spanish now in addition to >> traditional and simplified Chinese), too, or make a change to a > translation. >> To add a language I just add a column for that language to the Control >> and Messages tables and send them to the translator. Add that >> language to the language selector combo on the Preferences form, and >> walla! Another language. >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From Gustav at cactus.dk Thu Feb 19 08:35:37 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Thu, 19 Feb 2009 15:35:37 +0100 Subject: [AccessD] Find First in an Array? Message-ID: Hi Rocky It was mostly the language fields I had in mind. You'll hit the 255 field limit: http://www.loc.gov/standards/iso639-2/langhome.html /gustav >>> rockysmolin at bchacc.com 19-02-2009 14:54 >>> Yes. The Form should be a FK to a Forms table. Control Type should by a FK to a control type table. The control types are actually numeric. But they're not used anyway. I put them in there initially because I thought knowing the control type would be useful. But it turned out not to be. The other fields are unique. But there are only 2500 records - will never be significantly more. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Thursday, February 19, 2009 2:45 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Find First in an Array? Hi Rocky Do we spot a denormalized table structure here? /gustav >>> rockysmolin at bchacc.com 19-02-2009 07:57 >>> John: The table layout is: fldLanguageID Autonumber fldLanguageForm Text Name of the form that the control is on fldLanguageControl Text Name of the control fldLanguageControlType Text Not Used fldLanguageEnglish Text fldLanguageChineseComplex Text fldLanguageChineseSimple Text fldLanguageSpanish Text fldLanguageFrench Text In the translate routine I use: Set frm = Forms(argForm) For Each ctl In frm rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and fldLanguageControl = '" _ & ctl.Name & "'" Where argForm is the form name passed to the function. So I think I might get a big boost in response time by indexing fldLanguageForm and fldLanguageControl. There are only about 2500 records in the table so I'm thinking that the whole recordset is probably in memory anyway. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 18, 2009 5:46 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Does this imply a table structure of: TR_ID Auto TR_CtlName Text TR_L1 text (or memo?) for language 1 TR_L2 text (or memo?) for language 2 Etc I would suggest that you add a form (or container) field. A control name is unique on a form, however it could be the same on different forms but have a different language string. By having a form field you could pull subsets of records based on the form name, then use the control name (now guaranteed to be unique), then obtain the language string. It appears from your email however that you already have this stuff set up, so you might be resistant to modifying how it works. If this is all just one big table with control names guaranteed to be unique then you could just stash it in one big collection. There is a problem however which is that classes get pretty slow as they get large. If you get up past 10,000 strings (I don't know the exact point) it would bog back down. If you broke it down into controls on a form, then you would ensure that the total strings in any given collection is pretty small. Again I would build a class for all the code and the collection to load one form. then a supervisor class to hold instances of this form class keyed on form name. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Max: > > That would work except the table driven approach is so much more easier. > Easy to add a language (got French and Spanish now in addition to > traditional and simplified Chinese), too, or make a change to a translation. > To add a language I just add a column for that language to the Control > and Messages tables and send them to the translator. Add that > language to the language selector combo on the Preferences form, and > walla! Another language. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com From rockysmolin at bchacc.com Thu Feb 19 08:38:11 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Thu, 19 Feb 2009 06:38:11 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: References: Message-ID: <1145E303F5C14E928A3D1F8C8F5F5570@HAL9005> Shamil! I forgot all about Seek. This is one of those rare occasions where I'm working with a non-linked table. But this table is in the front end - local to the user - so each user can have their own language. I would have to seek on two fields however - the form name and the control name. Should I make a concatenated field, then? Best, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Salakhetdinov Shamil Sent: Thursday, February 19, 2009 3:33 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Here are corrected DAO's .Seek code samples (sorry, previous version has had a couple of bugs): Public Function testSeek1() Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Products", dbOpenTable) With rst .Index = "ProductName" .Seek "=", "Aniseed Syrup" If (.NoMatch) Then Debug.Print "Not Found" Else Debug.Print "Found" End If End With End Function Public Function testSeek2() 'Prepequisites: ' Compound index named 'Contact' created ' for ContactTitle and ContactName fields ' of Customers table Dim dbs As DAO.Database Dim rst As DAO.Recordset Dim sql As String Dim avar As Variant Dim i As Long Dim rowCount As Long Dim foundCount As Long Dim notFoundCount As Long Dim cyclesCount As Long Dim k As Integer cyclesCount = 1000 Set dbs = CurrentDb sql = "select ContactTitle, ContactName from Customers" Set rst = dbs.OpenRecordset(sql, dbOpenDynaset) rowCount = dbs.TableDefs("Customers").RecordCount avar = rst.GetRows(rowCount) Debug.Print "Started at = " & Now Debug.Print "Row count = " & rowCount foundCount = 0 notFoundCount = 0 Set rst = dbs.OpenRecordset("Customers", dbOpenTable) For k = 1 To cyclesCount Step 1 For i = LBound(avar, 2) To UBound(avar, 2) Step 1 With rst .Index = "Contact" .Seek "=", avar(0, i), avar(1, i) If (.NoMatch) Then notFoundCount = notFoundCount + 1 Else foundCount = foundCount + 1 End If End With Next i Next k rst.Close Set rst = Nothing Debug.Print "Found = " & foundCount Debug.Print "Not found = " & notFoundCount Debug.Print "Finished at = " & Now ' ' test results: 'Started at = 19.02.2009 13:54:18 'Row count = 91 'found = 91000 'Not found = 0 'Finished at = 19.02.2009 13:54:19 End Function -----Original Message----- From: Salakhetdinov Shamil To: Access Developers discussion and problem solving Date: Thu, 19 Feb 2009 14:01:55 +0300 Subject: Re: [AccessD] Find First in an Array? > > Hi Rocky, > > Good old DAO's .Seek should do the trick. > You'll have to create dedicated compound index for it. > > -- > Shamil > <<< tail trimmed>>> -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Thu Feb 19 08:54:46 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Thu, 19 Feb 2009 06:54:46 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: <499D504E.8080007@colbyconsulting.com> References: <499D504E.8080007@colbyconsulting.com> Message-ID: <0BB23BD988884CF0B9080F0A08CAD06B@HAL9005> Why should my tables be any more normal than I am? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Thursday, February 19, 2009 4:28 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? > Do we spot a denormalized table structure here? LOL, now Gustav... John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi Rocky > > Do we spot a denormalized table structure here? > > /gustav > >>>> rockysmolin at bchacc.com 19-02-2009 07:57 >>> > John: > > The table layout is: > > fldLanguageID Autonumber > fldLanguageForm Text Name of the form that the control is on > fldLanguageControl Text Name of the control > fldLanguageControlType Text Not Used > fldLanguageEnglish Text > fldLanguageChineseComplex Text > fldLanguageChineseSimple Text > fldLanguageSpanish Text > fldLanguageFrench Text > > In the translate routine I use: > > Set frm = Forms(argForm) > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Where argForm is the form name passed to the function. So I think I > might get a big boost in response time by indexing fldLanguageForm and > fldLanguageControl. > > There are only about 2500 records in the table so I'm thinking that > the whole recordset is probably in memory anyway. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 18, 2009 5:46 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Does this imply a table structure of: > > TR_ID Auto > TR_CtlName Text > TR_L1 text (or memo?) for language 1 > TR_L2 text (or memo?) for language 2 > Etc > > I would suggest that you add a form (or container) field. A control > name is unique on a form, however it could be the same on different > forms but have a different language string. By having a form field > you could pull subsets of records based on the form name, then use the > control name (now guaranteed to be unique), then obtain the language string. > > It appears from your email however that you already have this stuff > set up, so you might be resistant to modifying how it works. > > If this is all just one big table with control names guaranteed to be > unique then you could just stash it in one big collection. There is a > problem however which is that classes get pretty slow as they get > large. If you get up past 10,000 strings (I don't know the exact > point) it would bog back down. If you broke it down into controls on > a form, then you would ensure that the total strings in any given collection is pretty small. > > Again I would build a class for all the code and the collection to > load one form. then a supervisor class to hold instances of this form > class keyed on form name. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: >> Max: >> >> That would work except the table driven approach is so much more easier. >> Easy to add a language (got French and Spanish now in addition to >> traditional and simplified Chinese), too, or make a change to a > translation. >> To add a language I just add a column for that language to the >> Control and Messages tables and send them to the translator. Add >> that language to the language selector combo on the Preferences form, >> and walla! Another language. >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com > > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Thu Feb 19 09:19:56 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Thu, 19 Feb 2009 16:19:56 +0100 Subject: [AccessD] Find First in an Array? Message-ID: Hi Rocky You will need a compound index on those two fields. The two fields would be FormName and ControlName. Then: strFormName = "frmSomeForm" strControlName = "ctlSomeControl" .Index = "FormName_ControlName" .Seek "=", strFormName, strControlName /gustav >>> rockysmolin at bchacc.com 19-02-2009 15:38 >>> Shamil! I forgot all about Seek. This is one of those rare occasions where I'm working with a non-linked table. But this table is in the front end - local to the user - so each user can have their own language. I would have to seek on two fields however - the form name and the control name. Should I make a concatenated field, then? From rockysmolin at bchacc.com Thu Feb 19 09:23:07 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Thu, 19 Feb 2009 07:23:07 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: <499D5522.4050605@colbyconsulting.com> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <003401c99241$1756bde0$460439a0$@rr.com><02FD063F5E5A45D19AA1B917C45CD508@HAL9005> <499D5522.4050605@colbyconsulting.com> Message-ID: <6ABF5A7DFD6F473FA591C8E59B4095C2@HAL9005> Fortunately this is a front end table so no going over the network. And I'm going to try Shamil's Seek approach - be a simple change. But you're right about it being faster in memory anyway. What I'm trying to do is stop the flashing and repainting. What I did yesterday is change the calls in the _Open event to: Echo False Scale the Form Translate the form Maximize the Form Echo On This seem to have had a real good effect on the forms. Also noticed that the first time I open a form I get one quick repaint (I'm using Chinese to test this because it using Unicode and seems to have a little more complexity) - the second time I open the form it's faster - almost like it was already translated even though I close the form on exit. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Thursday, February 19, 2009 4:49 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Rocky, A table may or may not be "noticeably slower" however you have already said that you had issues. Once you cache the data, getting data out of a cache structure will be 100 to 1000 times faster. Remember that a table is NOT cached (though a disconnected ADO recordset is I guess). DAO requires a trip to the disk OVER THE NETWORK (if any). As for going back to the beginning, please do but do not let it stop you from implementing what I will build for you. Just remember that a class object is just like any other object in Access (cbo, recordset, query) it is just a tool that anyone can use once built. I will do the building for this instance. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > I'm wondering if an array or collection will be noticeably faster than > a recordset since there are about 2500 records in the controls table > and so it's probably all in memory already. The fields are not > indexed - so I'll bet I could get a little boost in performance by > indexing the fields I search on. > > OTOH, it's a good opportunity to learn something about classes. I'll > post the table layout tomorrow. But I think to be fair to John and > anyone else who wants to help, I should go back to all those saved > emails on the classes class and start from the beginning. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bobby Heid > Sent: Wednesday, February 18, 2009 7:21 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > Rocky, > > I would also recommend that you try out collections as people > suggested earlier. But I would also try an array to compare the > speeds of lookups based upon how many items you have. For the array > approach, if the items are sorted, and there are over 100 items, I'd > recommend searching using a binary search - very fast. You could even use an array of structures. > > I would do up a little test module to test using a collection and an array. > Make sure you search for stuff that may be near the top, middle, and > the bottom. > > Thanks, > Bobby > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: Wednesday, February 18, 2009 5:57 PM > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Find First in an Array? > > > Dear List: > > I have an app set up for multiple languages. The translations are > pulled from a table at the time the form or report is opened by > cycling through the controls (labels and button captions) and getting > the appropriate translation. To make the thing run faster (there's a > noticeable translation delay), I'm thinking of loading these > translations into an array in memory and fetching the translation from > the array. However, AFAIK, there's no equivalent to a FindFirst in an > array like there is in a recordset. So, is there a better way to find > the right translation in the array short of going through the array in sequence for each item to be translated? > > > MTIA for any ideas, > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Thu Feb 19 09:25:41 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Thu, 19 Feb 2009 07:25:41 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: <499D5C40.30207@colbyconsulting.com> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <499ca1fe.0506d00a.6d1a.7fbc@mx.google.com> <499CB9BD.7060805@colbyconsulting.com><8255763CD64848148125E43CA2B62467@HAL9005> <499D5C40.30207@colbyconsulting.com> Message-ID: <4D38298BE671413DB2D2584F11A572B9@HAL9005> Probably be more efficient to load only the language the user asks for. They can only use one at a time anyway. However, one complication, if they're using Chinese the font on the control has to be changed to Arial Unicode MS. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Thursday, February 19, 2009 5:19 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Rocky, Is the objective to have all languages loaded into the cache, or to load one language into the cache, and simply reload the cache if the user selects a different language? John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > John: > > The table layout is: > > fldLanguageID Autonumber > fldLanguageForm Text Name of the form that the control is on > fldLanguageControl Text Name of the control > fldLanguageControlType Text Not Used > fldLanguageEnglish Text > fldLanguageChineseComplex Text > fldLanguageChineseSimple Text > fldLanguageSpanish Text > fldLanguageFrench Text > > In the translate routine I use: > > Set frm = Forms(argForm) > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Where argForm is the form name passed to the function. So I think I > might get a big boost in response time by indexing fldLanguageForm and > fldLanguageControl. > > There are only about 2500 records in the table so I'm thinking that > the whole recordset is probably in memory anyway. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 18, 2009 5:46 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Does this imply a table structure of: > > TR_ID Auto > TR_CtlName Text > TR_L1 text (or memo?) for language 1 > TR_L2 text (or memo?) for language 2 > Etc > > I would suggest that you add a form (or container) field. A control > name is unique on a form, however it could be the same on different > forms but have a different language string. By having a form field > you could pull subsets of records based on the form name, then use the > control name (now guaranteed to be unique), then obtain the language string. > > It appears from your email however that you already have this stuff > set up, so you might be resistant to modifying how it works. > > If this is all just one big table with control names guaranteed to be > unique then you could just stash it in one big collection. There is a > problem however which is that classes get pretty slow as they get > large. If you get up past 10,000 strings (I don't know the exact > point) it would bog back down. If you broke it down into controls on > a form, then you would ensure that the total strings in any given collection is pretty small. > > Again I would build a class for all the code and the collection to > load one form. then a supervisor class to hold instances of this form > class keyed on form name. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: >> Max: >> >> That would work except the table driven approach is so much more easier. >> Easy to add a language (got French and Spanish now in addition to >> traditional and simplified Chinese), too, or make a change to a > translation. >> To add a language I just add a column for that language to the >> Control and Messages tables and send them to the translator. Add >> that language to the language selector combo on the Preferences form, >> and walla! Another language. >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Thu Feb 19 09:26:47 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Thu, 19 Feb 2009 07:26:47 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: <499D65D4.8070100@colbyconsulting.com> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <499ca1fe.0506d00a.6d1a.7fbc@mx.google.com> <499CB9BD.7060805@colbyconsulting.com><8255763CD64848148125E43CA2B62467@HAL9005> <499D65D4.8070100@colbyconsulting.com> Message-ID: <3CEA0B4D0B534571A92ECF60425AA858@HAL9005> Correct - no tooltips, all translates are captions. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Thursday, February 19, 2009 6:00 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Rocky, I see nothing for dealing with things like tooltip etc. If you want to deal with that kind of thing, then you need to supply a property name where the translation string would be stored. I am assuming that at the moment all data goes into labels and therefore the string is placed into the Caption property? John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > John: > > The table layout is: > > fldLanguageID Autonumber > fldLanguageForm Text Name of the form that the control is on > fldLanguageControl Text Name of the control > fldLanguageControlType Text Not Used > fldLanguageEnglish Text > fldLanguageChineseComplex Text > fldLanguageChineseSimple Text > fldLanguageSpanish Text > fldLanguageFrench Text > > In the translate routine I use: > > Set frm = Forms(argForm) > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Where argForm is the form name passed to the function. So I think I > might get a big boost in response time by indexing fldLanguageForm and > fldLanguageControl. > > There are only about 2500 records in the table so I'm thinking that > the whole recordset is probably in memory anyway. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 18, 2009 5:46 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Does this imply a table structure of: > > TR_ID Auto > TR_CtlName Text > TR_L1 text (or memo?) for language 1 > TR_L2 text (or memo?) for language 2 > Etc > > I would suggest that you add a form (or container) field. A control > name is unique on a form, however it could be the same on different > forms but have a different language string. By having a form field > you could pull subsets of records based on the form name, then use the > control name (now guaranteed to be unique), then obtain the language string. > > It appears from your email however that you already have this stuff > set up, so you might be resistant to modifying how it works. > > If this is all just one big table with control names guaranteed to be > unique then you could just stash it in one big collection. There is a > problem however which is that classes get pretty slow as they get > large. If you get up past 10,000 strings (I don't know the exact > point) it would bog back down. If you broke it down into controls on > a form, then you would ensure that the total strings in any given collection is pretty small. > > Again I would build a class for all the code and the collection to > load one form. then a supervisor class to hold instances of this form > class keyed on form name. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: >> Max: >> >> That would work except the table driven approach is so much more easier. >> Easy to add a language (got French and Spanish now in addition to >> traditional and simplified Chinese), too, or make a change to a > translation. >> To add a language I just add a column for that language to the >> Control and Messages tables and send them to the translator. Add >> that language to the language selector combo on the Preferences form, >> and walla! Another language. >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Thu Feb 19 09:27:26 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Thu, 19 Feb 2009 07:27:26 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: References: Message-ID: <2B37BC4E3FFD4992AF7CCFBCC60B399A@HAL9005> I don't think I'll ever have that many languages. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Thursday, February 19, 2009 6:36 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Find First in an Array? Hi Rocky It was mostly the language fields I had in mind. You'll hit the 255 field limit: http://www.loc.gov/standards/iso639-2/langhome.html /gustav >>> rockysmolin at bchacc.com 19-02-2009 14:54 >>> Yes. The Form should be a FK to a Forms table. Control Type should by a FK to a control type table. The control types are actually numeric. But they're not used anyway. I put them in there initially because I thought knowing the control type would be useful. But it turned out not to be. The other fields are unique. But there are only 2500 records - will never be significantly more. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Thursday, February 19, 2009 2:45 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Find First in an Array? Hi Rocky Do we spot a denormalized table structure here? /gustav >>> rockysmolin at bchacc.com 19-02-2009 07:57 >>> John: The table layout is: fldLanguageID Autonumber fldLanguageForm Text Name of the form that the control is on fldLanguageControl Text Name of the control fldLanguageControlType Text Not Used fldLanguageEnglish Text fldLanguageChineseComplex Text fldLanguageChineseSimple Text fldLanguageSpanish Text fldLanguageFrench Text In the translate routine I use: Set frm = Forms(argForm) For Each ctl In frm rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and fldLanguageControl = '" _ & ctl.Name & "'" Where argForm is the form name passed to the function. So I think I might get a big boost in response time by indexing fldLanguageForm and fldLanguageControl. There are only about 2500 records in the table so I'm thinking that the whole recordset is probably in memory anyway. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 18, 2009 5:46 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Does this imply a table structure of: TR_ID Auto TR_CtlName Text TR_L1 text (or memo?) for language 1 TR_L2 text (or memo?) for language 2 Etc I would suggest that you add a form (or container) field. A control name is unique on a form, however it could be the same on different forms but have a different language string. By having a form field you could pull subsets of records based on the form name, then use the control name (now guaranteed to be unique), then obtain the language string. It appears from your email however that you already have this stuff set up, so you might be resistant to modifying how it works. If this is all just one big table with control names guaranteed to be unique then you could just stash it in one big collection. There is a problem however which is that classes get pretty slow as they get large. If you get up past 10,000 strings (I don't know the exact point) it would bog back down. If you broke it down into controls on a form, then you would ensure that the total strings in any given collection is pretty small. Again I would build a class for all the code and the collection to load one form. then a supervisor class to hold instances of this form class keyed on form name. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Max: > > That would work except the table driven approach is so much more easier. > Easy to add a language (got French and Spanish now in addition to > traditional and simplified Chinese), too, or make a change to a translation. > To add a language I just add a column for that language to the Control > and Messages tables and send them to the translator. Add that > language to the language selector combo on the Preferences form, and > walla! Another language. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Thu Feb 19 09:28:10 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Thu, 19 Feb 2009 07:28:10 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: References: Message-ID: <996DE56C37E547A2BBADE1A6F459A84C@HAL9005> Gustav: Compound in the table? Or just the code? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Thursday, February 19, 2009 7:20 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Find First in an Array? Hi Rocky You will need a compound index on those two fields. The two fields would be FormName and ControlName. Then: strFormName = "frmSomeForm" strControlName = "ctlSomeControl" .Index = "FormName_ControlName" .Seek "=", strFormName, strControlName /gustav >>> rockysmolin at bchacc.com 19-02-2009 15:38 >>> Shamil! I forgot all about Seek. This is one of those rare occasions where I'm working with a non-linked table. But this table is in the front end - local to the user - so each user can have their own language. I would have to seek on two fields however - the form name and the control name. Should I make a concatenated field, then? -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Thu Feb 19 09:31:52 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Thu, 19 Feb 2009 16:31:52 +0100 Subject: [AccessD] Find First in an Array? Message-ID: Hi Rocky The table. Create an index with the two fields. /gustav >>> rockysmolin at bchacc.com 19-02-2009 16:28 >>> Gustav: Compound in the table? Or just the code? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Thursday, February 19, 2009 7:20 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Find First in an Array? Hi Rocky You will need a compound index on those two fields. The two fields would be FormName and ControlName. Then: strFormName = "frmSomeForm" strControlName = "ctlSomeControl" .Index = "FormName_ControlName" .Seek "=", strFormName, strControlName /gustav >>> rockysmolin at bchacc.com 19-02-2009 15:38 >>> Shamil! I forgot all about Seek. This is one of those rare occasions where I'm working with a non-linked table. But this table is in the front end - local to the user - so each user can have their own language. I would have to seek on two fields however - the form name and the control name. Should I make a concatenated field, then? From accessd at gfconsultants.com Thu Feb 19 09:38:14 2009 From: accessd at gfconsultants.com (Reuben Cummings) Date: Thu, 19 Feb 2009 10:38:14 -0500 Subject: [AccessD] OT - How to send messages from different accounts In-Reply-To: Message-ID: <0D8C15F0770A45109DBA1D55E62E35D9@reubennx9500> Did anyone see two messages from me concerning needing help with using Keystrokes? I have never seen the one I sent from reuben@, but I do see the one from accessd at . Reuben Cummings GFC, LLC 812.523.1017 > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of > Bryan Carbonnell > Sent: Wednesday, February 18, 2009 3:43 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] OT - How to send messages from > different accounts > > > On Wed, Feb 18, 2009 at 3:03 PM, Reuben Cummings > wrote: > > Do I have to send emails to the list from the same email > that is on record > > for the list? > > > > I use accessd at gfconsultants.com for the lists (that way the > list messages > > don't get pushed to my phone). But my regular account is > reuben at gfc... > > > > If I forget to change the sender it'll come from Reuben... > > > > Will the list still process the message? > > Nope. > > Here's what I recommend though.... > > Subscribe with reuben at ... and then go into the settings for that > subscription and set it to nomail (vacation mode) That way, you won't > get email to reuben at ... but can still post from that address. > > -- > Bryan Carbonnell - carbonnb at gmail.com > Life's journey is not to arrive at the grave safely in a well > preserved body, but rather to skid in sideways, totally worn out, > shouting "What a great ride!" > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From rockysmolin at bchacc.com Thu Feb 19 09:40:46 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Thu, 19 Feb 2009 07:40:46 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: <499D65D4.8070100@colbyconsulting.com> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <499ca1fe.0506d00a.6d1a.7fbc@mx.google.com> <499CB9BD.7060805@colbyconsulting.com><8255763CD64848148125E43CA2B62467@HAL9005> <499D65D4.8070100@colbyconsulting.com> Message-ID: <1989D52F45ED415291C98B58CE60A9EB@HAL9005> Here's the current code BTW. Note there's a variation for the headings on a tab form: On Error GoTo Err_TranslateControlForm: Set frm = Forms(argForm) For Each ctl In frm If InStr(1, gstrLanguage, "English") <> 0 Then GoTo CheckDecimalPlaces: If ctl.ControlType = 100 Or ctl.ControlType = 104 Then rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and fldLanguageControl = '" _ & ctl.Name & "'" If rstControls.NoMatch = False Then If Nz(rstControls(gstrLanguage)) <> "" Then 'If Nz(rstControls(gstrLanguage)) <> "" Then ctl.Caption = rstControls(gstrLanguage) ctl.Caption = rstControls(gstrLanguage) If InStr(1, gstrLanguage, "Chinese") <> 0 Then _ ctl.FontName = "Arial Unicode MS" Else If Nz(rstControls(gstrLanguage)) <> "" Then ctl.Caption = rstControls!fldLanguageEnglish End If End If End If ' Tab Page If ctl.ControlType = 124 Then rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and fldLanguageControl = '" _ & ctl.Name & "'" If rstControls.NoMatch = False Then If Nz(rstControls(gstrLanguage)) <> "" Then ctl.Name = rstControls(gstrLanguage) If InStr(1, gstrLanguage, "Chinese") <> 0 Then _ ctl.FontName = "Arial Unicode MS" Else ctl.Name = rstControls!fldLanguageEnglish End If End If End If CheckDecimalPlaces: If ctl.tag = "Currency" Then ctl.DecimalPlaces = gintfldCurrencyDecimalPlaces Next ctl Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Thursday, February 19, 2009 6:00 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Rocky, I see nothing for dealing with things like tooltip etc. If you want to deal with that kind of thing, then you need to supply a property name where the translation string would be stored. I am assuming that at the moment all data goes into labels and therefore the string is placed into the Caption property? John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > John: > > The table layout is: > > fldLanguageID Autonumber > fldLanguageForm Text Name of the form that the control is on > fldLanguageControl Text Name of the control > fldLanguageControlType Text Not Used > fldLanguageEnglish Text > fldLanguageChineseComplex Text > fldLanguageChineseSimple Text > fldLanguageSpanish Text > fldLanguageFrench Text > > In the translate routine I use: > > Set frm = Forms(argForm) > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Where argForm is the form name passed to the function. So I think I > might get a big boost in response time by indexing fldLanguageForm and > fldLanguageControl. > > There are only about 2500 records in the table so I'm thinking that > the whole recordset is probably in memory anyway. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 18, 2009 5:46 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Does this imply a table structure of: > > TR_ID Auto > TR_CtlName Text > TR_L1 text (or memo?) for language 1 > TR_L2 text (or memo?) for language 2 > Etc > > I would suggest that you add a form (or container) field. A control > name is unique on a form, however it could be the same on different > forms but have a different language string. By having a form field > you could pull subsets of records based on the form name, then use the > control name (now guaranteed to be unique), then obtain the language string. > > It appears from your email however that you already have this stuff > set up, so you might be resistant to modifying how it works. > > If this is all just one big table with control names guaranteed to be > unique then you could just stash it in one big collection. There is a > problem however which is that classes get pretty slow as they get > large. If you get up past 10,000 strings (I don't know the exact > point) it would bog back down. If you broke it down into controls on > a form, then you would ensure that the total strings in any given collection is pretty small. > > Again I would build a class for all the code and the collection to > load one form. then a supervisor class to hold instances of this form > class keyed on form name. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: >> Max: >> >> That would work except the table driven approach is so much more easier. >> Easy to add a language (got French and Spanish now in addition to >> traditional and simplified Chinese), too, or make a change to a > translation. >> To add a language I just add a column for that language to the >> Control and Messages tables and send them to the translator. Add >> that language to the language selector combo on the Preferences form, >> and walla! Another language. >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Thu Feb 19 09:41:41 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Thu, 19 Feb 2009 16:41:41 +0100 Subject: [AccessD] Find First in an Array? Message-ID: Hi Rocky When you open a recordset it is read once into memory and Access doesn't reread the table if not needed. Seek is so fast that you can use it for recursive calls at amazing speed. Here's my old posting from 2002-02-06 on this. Note the use of a static recordset to keep it : Hi Bruce You have several options. One, however, won't do - as noted by Arthur - and that is a recursive query using SQL only; Access can't be fooled and will claim about a circular reference. Your only chance is to create a query resolving a limited number of levels only, say, 8 or 10. But you can cover the recursive call in a domain aggregate function like DLookup(). This is, however, very slow as DLookup() calling the query will run for each and every record. For more than some dozens of records this will most likely be unacceptable. The fastest way, for an unlimited number of levels, I've found is to create a lookup function which walks the tree for each record. This can output either the level of the record or a compound key build by the key of the record and all keys above. As the lookup function will use the same recordset for every call, you can make it static, and (for Jet) you can improve further by using Seek to locate the records. Here's an example which will give you an idea: Function RecursiveLookup(ByVal lngID As Long) As String Static dbs As Database Static tbl As TableDef Static rst As Recordset Dim lngLevel As Long Dim strAccount As String If dbs Is Nothing Then ' For testing only. ' Replace with OpenDatabase of backend database file. Set dbs = CurrentDb() Set tbl = dbs.TableDefs("tblAccount") Set rst = dbs.OpenRecordset(tbl.Name, dbOpenTable) End If With rst .Index = "PrimaryKey" While lngID > 0 .Seek "=", lngID If Not .NoMatch Then lngLevel = lngLevel + 1 lngID = !MasterAccountFK.Value If lngID > 0 Then strAccount = str(!AccountID) & strAccount End If Else lngID = 0 End If Wend ' Leave recordset open. ' .Close End With ' Don't terminate static objects. ' Set rst = Nothing ' Set tbl = Nothing ' Set dbs = Nothing ' Alternative expression for returning the level. ' (Adjust vartype of return value of function.) ' RecursiveLookup = lngLevel ' As Long RecursiveLookup = strAccount End Function This assumes a table with a primary key ID and a foreign (master) key pointing to the parent record - and a top level record (not used) with a visible key (AccountID) of 0. Now your tree will be nicely shown almost instantaneously using a query like this where Account will be the visible compound key: SELECT *, RecursiveLookup([ID]) AS Account FROM tblAccount WHERE (AccountID > 0) ORDER BY RecursiveLookup([ID]); /gustav > I am completely stymied on this one. Can any help, offer any code samples, > comments, etc, please? > > I have an n-level tree data structure implemented as a single table with a > set of recursive foreign keys, i.e. the table is related to itself in > several ways each way producing a different tree structure. Lets call these > "views". Any branch can be any depth. The order of the branches is, > relatively, unimportant as it is based purely on an alphabetic sort of the > branch title. > > I have a great form for maintaining the tree, using the treeview control. > This provides the desired navigation, display, edit etc. > > BUT, now I need to print each tree view as a report. I have tried creating > cascading queries as the recordsource - no dice, I don't know how many > levels a particular view will have. I have tried to create a report with a > recordset returning function as a recordsource, and cannot get this to work. /gustav >>> rockysmolin at bchacc.com 19-02-2009 16:23 >>> Fortunately this is a front end table so no going over the network. And I'm going to try Shamil's Seek approach - be a simple change. But you're right about it being faster in memory anyway. What I'm trying to do is stop the flashing and repainting. What I did yesterday is change the calls in the _Open event to: Echo False Scale the Form Translate the form Maximize the Form Echo On This seem to have had a real good effect on the forms. Also noticed that the first time I open a form I get one quick repaint (I'm using Chinese to test this because it using Unicode and seems to have a little more complexity) - the second time I open the form it's faster - almost like it was already translated even though I close the form on exit. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Thursday, February 19, 2009 4:49 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Rocky, A table may or may not be "noticeably slower" however you have already said that you had issues. Once you cache the data, getting data out of a cache structure will be 100 to 1000 times faster. Remember that a table is NOT cached (though a disconnected ADO recordset is I guess). DAO requires a trip to the disk OVER THE NETWORK (if any). As for going back to the beginning, please do but do not let it stop you from implementing what I will build for you. Just remember that a class object is just like any other object in Access (cbo, recordset, query) it is just a tool that anyone can use once built. I will do the building for this instance. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > I'm wondering if an array or collection will be noticeably faster than > a recordset since there are about 2500 records in the controls table > and so it's probably all in memory already. The fields are not > indexed - so I'll bet I could get a little boost in performance by > indexing the fields I search on. > > OTOH, it's a good opportunity to learn something about classes. I'll > post the table layout tomorrow. But I think to be fair to John and > anyone else who wants to help, I should go back to all those saved > emails on the classes class and start from the beginning. From mcp2004 at mail.ru Thu Feb 19 09:51:47 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Thu, 19 Feb 2009 18:51:47 +0300 Subject: [AccessD] =?koi8-r?b?RmluZCBGaXJzdCBpbiBhbiBBcnJheT8=?= In-Reply-To: <1145E303F5C14E928A3D1F8C8F5F5570@HAL9005> References: <1145E303F5C14E928A3D1F8C8F5F5570@HAL9005> Message-ID: Hi Rocky, Gustav have answered your question already: compound index on the table level consisting of your two search fields. The fields should be defined in the index in the sequence their values are used in the .Seek method in the code. As you can see from sample code 91,000 .Seek calls are executed within a second on my test Dual Core Pentium, which is a mainstream PC now eveywhere? Tested with MS Access 2007 (but .mdb) and MS Windows Vista Ultimate. -- Shamil -----Original Message----- From: "Rocky Smolin at Beach Access Software" To: "'Access Developers discussion and problem solving'" Date: Thu, 19 Feb 2009 06:38:11 -0800 Subject: Re: [AccessD] Find First in an Array? > > Shamil! I forgot all about Seek. This is one of those rare occasions where > I'm working with a non-linked table. But this table is in the front end - > local to the user - so each user can have their own language. > > I would have to seek on two fields however - the form name and the control > name. Should I make a concatenated field, then? > > Best, > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Salakhetdinov > Shamil > Sent: Thursday, February 19, 2009 3:33 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Here are corrected DAO's .Seek code samples (sorry, previous version has had > a couple of bugs): > > Public Function testSeek1() > Dim rst As DAO.Recordset > Set rst = CurrentDb.OpenRecordset("Products", dbOpenTable) > With rst > .Index = "ProductName" > .Seek "=", "Aniseed Syrup" > If (.NoMatch) Then > Debug.Print "Not Found" > Else > Debug.Print "Found" > End If > End With > End Function > > Public Function testSeek2() > 'Prepequisites: > ' Compound index named 'Contact' created ' for ContactTitle and ContactName > fields ' of Customers table Dim dbs As DAO.Database Dim rst As DAO.Recordset > Dim sql As String Dim avar As Variant Dim i As Long Dim rowCount As Long Dim > foundCount As Long Dim notFoundCount As Long Dim cyclesCount As Long Dim k > As Integer > cyclesCount = 1000 > > Set dbs = CurrentDb > sql = "select ContactTitle, ContactName from Customers" > Set rst = dbs.OpenRecordset(sql, dbOpenDynaset) > rowCount = dbs.TableDefs("Customers").RecordCount > avar = rst.GetRows(rowCount) > Debug.Print "Started at = " & Now > Debug.Print "Row count = " & rowCount > foundCount = 0 > notFoundCount = 0 > Set rst = dbs.OpenRecordset("Customers", dbOpenTable) > For k = 1 To cyclesCount Step 1 > For i = LBound(avar, 2) To UBound(avar, 2) Step 1 > With rst > .Index = "Contact" > .Seek "=", avar(0, i), avar(1, i) > If (.NoMatch) Then > notFoundCount = notFoundCount + 1 > Else > foundCount = foundCount + 1 > End If > End With > Next i > Next k > rst.Close > Set rst = Nothing > Debug.Print "Found = " & foundCount > Debug.Print "Not found = " & notFoundCount > Debug.Print "Finished at = " & Now > ' > ' test results: > 'Started at = 19.02.2009 13:54:18 > 'Row count = 91 > 'found = 91000 > 'Not found = 0 > 'Finished at = 19.02.2009 13:54:19 > > End Function > > > -----Original Message----- > From: Salakhetdinov Shamil > To: Access Developers discussion and problem > solving > Date: Thu, 19 Feb 2009 14:01:55 +0300 > Subject: Re: [AccessD] Find First in an Array? > > > > > Hi Rocky, > > > > Good old DAO's .Seek should do the trick. > > You'll have to create dedicated compound index for it. > > > > -- > > Shamil > > > <<< tail trimmed>>> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From Lambert.Heenan at AIG.com Thu Feb 19 11:20:13 2009 From: Lambert.Heenan at AIG.com (Heenan, Lambert) Date: Thu, 19 Feb 2009 12:20:13 -0500 Subject: [AccessD] OT- It's Friday in the far east! Message-ID: Nothing like some lawyer jokes to cheer up the day. These are from a book called Disorder in the American Courts, and are things people actually said in court, word for word, taken down and now published by court reporters that had the torment of staying calm while these exchanges were actually taking place. ATTORNEY: What was the first thing your husband said to you that morning? WITNESS: He said, 'Where am I, Cathy?' ATTORNEY: And why did that upset you? WITNESS: My name is Susan! ATTORNEY: What gear were you in at the moment of the impact? WITNESS: Gucci sweats and Reeboks. ATTORNEY: Are you sexually active? WITNESS: No, I just lie there. ATTORNEY: This myasthenia gravis, does it affect your memory at all? WITNESS: Yes. ATTORNEY: And in what ways does it affect your memory? WITNESS: I forget . . . ATTORNEY: You forget? Can you give us an example of something you forgot? ATTORNEY: Do you know if your daughter has ever been involved in voodoo? WITNESS: We both do. ATTORNEY: Voodoo? WITNESS: We do. ATTORNEY: You do? WITNESS: Yes, voodoo. ATTORNEY: Now doctor, isn't it true that when a person dies in his sleep, he doesn't know about it until the next morning? WITNESS: Did you actually pass the bar exam? ATTORNEY: The youngest son, the 20-year-old, how old is he? WITNESS: He's 20, much like your IQ. ATTORNEY: Were you present when your picture was taken? WITNESS: Are you shitting me? ATTORNEY: So the date of conception (of the baby) was August 8th? WITNESS: Yes. ATTORNEY: And what were you doing at that time? WITNESS: Getting laid ATTORNEY: She had three children, right? WITNESS: Yes. ATTORNEY: How many were boys? WITNESS: None. ATTORNEY: Were there any girls? WITNESS: Your Honor, I think I need a different attorney. Can I get a new attorney? ATTORNEY: How was your first marriage terminated? WITNESS: By death. ATTORNEY: And by whose death was it terminated? WITNESS: Take a guess. ATTORNEY: Can you describe the individual? WITNESS: He was about medium height and had a beard. ATTORNEY: Was this a male or a female? WITNESS: Unless the Circus was in town I'm going with male. ATTORNEY: Is your appearance here this morning pursuant to a deposition notice which I sent to your attorney? WITNESS: No, this is how I dress when I go to work. ATTORNEY: Doctor, how many of your autopsies have you performed on dead people? WITNESS: All of them . . . The live ones put up too much of a fight. ATTORNEY: ALL your responses MUST be oral, OK? What school did you go to? WITNESS: Oral. ATTORNEY: Do you recall the time that you examined the body? WITNESS: The autopsy started around 8:30 PM ATTORNEY: And Mr. Denton was dead at the time? WITNESS: If not, he was by the time I finished. ATTORNEY: Are you qualified to give a urine sample? WITNESS: Are you qualified to ask that question? And last: ATTORNEY: Doctor, before you performed the autopsy, did you check for a pulse? WITNESS: No. ATTORNEY: Did you check for blood pressure? WITNESS: No. ATTORNEY: Did you check for breathing? WITNESS: No. ATTORNEY: So, then it is possible that the patient was alive when you began the autopsy? WITNESS: No. ATTORNEY: How can you be so sure, Doctor? WITNESS: Because his brain was sitting on my desk in a jar. ATTORNEY: I see, but could the patient have still been alive, nevertheless? WITNESS: Yes, it is possible that he could have been alive and practicing law. From DWUTKA at Marlow.com Thu Feb 19 11:27:53 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Thu, 19 Feb 2009 11:27:53 -0600 Subject: [AccessD] Find First in an Array? In-Reply-To: <02FD063F5E5A45D19AA1B917C45CD508@HAL9005> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005><003401c99241$1756bde0$460439a0$@rr.com> <02FD063F5E5A45D19AA1B917C45CD508@HAL9005> Message-ID: Arrays and Collections are going to be faster... in this case. If you need to open a recordset, and get data, it's going to be faster to do that, then to pull the data into a collection or array every time. However, if you are constantly hitting a recordset, you are querying data either through a network connection, or a hard drive. Do that 100 times when a form opens, and you'll see a delay. Load that data into a collection, and it's pulling everything from memory which is lightning fast compared to querying a table over and over. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Thursday, February 19, 2009 12:10 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? I'm wondering if an array or collection will be noticeably faster than a recordset since there are about 2500 records in the controls table and so it's probably all in memory already. The fields are not indexed - so I'll bet I could get a little boost in performance by indexing the fields I search on. OTOH, it's a good opportunity to learn something about classes. I'll post the table layout tomorrow. But I think to be fair to John and anyone else who wants to help, I should go back to all those saved emails on the classes class and start from the beginning. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Thu Feb 19 11:33:19 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Thu, 19 Feb 2009 11:33:19 -0600 Subject: [AccessD] Find First in an Array? In-Reply-To: <8255763CD64848148125E43CA2B62467@HAL9005> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <499ca1fe.0506d00a.6d1a.7fbc@mx.google.com><499CB9BD.7060805@colbyconsulting.com> <8255763CD64848148125E43CA2B62467@HAL9005> Message-ID: Hmmmm, actually, the way you have this set up, you could do this just fine without an array or collection. Instead of this: For Each ctl In frm rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and fldLanguageControl = '" _ & ctl.Name & "'" Do this: strSQL="SELECT fldLanguageControl, fldLanguage" & strLanguageToTranslate & " FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" set rs=New Recordset rs.open strsql,currentproject.connection, adopenkeyset,adlockreadonly if rs.eof=false then rs.movefirst do until rs.eof=true me(rs.fields(0).value).Caption=rs.fields(1).value Loop Rs.close Set rs=nothing That way you are pulling the recordset up....and just running through it once...instead of trying to find every record based on the control. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Thursday, February 19, 2009 12:57 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? John: The table layout is: fldLanguageID Autonumber fldLanguageForm Text Name of the form that the control is on fldLanguageControl Text Name of the control fldLanguageControlType Text Not Used fldLanguageEnglish Text fldLanguageChineseComplex Text fldLanguageChineseSimple Text fldLanguageSpanish Text fldLanguageFrench Text In the translate routine I use: Set frm = Forms(argForm) For Each ctl In frm rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and fldLanguageControl = '" _ & ctl.Name & "'" Where argForm is the form name passed to the function. So I think I might get a big boost in response time by indexing fldLanguageForm and fldLanguageControl. There are only about 2500 records in the table so I'm thinking that the whole recordset is probably in memory anyway. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 18, 2009 5:46 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Does this imply a table structure of: TR_ID Auto TR_CtlName Text TR_L1 text (or memo?) for language 1 TR_L2 text (or memo?) for language 2 Etc I would suggest that you add a form (or container) field. A control name is unique on a form, however it could be the same on different forms but have a different language string. By having a form field you could pull subsets of records based on the form name, then use the control name (now guaranteed to be unique), then obtain the language string. It appears from your email however that you already have this stuff set up, so you might be resistant to modifying how it works. If this is all just one big table with control names guaranteed to be unique then you could just stash it in one big collection. There is a problem however which is that classes get pretty slow as they get large. If you get up past 10,000 strings (I don't know the exact point) it would bog back down. If you broke it down into controls on a form, then you would ensure that the total strings in any given collection is pretty small. Again I would build a class for all the code and the collection to load one form. then a supervisor class to hold instances of this form class keyed on form name. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Max: > > That would work except the table driven approach is so much more easier. > Easy to add a language (got French and Spanish now in addition to > traditional and simplified Chinese), too, or make a change to a translation. > To add a language I just add a column for that language to the Control > and Messages tables and send them to the translator. Add that > language to the language selector combo on the Preferences form, and > walla! Another language. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From max.wanadoo at gmail.com Thu Feb 19 11:39:30 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 19 Feb 2009 17:39:30 -0000 Subject: [AccessD] Find First in an Array? In-Reply-To: <2FB419230AE04F0CBD50ECA64D648872@HAL9005> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005><499ca1fe.0506d00a.6d1a.7fbc@mx.google.com><499CB9BD.7060805@colbyconsulting.com><3B73E0C6477A40DEA9D6E3D8F0A31E49@HAL9005> <2FB419230AE04F0CBD50ECA64D648872@HAL9005> Message-ID: <499d9957.0508d00a.6f3d.ffffa220@mx.google.com> No Rocky, what you posted was completely different than what I have here. Ta Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 19 February 2009 13:52 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? Max: That's pretty much what I'm doing now, except the language choice is in a global variable. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Thursday, February 19, 2009 12:50 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Rocky, This is a simple coding solution. I have no idea of how fast it might be viz-a-viz the Collections/Class solutions, but might give a reasonable response time. Called on the form's onload Public Function pfTranslateLabels(frm As Form, strLanguage As String) ' EG:- strLanguage = "fldLanguageChineseComplex" Dim sql As String, rst As DAO.Recordset, ctl As Control, strFind As String sql = "Select * from tblLanguages Where fldLanguageForm ='" & frm.Name & "'" Set rst = CurrentDb.OpenRecordset(sql) If Not rst.EOF Then For Each ctl In frm.Controls If ctl.Type = acLabel Then strFind = "fldLanugageControl='" & ctl.Name & "'" rst.FindFirst strFind If Not rst.NoMatch Then ctl.Caption = rst(strLanguage) End If End If Next ctl End If exithere: Set rst = Nothing: Set ctl = Nothing Exit Function End Function If you have lots of forms doing this, you might want to open the RecordSet as a persistent one and not close it down after each form. Max On Thu, Feb 19, 2009 at 7:01 AM, Rocky Smolin at Beach Access Software < rockysmolin at bchacc.com> wrote: > > Oops, just checked - those fields are indexed. > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: Rocky Smolin at Beach Access Software > [mailto:rockysmolin at bchacc.com ] > Sent: Wednesday, February 18, 2009 10:57 PM > To: 'Access Developers discussion and problem solving' > Subject: RE: [AccessD] Find First in an Array? > > John: > > The table layout is: > > fldLanguageID Autonumber > fldLanguageForm Text Name of the form that the control is on > fldLanguageControl Text Name of the control > fldLanguageControlType Text Not Used > fldLanguageEnglish Text > fldLanguageChineseComplex Text > fldLanguageChineseSimple Text > fldLanguageSpanish Text > fldLanguageFrench Text > > In the translate routine I use: > > Set frm = Forms(argForm) > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Where argForm is the form name passed to the function. So I think I > might get a big boost in response time by indexing fldLanguageForm and > fldLanguageControl. > > There are only about 2500 records in the table so I'm thinking that > the whole recordset is probably in memory anyway. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 18, 2009 5:46 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Does this imply a table structure of: > > TR_ID Auto > TR_CtlName Text > TR_L1 text (or memo?) for language 1 > TR_L2 text (or memo?) for language 2 > Etc > > I would suggest that you add a form (or container) field. A control > name is unique on a form, however it could be the same on different > forms but have a different language string. By having a form field > you could pull subsets of records based on the form name, then use the > control name (now guaranteed to be unique), then obtain the language > string. > > It appears from your email however that you already have this stuff > set up, so you might be resistant to modifying how it works. > > If this is all just one big table with control names guaranteed to be > unique then you could just stash it in one big collection. There is a > problem however which is that classes get pretty slow as they get > large. If you get up past 10,000 strings (I don't know the exact > point) it would bog back down. If you broke it down into controls on > a form, then you would ensure that the total strings in any given > collection is pretty small. > > Again I would build a class for all the code and the collection to > load one form. then a supervisor class to hold instances of this form > class keyed on form name. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: > > Max: > > > > That would work except the table driven approach is so much more easier. > > Easy to add a language (got French and Spanish now in addition to > > traditional and simplified Chinese), too, or make a change to a > translation. > > To add a language I just add a column for that language to the > > Control and Messages tables and send them to the translator. Add > > that language to the language selector combo on the Preferences > > form, and walla! Another language. > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Thu Feb 19 11:47:09 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 19 Feb 2009 12:47:09 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <499ca1fe.0506d00a.6d1a.7fbc@mx.google.com><499CB9BD.7060805@colbyconsulting.com> <8255763CD64848148125E43CA2B62467@HAL9005> Message-ID: <499D9B1D.9070500@colbyconsulting.com> ICK! This application is PERFECT for caching. The data does not change from the time the database opens to the time it closes. The data is loaded once into collections and then the form is loaded from its specific collection (class instance). If you are going to run through the entire recordset every time the form opens... why not simply load the data into a collection the first time and let the poor disk take a nap? This is not rocket science. In fact if I hadn't had some calls from clients interrupt me it would be done already. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > Hmmmm, actually, the way you have this set up, you could do this just > fine without an array or collection. > > Instead of this: > > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Do this: > > strSQL="SELECT fldLanguageControl, fldLanguage" & strLanguageToTranslate > & " FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" > set rs=New Recordset > rs.open strsql,currentproject.connection, adopenkeyset,adlockreadonly > if rs.eof=false then rs.movefirst > do until rs.eof=true > me(rs.fields(0).value).Caption=rs.fields(1).value > Loop > Rs.close > Set rs=nothing > > That way you are pulling the recordset up....and just running through it > once...instead of trying to find every record based on the control. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin > at Beach Access Software > Sent: Thursday, February 19, 2009 12:57 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > John: > > The table layout is: > > fldLanguageID Autonumber > fldLanguageForm Text Name of the form that the control is on > fldLanguageControl Text Name of the control > fldLanguageControlType Text Not Used > fldLanguageEnglish Text > fldLanguageChineseComplex Text > fldLanguageChineseSimple Text > fldLanguageSpanish Text > fldLanguageFrench Text > > In the translate routine I use: > > Set frm = Forms(argForm) > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Where argForm is the form name passed to the function. So I think I > might > get a big boost in response time by indexing fldLanguageForm and > fldLanguageControl. > > There are only about 2500 records in the table so I'm thinking that the > whole recordset is probably in memory anyway. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 18, 2009 5:46 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Does this imply a table structure of: > > TR_ID Auto > TR_CtlName Text > TR_L1 text (or memo?) for language 1 > TR_L2 text (or memo?) for language 2 > Etc > > I would suggest that you add a form (or container) field. A control > name is > unique on a form, however it could be the same on different forms but > have a > different language string. By having a form field you could pull > subsets of > records based on the form name, then use the control name (now > guaranteed to > be unique), then obtain the language string. > > It appears from your email however that you already have this stuff set > up, > so you might be resistant to modifying how it works. > > If this is all just one big table with control names guaranteed to be > unique > then you could just stash it in one big collection. There is a problem > however which is that classes get pretty slow as they get large. If you > get > up past 10,000 strings (I don't know the exact point) it would bog back > down. If you broke it down into controls on a form, then you would > ensure > that the total strings in any given collection is pretty small. > > Again I would build a class for all the code and the collection to load > one > form. then a supervisor class to hold instances of this form class > keyed on > form name. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: >> Max: >> >> That would work except the table driven approach is so much more > easier. >> Easy to add a language (got French and Spanish now in addition to >> traditional and simplified Chinese), too, or make a change to a > translation. >> To add a language I just add a column for that language to the Control > >> and Messages tables and send them to the translator. Add that >> language to the language selector combo on the Preferences form, and >> walla! Another language. >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From max.wanadoo at gmail.com Thu Feb 19 11:53:59 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 19 Feb 2009 17:53:59 -0000 Subject: [AccessD] Find First in an Array? In-Reply-To: <499D9B1D.9070500@colbyconsulting.com> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <499ca1fe.0506d00a.6d1a.7fbc@mx.google.com><499CB9BD.7060805@colbyconsulting.com> <8255763CD64848148125E43CA2B62467@HAL9005> <499D9B1D.9070500@colbyconsulting.com> Message-ID: <499d9cbb.0506d00a.7ca2.4aad@mx.google.com> Does clients - get in the way all the time....sheesh! No consideration Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 19 February 2009 17:47 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? ICK! This application is PERFECT for caching. The data does not change from the time the database opens to the time it closes. The data is loaded once into collections and then the form is loaded from its specific collection (class instance). If you are going to run through the entire recordset every time the form opens... why not simply load the data into a collection the first time and let the poor disk take a nap? This is not rocket science. In fact if I hadn't had some calls from clients interrupt me it would be done already. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > Hmmmm, actually, the way you have this set up, you could do this just > fine without an array or collection. > > Instead of this: > > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Do this: > > strSQL="SELECT fldLanguageControl, fldLanguage" & strLanguageToTranslate > & " FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" > set rs=New Recordset > rs.open strsql,currentproject.connection, adopenkeyset,adlockreadonly > if rs.eof=false then rs.movefirst > do until rs.eof=true > me(rs.fields(0).value).Caption=rs.fields(1).value > Loop > Rs.close > Set rs=nothing > > That way you are pulling the recordset up....and just running through it > once...instead of trying to find every record based on the control. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin > at Beach Access Software > Sent: Thursday, February 19, 2009 12:57 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > John: > > The table layout is: > > fldLanguageID Autonumber > fldLanguageForm Text Name of the form that the control is on > fldLanguageControl Text Name of the control > fldLanguageControlType Text Not Used > fldLanguageEnglish Text > fldLanguageChineseComplex Text > fldLanguageChineseSimple Text > fldLanguageSpanish Text > fldLanguageFrench Text > > In the translate routine I use: > > Set frm = Forms(argForm) > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Where argForm is the form name passed to the function. So I think I > might > get a big boost in response time by indexing fldLanguageForm and > fldLanguageControl. > > There are only about 2500 records in the table so I'm thinking that the > whole recordset is probably in memory anyway. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 18, 2009 5:46 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Does this imply a table structure of: > > TR_ID Auto > TR_CtlName Text > TR_L1 text (or memo?) for language 1 > TR_L2 text (or memo?) for language 2 > Etc > > I would suggest that you add a form (or container) field. A control > name is > unique on a form, however it could be the same on different forms but > have a > different language string. By having a form field you could pull > subsets of > records based on the form name, then use the control name (now > guaranteed to > be unique), then obtain the language string. > > It appears from your email however that you already have this stuff set > up, > so you might be resistant to modifying how it works. > > If this is all just one big table with control names guaranteed to be > unique > then you could just stash it in one big collection. There is a problem > however which is that classes get pretty slow as they get large. If you > get > up past 10,000 strings (I don't know the exact point) it would bog back > down. If you broke it down into controls on a form, then you would > ensure > that the total strings in any given collection is pretty small. > > Again I would build a class for all the code and the collection to load > one > form. then a supervisor class to hold instances of this form class > keyed on > form name. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: >> Max: >> >> That would work except the table driven approach is so much more > easier. >> Easy to add a language (got French and Spanish now in addition to >> traditional and simplified Chinese), too, or make a change to a > translation. >> To add a language I just add a column for that language to the Control > >> and Messages tables and send them to the translator. Add that >> language to the language selector combo on the Preferences form, and >> walla! Another language. >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Thu Feb 19 11:56:55 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Thu, 19 Feb 2009 09:56:55 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <499ca1fe.0506d00a.6d1a.7fbc@mx.google.com><499CB9BD.7060805@colbyconsulting.com><8255763CD64848148125E43CA2B62467@HAL9005> Message-ID: <03DC01E6037D4BE3931BF41095651721@HAL9005> Dang. I think you're right. Gotta try that. You think it'll be faster than SEEK? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Thursday, February 19, 2009 9:33 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Hmmmm, actually, the way you have this set up, you could do this just fine without an array or collection. Instead of this: For Each ctl In frm rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and fldLanguageControl = '" _ & ctl.Name & "'" Do this: strSQL="SELECT fldLanguageControl, fldLanguage" & strLanguageToTranslate & " FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" set rs=New Recordset rs.open strsql,currentproject.connection, adopenkeyset,adlockreadonly if rs.eof=false then rs.movefirst do until rs.eof=true me(rs.fields(0).value).Caption=rs.fields(1).value Loop Rs.close Set rs=nothing That way you are pulling the recordset up....and just running through it once...instead of trying to find every record based on the control. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Thursday, February 19, 2009 12:57 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? John: The table layout is: fldLanguageID Autonumber fldLanguageForm Text Name of the form that the control is on fldLanguageControl Text Name of the control fldLanguageControlType Text Not Used fldLanguageEnglish Text fldLanguageChineseComplex Text fldLanguageChineseSimple Text fldLanguageSpanish Text fldLanguageFrench Text In the translate routine I use: Set frm = Forms(argForm) For Each ctl In frm rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and fldLanguageControl = '" _ & ctl.Name & "'" Where argForm is the form name passed to the function. So I think I might get a big boost in response time by indexing fldLanguageForm and fldLanguageControl. There are only about 2500 records in the table so I'm thinking that the whole recordset is probably in memory anyway. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 18, 2009 5:46 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Does this imply a table structure of: TR_ID Auto TR_CtlName Text TR_L1 text (or memo?) for language 1 TR_L2 text (or memo?) for language 2 Etc I would suggest that you add a form (or container) field. A control name is unique on a form, however it could be the same on different forms but have a different language string. By having a form field you could pull subsets of records based on the form name, then use the control name (now guaranteed to be unique), then obtain the language string. It appears from your email however that you already have this stuff set up, so you might be resistant to modifying how it works. If this is all just one big table with control names guaranteed to be unique then you could just stash it in one big collection. There is a problem however which is that classes get pretty slow as they get large. If you get up past 10,000 strings (I don't know the exact point) it would bog back down. If you broke it down into controls on a form, then you would ensure that the total strings in any given collection is pretty small. Again I would build a class for all the code and the collection to load one form. then a supervisor class to hold instances of this form class keyed on form name. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Max: > > That would work except the table driven approach is so much more easier. > Easy to add a language (got French and Spanish now in addition to > traditional and simplified Chinese), too, or make a change to a translation. > To add a language I just add a column for that language to the Control > and Messages tables and send them to the translator. Add that > language to the language selector combo on the Preferences form, and > walla! Another language. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Thu Feb 19 11:59:06 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Thu, 19 Feb 2009 18:59:06 +0100 Subject: [AccessD] Find First in an Array? Message-ID: Hi John But why not just load the recordset as static when you initialize the class? Zero additional code, no fuzzing with collections etc. /gustav >>> jwcolby at colbyconsulting.com 19-02-2009 18:47 >>> ICK! This application is PERFECT for caching. The data does not change from the time the database opens to the time it closes. The data is loaded once into collections and then the form is loaded from its specific collection (class instance). If you are going to run through the entire recordset every time the form opens... why not simply load the data into a collection the first time and let the poor disk take a nap? This is not rocket science. In fact if I hadn't had some calls from clients interrupt me it would be done already. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > Hmmmm, actually, the way you have this set up, you could do this just > fine without an array or collection. > > Instead of this: > > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Do this: > > strSQL="SELECT fldLanguageControl, fldLanguage" & strLanguageToTranslate > & " FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" > set rs=New Recordset > rs.open strsql,currentproject.connection, adopenkeyset,adlockreadonly > if rs.eof=false then rs.movefirst > do until rs.eof=true > me(rs.fields(0).value).Caption=rs.fields(1).value > Loop > Rs.close > Set rs=nothing > > That way you are pulling the recordset up....and just running through it > once...instead of trying to find every record based on the control. > > Drew From DWUTKA at Marlow.com Thu Feb 19 12:51:03 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Thu, 19 Feb 2009 12:51:03 -0600 Subject: [AccessD] Find First in an Array? In-Reply-To: <499D9B1D.9070500@colbyconsulting.com> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <499ca1fe.0506d00a.6d1a.7fbc@mx.google.com><499CB9BD.7060805@colbyconsulting.com> <8255763CD64848148125E43CA2B62467@HAL9005> <499D9B1D.9070500@colbyconsulting.com> Message-ID: True. It would be ideal to load all this in a global collection. But Rocky's issue was speed. And his speed problem was due to how he was getting the information from the recordset. But I completely agree with you JC, a collection is better...but then again, I build almost every data centric app I have with classes and collections for pretty much everything... Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Thursday, February 19, 2009 11:47 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? ICK! This application is PERFECT for caching. The data does not change from the time the database opens to the time it closes. The data is loaded once into collections and then the form is loaded from its specific collection (class instance). If you are going to run through the entire recordset every time the form opens... why not simply load the data into a collection the first time and let the poor disk take a nap? This is not rocket science. In fact if I hadn't had some calls from clients interrupt me it would be done already. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > Hmmmm, actually, the way you have this set up, you could do this just > fine without an array or collection. > > Instead of this: > > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Do this: > > strSQL="SELECT fldLanguageControl, fldLanguage" & strLanguageToTranslate > & " FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" > set rs=New Recordset > rs.open strsql,currentproject.connection, adopenkeyset,adlockreadonly > if rs.eof=false then rs.movefirst > do until rs.eof=true > me(rs.fields(0).value).Caption=rs.fields(1).value > Loop > Rs.close > Set rs=nothing > > That way you are pulling the recordset up....and just running through it > once...instead of trying to find every record based on the control. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin > at Beach Access Software > Sent: Thursday, February 19, 2009 12:57 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > John: > > The table layout is: > > fldLanguageID Autonumber > fldLanguageForm Text Name of the form that the control is on > fldLanguageControl Text Name of the control > fldLanguageControlType Text Not Used > fldLanguageEnglish Text > fldLanguageChineseComplex Text > fldLanguageChineseSimple Text > fldLanguageSpanish Text > fldLanguageFrench Text > > In the translate routine I use: > > Set frm = Forms(argForm) > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Where argForm is the form name passed to the function. So I think I > might > get a big boost in response time by indexing fldLanguageForm and > fldLanguageControl. > > There are only about 2500 records in the table so I'm thinking that the > whole recordset is probably in memory anyway. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 18, 2009 5:46 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Does this imply a table structure of: > > TR_ID Auto > TR_CtlName Text > TR_L1 text (or memo?) for language 1 > TR_L2 text (or memo?) for language 2 > Etc > > I would suggest that you add a form (or container) field. A control > name is > unique on a form, however it could be the same on different forms but > have a > different language string. By having a form field you could pull > subsets of > records based on the form name, then use the control name (now > guaranteed to > be unique), then obtain the language string. > > It appears from your email however that you already have this stuff set > up, > so you might be resistant to modifying how it works. > > If this is all just one big table with control names guaranteed to be > unique > then you could just stash it in one big collection. There is a problem > however which is that classes get pretty slow as they get large. If you > get > up past 10,000 strings (I don't know the exact point) it would bog back > down. If you broke it down into controls on a form, then you would > ensure > that the total strings in any given collection is pretty small. > > Again I would build a class for all the code and the collection to load > one > form. then a supervisor class to hold instances of this form class > keyed on > form name. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: >> Max: >> >> That would work except the table driven approach is so much more > easier. >> Easy to add a language (got French and Spanish now in addition to >> traditional and simplified Chinese), too, or make a change to a > translation. >> To add a language I just add a column for that language to the Control > >> and Messages tables and send them to the translator. Add that >> language to the language selector combo on the Preferences form, and >> walla! Another language. >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwcolby at colbyconsulting.com Thu Feb 19 12:52:32 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 19 Feb 2009 13:52:32 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: References: Message-ID: <499DAA70.5090100@colbyconsulting.com> Gustav, I don't care what you do with the recordset you still have to move through it to get to the correct control record, then you have to reference the right field to get the string etc. To use a collection all you do is (psuedocode of course): dim col as collection open recordset while not rst.eof col.add rst!TranslationFld, rst!CtlNameFld .movenext wend close recordset Dimension a collection. Open the recordset. Iterate through the recordset dropping the translation field into the collection, keyed on control name. This only has to be done one time and you are through with the recordset. To get it back out all you need to do is: dim ctl as control for each ctl in form.controls on error resume next ctl.Caption = col(Ctl.Name) next Dimension a control. Iterate through the form's control collection. Use each control's name to index into the collection. If a value exists it is moved into the caption otherwise it moves to the next control. It doesn't get any easier and it WILL be faster, almost assuredly by a LOT. Probably a hundred or more times faster. Pulling the data out of the collection and stuffing it into controls will be BLAZING fast. Almost certainly under a millisecond. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > But why not just load the recordset as static when you initialize the class? Zero additional code, no fuzzing with collections etc. > > /gustav > >>>> jwcolby at colbyconsulting.com 19-02-2009 18:47 >>> > ICK! > > This application is PERFECT for caching. The data does not change from the time the database opens > to the time it closes. The data is loaded once into collections and then the form is loaded from > its specific collection (class instance). If you are going to run through the entire recordset > every time the form opens... why not simply load the data into a collection the first time and let > the poor disk take a nap? > > This is not rocket science. In fact if I hadn't had some calls from clients interrupt me it would > be done already. > > John W. Colby > www.ColbyConsulting.com From DWUTKA at Marlow.com Thu Feb 19 12:53:16 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Thu, 19 Feb 2009 12:53:16 -0600 Subject: [AccessD] Find First in an Array? In-Reply-To: <03DC01E6037D4BE3931BF41095651721@HAL9005> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <499ca1fe.0506d00a.6d1a.7fbc@mx.google.com><499CB9BD.7060805@colbyconsulting.com><8255763CD64848148125E43CA2B62467@HAL9005> <03DC01E6037D4BE3931BF41095651721@HAL9005> Message-ID: Of course. You have to look at the controlling entity. Even though the forms have the controls, each form has separate controls, to try and find a control in a recordset is going to require 'looking' for that record. If you can just pull up all the records based on the form, you now have all the controls, it's just listed in the order that the recordset pulls them up in, not in the order the form has. Of course, the irony is, you are still using a collection. You are using the controls collection, which is indexed by the controls name..... you just didn't program the controls collection. ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Thursday, February 19, 2009 11:57 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? Dang. I think you're right. Gotta try that. You think it'll be faster than SEEK? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Thursday, February 19, 2009 9:33 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Hmmmm, actually, the way you have this set up, you could do this just fine without an array or collection. Instead of this: For Each ctl In frm rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and fldLanguageControl = '" _ & ctl.Name & "'" Do this: strSQL="SELECT fldLanguageControl, fldLanguage" & strLanguageToTranslate & " FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" set rs=New Recordset rs.open strsql,currentproject.connection, adopenkeyset,adlockreadonly if rs.eof=false then rs.movefirst do until rs.eof=true me(rs.fields(0).value).Caption=rs.fields(1).value Loop Rs.close Set rs=nothing That way you are pulling the recordset up....and just running through it once...instead of trying to find every record based on the control. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Thursday, February 19, 2009 12:57 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? John: The table layout is: fldLanguageID Autonumber fldLanguageForm Text Name of the form that the control is on fldLanguageControl Text Name of the control fldLanguageControlType Text Not Used fldLanguageEnglish Text fldLanguageChineseComplex Text fldLanguageChineseSimple Text fldLanguageSpanish Text fldLanguageFrench Text In the translate routine I use: Set frm = Forms(argForm) For Each ctl In frm rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and fldLanguageControl = '" _ & ctl.Name & "'" Where argForm is the form name passed to the function. So I think I might get a big boost in response time by indexing fldLanguageForm and fldLanguageControl. There are only about 2500 records in the table so I'm thinking that the whole recordset is probably in memory anyway. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 18, 2009 5:46 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Does this imply a table structure of: TR_ID Auto TR_CtlName Text TR_L1 text (or memo?) for language 1 TR_L2 text (or memo?) for language 2 Etc I would suggest that you add a form (or container) field. A control name is unique on a form, however it could be the same on different forms but have a different language string. By having a form field you could pull subsets of records based on the form name, then use the control name (now guaranteed to be unique), then obtain the language string. It appears from your email however that you already have this stuff set up, so you might be resistant to modifying how it works. If this is all just one big table with control names guaranteed to be unique then you could just stash it in one big collection. There is a problem however which is that classes get pretty slow as they get large. If you get up past 10,000 strings (I don't know the exact point) it would bog back down. If you broke it down into controls on a form, then you would ensure that the total strings in any given collection is pretty small. Again I would build a class for all the code and the collection to load one form. then a supervisor class to hold instances of this form class keyed on form name. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Max: > > That would work except the table driven approach is so much more easier. > Easy to add a language (got French and Spanish now in addition to > traditional and simplified Chinese), too, or make a change to a translation. > To add a language I just add a column for that language to the Control > and Messages tables and send them to the translator. Add that > language to the language selector combo on the Preferences form, and > walla! Another language. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwcolby at colbyconsulting.com Thu Feb 19 13:22:19 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 19 Feb 2009 14:22:19 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <499d9cbb.0506d00a.7ca2.4aad@mx.google.com> References: <07DC29BA14CF4FFF852FA0E72E151F9C@HAL9005> <499ca1fe.0506d00a.6d1a.7fbc@mx.google.com><499CB9BD.7060805@colbyconsulting.com> <8255763CD64848148125E43CA2B62467@HAL9005> <499D9B1D.9070500@colbyconsulting.com> <499d9cbb.0506d00a.7ca2.4aad@mx.google.com> Message-ID: <499DB16B.1070106@colbyconsulting.com> I know. I want to do fun stuff and the clients want me to work for them. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Does clients - get in the way all the time....sheesh! No consideration > > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 19 February 2009 17:47 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > ICK! > > This application is PERFECT for caching. The data does not change from the > time the database opens > to the time it closes. The data is loaded once into collections and then > the form is loaded from > its specific collection (class instance). If you are going to run through > the entire recordset > every time the form opens... why not simply load the data into a collection > the first time and let > the poor disk take a nap? > > This is not rocket science. In fact if I hadn't had some calls from clients > interrupt me it would > be done already. > > John W. Colby > www.ColbyConsulting.com From ab-mi at post3.tele.dk Thu Feb 19 15:03:57 2009 From: ab-mi at post3.tele.dk (Asger Blond) Date: Thu, 19 Feb 2009 22:03:57 +0100 Subject: [AccessD] OT - How to send messages from different accounts In-Reply-To: <0D8C15F0770A45109DBA1D55E62E35D9@reubennx9500> References: <0D8C15F0770A45109DBA1D55E62E35D9@reubennx9500> Message-ID: <807DE68FFF3B426987444DC440AD201A@AB> I only saw the one from accessd@ to which I responded. Asger -----Oprindelig meddelelse----- Fra: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] P? vegne af Reuben Cummings Sendt: 19. februar 2009 16:38 Til: 'Access Developers discussion and problem solving' Emne: Re: [AccessD] OT - How to send messages from different accounts Did anyone see two messages from me concerning needing help with using Keystrokes? I have never seen the one I sent from reuben@, but I do see the one from accessd at . Reuben Cummings GFC, LLC 812.523.1017 > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of > Bryan Carbonnell > Sent: Wednesday, February 18, 2009 3:43 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] OT - How to send messages from > different accounts > > > On Wed, Feb 18, 2009 at 3:03 PM, Reuben Cummings > wrote: > > Do I have to send emails to the list from the same email > that is on record > > for the list? > > > > I use accessd at gfconsultants.com for the lists (that way the > list messages > > don't get pushed to my phone). But my regular account is > reuben at gfc... > > > > If I forget to change the sender it'll come from Reuben... > > > > Will the list still process the message? > > Nope. > > Here's what I recommend though.... > > Subscribe with reuben at ... and then go into the settings for that > subscription and set it to nomail (vacation mode) That way, you won't > get email to reuben at ... but can still post from that address. > > -- > Bryan Carbonnell - carbonnb at gmail.com > Life's journey is not to arrive at the grave safely in a well > preserved body, but rather to skid in sideways, totally worn out, > shouting "What a great ride!" > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From dbdoug at gmail.com Thu Feb 19 15:35:04 2009 From: dbdoug at gmail.com (Doug Steele) Date: Thu, 19 Feb 2009 13:35:04 -0800 Subject: [AccessD] Continuous form question Message-ID: <4dd71a0c0902191335w1a90a264i2652bcd4435f6244@mail.gmail.com> Hello: I have a large continuous form which will normally be showing about 600 rows of around 20 columns. After editing it, my client would like some kind of visual clue as to which individual cells in the form have been updated, so that someone else can quickly look it over and see where changes have been made. Does anyone have a good way of doing this? So far, any way I've thought about has been really ugly to implement. Thanks, Doug Steele From mcp2004 at mail.ru Thu Feb 19 15:40:20 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Fri, 20 Feb 2009 00:40:20 +0300 Subject: [AccessD] =?koi8-r?b?RmluZCBGaXJzdCBpbiBhbiBBcnJheT8=?= In-Reply-To: <03DC01E6037D4BE3931BF41095651721@HAL9005> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> Message-ID: You decide, Rocky, Do you have time for that experimenting? May I warn you about what is known as: "Premature Optimization" http://c2.com/cgi/wiki?PrematureOptimization and "Premature Generalization" http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil ? Have a look: "Death by premature generalization" http://ryanfarley.com/blog/archive/2004/04/30/570.aspx My name is Shamil, you know :) and I have been a premature generalizer in many cases I must admit - but I'm getting more and more XP/SCRUM agile habits these days, and I'm getting more fun from programming real life business tasks without my premature generalization and optimization not so good(?) past habits... IMO in the case of the context of this thread using .Seek is the closest and quickest yet good enough (and maybe the only one needed for many years ahead) solution/transition from your existing .FindFirst-based code... If that would not be good/speedy enough in your case then I'd probaably use static array loaded on first call/after reset using .GetRows() with accompanying static collection with FormName/ControlName as a key to keep value for static array entry index, and a function to get translation value using this collection/array... etc... Thank you. -- Shamil -----Original Message----- From: "Rocky Smolin at Beach Access Software" To: "'Access Developers discussion and problem solving'" Date: Thu, 19 Feb 2009 09:56:55 -0800 Subject: Re: [AccessD] Find First in an Array? > > Dang. I think you're right. Gotta try that. You think it'll be faster > than SEEK? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Thursday, February 19, 2009 9:33 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Hmmmm, actually, the way you have this set up, you could do this just fine > without an array or collection. > > Instead of this: > > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Do this: > > strSQL="SELECT fldLanguageControl, fldLanguage" & strLanguageToTranslate & " > FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" > set rs=New Recordset > rs.open strsql,currentproject.connection, adopenkeyset,adlockreadonly if > rs.eof=false then rs.movefirst do until rs.eof=true > me(rs.fields(0).value).Caption=rs.fields(1).value > Loop > Rs.close > Set rs=nothing > > That way you are pulling the recordset up....and just running through it > once...instead of trying to find every record based on the control. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: Thursday, February 19, 2009 12:57 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > John: > > The table layout is: > > fldLanguageID Autonumber > fldLanguageForm Text Name of the form that the control is on > fldLanguageControl Text Name of the control > fldLanguageControlType Text Not Used > fldLanguageEnglish Text > fldLanguageChineseComplex Text > fldLanguageChineseSimple Text > fldLanguageSpanish Text > fldLanguageFrench Text > > In the translate routine I use: > > Set frm = Forms(argForm) > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Where argForm is the form name passed to the function. So I think I might > get a big boost in response time by indexing fldLanguageForm and > fldLanguageControl. > > There are only about 2500 records in the table so I'm thinking that the > whole recordset is probably in memory anyway. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 18, 2009 5:46 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Does this imply a table structure of: > > TR_ID Auto > TR_CtlName Text > TR_L1 text (or memo?) for language 1 > TR_L2 text (or memo?) for language 2 > Etc > > I would suggest that you add a form (or container) field. A control name is > unique on a form, however it could be the same on different forms but have a > different language string. By having a form field you could pull subsets of > records based on the form name, then use the control name (now guaranteed to > be unique), then obtain the language string. > > It appears from your email however that you already have this stuff set up, > so you might be resistant to modifying how it works. > > If this is all just one big table with control names guaranteed to be unique > then you could just stash it in one big collection. There is a problem > however which is that classes get pretty slow as they get large. If you get > up past 10,000 strings (I don't know the exact point) it would bog back > down. If you broke it down into controls on a form, then you would ensure > that the total strings in any given collection is pretty small. > > Again I would build a class for all the code and the collection to load one > form. then a supervisor class to hold instances of this form class keyed on > form name. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: > > Max: > > > > That would work except the table driven approach is so much more > easier. > > Easy to add a language (got French and Spanish now in addition to > > traditional and simplified Chinese), too, or make a change to a > translation. > > To add a language I just add a column for that language to the Control > > > and Messages tables and send them to the translator. Add that > > language to the language selector combo on the Preferences form, and > > walla! Another language. > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com The information contained in this > transmission is intended only for the person or entity to which it is > addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive > material. If you are not the intended recipient, please contact the sender > immediately and destroy the material in its entirety, whether electronic or > hard copy. You are notified that any review, retransmission, copying, > disclosure, dissemination, or other use of, or taking of any action in > reliance upon this information by persons or entities other than the > intended recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From max.wanadoo at gmail.com Thu Feb 19 15:45:28 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 19 Feb 2009 21:45:28 -0000 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005> Message-ID: <499dd2fd.0a1ad00a.66fc.1cb3@mx.google.com> Hi Shamil, I was just going to make exactly the same recommendations! Great minds think alike, eh? ^_^ Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Salakhetdinov Shamil Sent: 19 February 2009 21:40 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? You decide, Rocky, Do you have time for that experimenting? May I warn you about what is known as: "Premature Optimization" http://c2.com/cgi/wiki?PrematureOptimization and "Premature Generalization" http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil ? Have a look: "Death by premature generalization" http://ryanfarley.com/blog/archive/2004/04/30/570.aspx My name is Shamil, you know :) and I have been a premature generalizer in many cases I must admit - but I'm getting more and more XP/SCRUM agile habits these days, and I'm getting more fun from programming real life business tasks without my premature generalization and optimization not so good(?) past habits... IMO in the case of the context of this thread using .Seek is the closest and quickest yet good enough (and maybe the only one needed for many years ahead) solution/transition from your existing .FindFirst-based code... If that would not be good/speedy enough in your case then I'd probaably use static array loaded on first call/after reset using .GetRows() with accompanying static collection with FormName/ControlName as a key to keep value for static array entry index, and a function to get translation value using this collection/array... etc... Thank you. -- Shamil -----Original Message----- From: "Rocky Smolin at Beach Access Software" To: "'Access Developers discussion and problem solving'" Date: Thu, 19 Feb 2009 09:56:55 -0800 Subject: Re: [AccessD] Find First in an Array? > > Dang. I think you're right. Gotta try that. You think it'll be faster > than SEEK? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Thursday, February 19, 2009 9:33 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Hmmmm, actually, the way you have this set up, you could do this just fine > without an array or collection. > > Instead of this: > > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Do this: > > strSQL="SELECT fldLanguageControl, fldLanguage" & strLanguageToTranslate & " > FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" > set rs=New Recordset > rs.open strsql,currentproject.connection, adopenkeyset,adlockreadonly if > rs.eof=false then rs.movefirst do until rs.eof=true > me(rs.fields(0).value).Caption=rs.fields(1).value > Loop > Rs.close > Set rs=nothing > > That way you are pulling the recordset up....and just running through it > once...instead of trying to find every record based on the control. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: Thursday, February 19, 2009 12:57 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > John: > > The table layout is: > > fldLanguageID Autonumber > fldLanguageForm Text Name of the form that the control is on > fldLanguageControl Text Name of the control > fldLanguageControlType Text Not Used > fldLanguageEnglish Text > fldLanguageChineseComplex Text > fldLanguageChineseSimple Text > fldLanguageSpanish Text > fldLanguageFrench Text > > In the translate routine I use: > > Set frm = Forms(argForm) > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Where argForm is the form name passed to the function. So I think I might > get a big boost in response time by indexing fldLanguageForm and > fldLanguageControl. > > There are only about 2500 records in the table so I'm thinking that the > whole recordset is probably in memory anyway. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 18, 2009 5:46 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Does this imply a table structure of: > > TR_ID Auto > TR_CtlName Text > TR_L1 text (or memo?) for language 1 > TR_L2 text (or memo?) for language 2 > Etc > > I would suggest that you add a form (or container) field. A control name is > unique on a form, however it could be the same on different forms but have a > different language string. By having a form field you could pull subsets of > records based on the form name, then use the control name (now guaranteed to > be unique), then obtain the language string. > > It appears from your email however that you already have this stuff set up, > so you might be resistant to modifying how it works. > > If this is all just one big table with control names guaranteed to be unique > then you could just stash it in one big collection. There is a problem > however which is that classes get pretty slow as they get large. If you get > up past 10,000 strings (I don't know the exact point) it would bog back > down. If you broke it down into controls on a form, then you would ensure > that the total strings in any given collection is pretty small. > > Again I would build a class for all the code and the collection to load one > form. then a supervisor class to hold instances of this form class keyed on > form name. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: > > Max: > > > > That would work except the table driven approach is so much more > easier. > > Easy to add a language (got French and Spanish now in addition to > > traditional and simplified Chinese), too, or make a change to a > translation. > > To add a language I just add a column for that language to the Control > > > and Messages tables and send them to the translator. Add that > > language to the language selector combo on the Preferences form, and > > walla! Another language. > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com The information contained in this > transmission is intended only for the person or entity to which it is > addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive > material. If you are not the intended recipient, please contact the sender > immediately and destroy the material in its entirety, whether electronic or > hard copy. You are notified that any review, retransmission, copying, > disclosure, dissemination, or other use of, or taking of any action in > reliance upon this information by persons or entities other than the > intended recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Thu Feb 19 15:47:09 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Thu, 19 Feb 2009 13:47:09 -0800 Subject: [AccessD] Continuous form question In-Reply-To: <4dd71a0c0902191335w1a90a264i2652bcd4435f6244@mail.gmail.com> References: <4dd71a0c0902191335w1a90a264i2652bcd4435f6244@mail.gmail.com> Message-ID: This is why reports were invented. I'm afraid if a client had to see 600 rows of 20 columns and actually read it, I'd think seriously about finding a new client. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Doug Steele Sent: Thursday, February 19, 2009 1:35 PM To: accessd at databaseadvisors.com Subject: [AccessD] Continuous form question Hello: I have a large continuous form which will normally be showing about 600 rows of around 20 columns. After editing it, my client would like some kind of visual clue as to which individual cells in the form have been updated, so that someone else can quickly look it over and see where changes have been made. Does anyone have a good way of doing this? So far, any way I've thought about has been really ugly to implement. Thanks, Doug Steele -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From dbdoug at gmail.com Thu Feb 19 16:09:38 2009 From: dbdoug at gmail.com (Doug Steele) Date: Thu, 19 Feb 2009 14:09:38 -0800 Subject: [AccessD] Continuous form question In-Reply-To: References: <4dd71a0c0902191335w1a90a264i2652bcd4435f6244@mail.gmail.com> Message-ID: <4dd71a0c0902191409v3da1c7b4ha3e062c4876e72@mail.gmail.com> I'll send you his phone number if you would like to talk to him on my behalf :) The reason we would like to highlight changed cells is precisely so that this large screen can easily be scanned for changes. It's a shipping scheduling screen - all the rows need to be showing because they depend on each other. What I've come up with is a second, change tracking, field in the table which overlays the actual field in the form; when the actual field is changed I put some characters in the overlay field which cause the cell to appear with a red bar across the bottom. It works, but as I said, it's ugly to code. Doug Steele On Thu, Feb 19, 2009 at 1:47 PM, Charlotte Foust wrote: > This is why reports were invented. I'm afraid if a client had to see > 600 rows of 20 columns and actually read it, I'd think seriously about > finding a new client. > > Charlotte Foust > > -----Original Message----- > Subject: [AccessD] Continuous form question > > Hello: > > I have a large continuous form which will normally be showing about 600 > rows of around 20 columns. After editing it, my client would like some > kind of visual clue as to which individual cells in the form have been > updated, so that someone else can quickly look it over and see where > changes have been made. Does anyone have a good way of doing this? So > far, any way I've thought about has been really ugly to implement. > > > From cfoust at infostatsystems.com Thu Feb 19 16:16:54 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Thu, 19 Feb 2009 14:16:54 -0800 Subject: [AccessD] Continuous form question In-Reply-To: <4dd71a0c0902191409v3da1c7b4ha3e062c4876e72@mail.gmail.com> References: <4dd71a0c0902191335w1a90a264i2652bcd4435f6244@mail.gmail.com> <4dd71a0c0902191409v3da1c7b4ha3e062c4876e72@mail.gmail.com> Message-ID: Are you working with a version that allows conditional formatting? If so that's probably the most straightforward approach. Everything else depends on a lot of code. I've done what you're doing and it isn't pretty by any means, but you might be able to give it a facelift by binding the controls to a class as JC has been teaching, give the controls a DataChanged property, and use that to control the rest. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Doug Steele Sent: Thursday, February 19, 2009 2:10 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Continuous form question I'll send you his phone number if you would like to talk to him on my behalf :) The reason we would like to highlight changed cells is precisely so that this large screen can easily be scanned for changes. It's a shipping scheduling screen - all the rows need to be showing because they depend on each other. What I've come up with is a second, change tracking, field in the table which overlays the actual field in the form; when the actual field is changed I put some characters in the overlay field which cause the cell to appear with a red bar across the bottom. It works, but as I said, it's ugly to code. Doug Steele On Thu, Feb 19, 2009 at 1:47 PM, Charlotte Foust wrote: > This is why reports were invented. I'm afraid if a client had to see > 600 rows of 20 columns and actually read it, I'd think seriously about > finding a new client. > > Charlotte Foust > > -----Original Message----- > Subject: [AccessD] Continuous form question > > Hello: > > I have a large continuous form which will normally be showing about > 600 rows of around 20 columns. After editing it, my client would like > some kind of visual clue as to which individual cells in the form have > been updated, so that someone else can quickly look it over and see > where changes have been made. Does anyone have a good way of doing > this? So far, any way I've thought about has been really ugly to implement. > > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From mcp2004 at mail.ru Thu Feb 19 16:43:20 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Fri, 20 Feb 2009 01:43:20 +0300 Subject: [AccessD] =?koi8-r?b?RmluZCBGaXJzdCBpbiBhbiBBcnJheT8=?= In-Reply-To: <499dd2fd.0a1ad00a.66fc.1cb3@mx.google.com> References: <499dd2fd.0a1ad00a.66fc.1cb3@mx.google.com> Message-ID: Thank you, Max. ;-) -- Shamil -----Original Message----- From: "Max Wanadoo" To: "'Access Developers discussion and problem solving'" Date: Thu, 19 Feb 2009 21:45:28 -0000 Subject: Re: [AccessD] Find First in an Array? > > Hi Shamil, > I was just going to make exactly the same recommendations! Great minds > think alike, eh? > > ^_^ > > Max > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Salakhetdinov > Shamil > Sent: 19 February 2009 21:40 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > You decide, Rocky, > > Do you have time for that experimenting? > > May I warn you about what is known as: > > "Premature Optimization" > http://c2.com/cgi/wiki?PrematureOptimization > > and > > "Premature Generalization" > http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil > > ? > > Have a look: > > "Death by premature generalization" > http://ryanfarley.com/blog/archive/2004/04/30/570.aspx > > > My name is Shamil, you know :) and I have been a premature generalizer in > many cases I must admit - but I'm getting more and more XP/SCRUM agile > habits these days, and I'm getting more fun from programming real life > business tasks without my premature generalization and optimization not so > good(?) past habits... > > IMO in the case of the context of this thread using .Seek is the closest and > quickest yet good enough (and maybe the only one needed for many years > ahead) solution/transition from your existing .FindFirst-based code... > > If that would not be good/speedy enough in your case then I'd probaably use > static array loaded on first call/after reset using .GetRows() with > accompanying static collection with FormName/ControlName as a key to keep > value for static array entry index, and a function to get translation value > using this collection/array... > > etc... > > Thank you. > > -- > Shamil > <<< tail trimmed >>> From Gustav at cactus.dk Thu Feb 19 16:51:51 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Thu, 19 Feb 2009 23:51:51 +0100 Subject: [AccessD] Find First in an Array? Message-ID: Hi Shamil and Max Count me in. I prefer testing to guessing and assuming. Until now only Shamil has presented some test results. /gustav >>> max.wanadoo at gmail.com 19-02-2009 22:45 >>> Hi Shamil, I was just going to make exactly the same recommendations! Great minds think alike, eh? ^_^ Max From rockysmolin at bchacc.com Thu Feb 19 16:53:09 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Thu, 19 Feb 2009 14:53:09 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005> Message-ID: <15769CDACB90431FA108E3CA24615E19@HAL9005> Thank YOU! Someone once posted I think it was on this list 'A good program is one that works'. That's my motto, now. No one ever looks under the hood, and I always judge my programs from the outside. Matters not how the data got on the form as long as it happens 1) fast and 2) accurate. Right now, my quest for faster translation is because I see some delay, especially in the Chinese (think it may be due to the Unicode), and I'd like to get rid of the flashing that seems to accompany many Access apps at one point or another. Going to FindFirst to Seek seems fast and easy so the time may be worth the risk for an improvement in user comfort. However, it's a good opportunity to learn and use a class. So I'm going to have to find the time to go back to the beginning to John's classes class and learn it. Seems like a valuable thing to do now that retirement seems to have receded into the distant future. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Salakhetdinov Shamil Sent: Thursday, February 19, 2009 1:40 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? You decide, Rocky, Do you have time for that experimenting? May I warn you about what is known as: "Premature Optimization" http://c2.com/cgi/wiki?PrematureOptimization and "Premature Generalization" http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil ? Have a look: "Death by premature generalization" http://ryanfarley.com/blog/archive/2004/04/30/570.aspx My name is Shamil, you know :) and I have been a premature generalizer in many cases I must admit - but I'm getting more and more XP/SCRUM agile habits these days, and I'm getting more fun from programming real life business tasks without my premature generalization and optimization not so good(?) past habits... IMO in the case of the context of this thread using .Seek is the closest and quickest yet good enough (and maybe the only one needed for many years ahead) solution/transition from your existing .FindFirst-based code... If that would not be good/speedy enough in your case then I'd probaably use static array loaded on first call/after reset using .GetRows() with accompanying static collection with FormName/ControlName as a key to keep value for static array entry index, and a function to get translation value using this collection/array... etc... Thank you. -- Shamil -----Original Message----- From: "Rocky Smolin at Beach Access Software" To: "'Access Developers discussion and problem solving'" Date: Thu, 19 Feb 2009 09:56:55 -0800 Subject: Re: [AccessD] Find First in an Array? > > Dang. I think you're right. Gotta try that. You think it'll be > faster than SEEK? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Thursday, February 19, 2009 9:33 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Hmmmm, actually, the way you have this set up, you could do this just > fine without an array or collection. > > Instead of this: > > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Do this: > > strSQL="SELECT fldLanguageControl, fldLanguage" & strLanguageToTranslate & " > FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" > set rs=New Recordset > rs.open strsql,currentproject.connection, adopenkeyset,adlockreadonly > if rs.eof=false then rs.movefirst do until rs.eof=true > me(rs.fields(0).value).Caption=rs.fields(1).value > Loop > Rs.close > Set rs=nothing > > That way you are pulling the recordset up....and just running through > it once...instead of trying to find every record based on the control. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: Thursday, February 19, 2009 12:57 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > John: > > The table layout is: > > fldLanguageID Autonumber > fldLanguageForm Text Name of the form that the control is on > fldLanguageControl Text Name of the control > fldLanguageControlType Text Not Used > fldLanguageEnglish Text > fldLanguageChineseComplex Text > fldLanguageChineseSimple Text > fldLanguageSpanish Text > fldLanguageFrench Text > > In the translate routine I use: > > Set frm = Forms(argForm) > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Where argForm is the form name passed to the function. So I think I > might get a big boost in response time by indexing fldLanguageForm and > fldLanguageControl. > > There are only about 2500 records in the table so I'm thinking that > the whole recordset is probably in memory anyway. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 18, 2009 5:46 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Does this imply a table structure of: > > TR_ID Auto > TR_CtlName Text > TR_L1 text (or memo?) for language 1 > TR_L2 text (or memo?) for language 2 > Etc > > I would suggest that you add a form (or container) field. A control > name is unique on a form, however it could be the same on different > forms but have a different language string. By having a form field > you could pull subsets of records based on the form name, then use the > control name (now guaranteed to be unique), then obtain the language string. > > It appears from your email however that you already have this stuff > set up, so you might be resistant to modifying how it works. > > If this is all just one big table with control names guaranteed to be > unique then you could just stash it in one big collection. There is a > problem however which is that classes get pretty slow as they get > large. If you get up past 10,000 strings (I don't know the exact > point) it would bog back down. If you broke it down into controls on > a form, then you would ensure that the total strings in any given collection is pretty small. > > Again I would build a class for all the code and the collection to > load one form. then a supervisor class to hold instances of this form > class keyed on form name. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: > > Max: > > > > That would work except the table driven approach is so much more > easier. > > Easy to add a language (got French and Spanish now in addition to > > traditional and simplified Chinese), too, or make a change to a > translation. > > To add a language I just add a column for that language to the > > Control > > > and Messages tables and send them to the translator. Add that > > language to the language selector combo on the Preferences form, and > > walla! Another language. > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com The information contained in > this transmission is intended only for the person or entity to which > it is addressed and may contain II-VI Proprietary and/or II-VI > Business Sensitive material. If you are not the intended recipient, > please contact the sender immediately and destroy the material in its > entirety, whether electronic or hard copy. You are notified that any > review, retransmission, copying, disclosure, dissemination, or other > use of, or taking of any action in reliance upon this information by > persons or entities other than the intended recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Thu Feb 19 17:00:46 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 19 Feb 2009 23:00:46 -0000 Subject: [AccessD] Find First in an Array? In-Reply-To: References: Message-ID: <499de4a2.0508d00a.525d.4916@mx.google.com> Gustav, Ummm, ummm, well actually Gustav, Shamil is light years ahead of me. I was trying to be humorous because of the complexity of his solutions. Wish I could produce what he does! I couldn't do what he does if my life depended on it. Ha! Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 19 February 2009 22:52 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Find First in an Array? Hi Shamil and Max Count me in. I prefer testing to guessing and assuming. Until now only Shamil has presented some test results. /gustav >>> max.wanadoo at gmail.com 19-02-2009 22:45 >>> Hi Shamil, I was just going to make exactly the same recommendations! Great minds think alike, eh? ^_^ Max -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Thu Feb 19 17:04:32 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 19 Feb 2009 23:04:32 -0000 Subject: [AccessD] Find First in an Array? In-Reply-To: <15769CDACB90431FA108E3CA24615E19@HAL9005> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <15769CDACB90431FA108E3CA24615E19@HAL9005> Message-ID: <499de585.1c05d00a.3006.ffffca6c@mx.google.com> That's my motto, now. No one ever looks under the hood, and I always judge my programs from the outside. Matters not how the data got on the form as long as it happens 1) fast and 2) accurate. Spot on, Rocky. Max From pcs.accessd at gmail.com Thu Feb 19 17:06:40 2009 From: pcs.accessd at gmail.com (Borge Hansen) Date: Fri, 20 Feb 2009 09:06:40 +1000 Subject: [AccessD] ADODB.recordset Scope Question Message-ID: Hi All, Quick question: The application on opening of a particular Form (that stays open and hidden until the application is closed or User logs in under another User Name) opens a few ADODB recordsets. On the closing of the Form the recordsets are closed and set to nothing... Example: On opening of the Form, a recordset is created called rsUsers_MASTER I am using the recordset as part of the Application's security. In a separate Function called many times throughout the application session, I do something like dim rs as new ADODB.recordset set rs = rsUsers_Master 'Do something with the rs '.. and then rs.close set rs = nothing ... However, that appears to make rsUsers_MASTER close and go out of scope.... I run the sub once - it works fine - the next time I see that after rs = rsUsers_MASTER rs is nothing So can you people confirm that when I set rs = rsUsers_MASTER I am really working with rsUsers_MASTER and not a separate copy of it held in rs ??? And when it comes to tidying up the rs, I don't need to do the usually rs.close set rs = nothing ?? I really would like to be able to work with a *separate* copy of rsUsers_MASTER that I can close and set to nothing at the end of the procedure. How do I do that?? Regards to all... it's been a while since I last dropped in to AccessD ...., Borge From cfoust at infostatsystems.com Thu Feb 19 17:10:03 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Thu, 19 Feb 2009 15:10:03 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: <499de585.1c05d00a.3006.ffffca6c@mx.google.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <15769CDACB90431FA108E3CA24615E19@HAL9005> <499de585.1c05d00a.3006.ffffca6c@mx.google.com> Message-ID: Then you MUST be an independent developer because if someone else reviews your code, believe me, they look under the hood! Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Thursday, February 19, 2009 3:05 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? That's my motto, now. No one ever looks under the hood, and I always judge my programs from the outside. Matters not how the data got on the form as long as it happens 1) fast and 2) accurate. Spot on, Rocky. Max -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Thu Feb 19 17:26:38 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 19 Feb 2009 23:26:38 -0000 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <15769CDACB90431FA108E3CA24615E19@HAL9005> <499de585.1c05d00a.3006.ffffca6c@mx.google.com> Message-ID: <499deab2.1c07d00a.0947.ffff8f03@mx.google.com> Well Charlotte, I have never in my whole 30+ years of programming came across any end-user who had a clue as to what I done. I was lucky if they understood what I told them as to how it worked. Those that paid the bill always delegated to somebody down the line because "they were too important and their time was way above computers" etc, etc. The poor old delegate was lumbered with signing off what they saw. My fear used to be that other programmers would look at my code and say "what on earth is that", but then I found that it was me saying that to them Ha! Ha! Max Ps. Move to the UK - ha! Keep smiling. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: 19 February 2009 23:10 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Then you MUST be an independent developer because if someone else reviews your code, believe me, they look under the hood! Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Thursday, February 19, 2009 3:05 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? That's my motto, now. No one ever looks under the hood, and I always judge my programs from the outside. Matters not how the data got on the form as long as it happens 1) fast and 2) accurate. Spot on, Rocky. Max -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From DWUTKA at Marlow.com Thu Feb 19 17:38:01 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Thu, 19 Feb 2009 17:38:01 -0600 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005> Message-ID: But how could seek be any faster then simply running through the recordset? Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Salakhetdinov Shamil Sent: Thursday, February 19, 2009 3:40 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? You decide, Rocky, Do you have time for that experimenting? May I warn you about what is known as: "Premature Optimization" http://c2.com/cgi/wiki?PrematureOptimization and "Premature Generalization" http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil ? Have a look: "Death by premature generalization" http://ryanfarley.com/blog/archive/2004/04/30/570.aspx My name is Shamil, you know :) and I have been a premature generalizer in many cases I must admit - but I'm getting more and more XP/SCRUM agile habits these days, and I'm getting more fun from programming real life business tasks without my premature generalization and optimization not so good(?) past habits... IMO in the case of the context of this thread using .Seek is the closest and quickest yet good enough (and maybe the only one needed for many years ahead) solution/transition from your existing .FindFirst-based code... If that would not be good/speedy enough in your case then I'd probaably use static array loaded on first call/after reset using .GetRows() with accompanying static collection with FormName/ControlName as a key to keep value for static array entry index, and a function to get translation value using this collection/array... etc... Thank you. -- Shamil -----Original Message----- From: "Rocky Smolin at Beach Access Software" To: "'Access Developers discussion and problem solving'" Date: Thu, 19 Feb 2009 09:56:55 -0800 Subject: Re: [AccessD] Find First in an Array? > > Dang. I think you're right. Gotta try that. You think it'll be faster > than SEEK? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Thursday, February 19, 2009 9:33 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Hmmmm, actually, the way you have this set up, you could do this just fine > without an array or collection. > > Instead of this: > > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Do this: > > strSQL="SELECT fldLanguageControl, fldLanguage" & strLanguageToTranslate & " > FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" > set rs=New Recordset > rs.open strsql,currentproject.connection, adopenkeyset,adlockreadonly if > rs.eof=false then rs.movefirst do until rs.eof=true > me(rs.fields(0).value).Caption=rs.fields(1).value > Loop > Rs.close > Set rs=nothing > > That way you are pulling the recordset up....and just running through it > once...instead of trying to find every record based on the control. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: Thursday, February 19, 2009 12:57 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > John: > > The table layout is: > > fldLanguageID Autonumber > fldLanguageForm Text Name of the form that the control is on > fldLanguageControl Text Name of the control > fldLanguageControlType Text Not Used > fldLanguageEnglish Text > fldLanguageChineseComplex Text > fldLanguageChineseSimple Text > fldLanguageSpanish Text > fldLanguageFrench Text > > In the translate routine I use: > > Set frm = Forms(argForm) > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Where argForm is the form name passed to the function. So I think I might > get a big boost in response time by indexing fldLanguageForm and > fldLanguageControl. > > There are only about 2500 records in the table so I'm thinking that the > whole recordset is probably in memory anyway. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 18, 2009 5:46 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Does this imply a table structure of: > > TR_ID Auto > TR_CtlName Text > TR_L1 text (or memo?) for language 1 > TR_L2 text (or memo?) for language 2 > Etc > > I would suggest that you add a form (or container) field. A control name is > unique on a form, however it could be the same on different forms but have a > different language string. By having a form field you could pull subsets of > records based on the form name, then use the control name (now guaranteed to > be unique), then obtain the language string. > > It appears from your email however that you already have this stuff set up, > so you might be resistant to modifying how it works. > > If this is all just one big table with control names guaranteed to be unique > then you could just stash it in one big collection. There is a problem > however which is that classes get pretty slow as they get large. If you get > up past 10,000 strings (I don't know the exact point) it would bog back > down. If you broke it down into controls on a form, then you would ensure > that the total strings in any given collection is pretty small. > > Again I would build a class for all the code and the collection to load one > form. then a supervisor class to hold instances of this form class keyed on > form name. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: > > Max: > > > > That would work except the table driven approach is so much more > easier. > > Easy to add a language (got French and Spanish now in addition to > > traditional and simplified Chinese), too, or make a change to a > translation. > > To add a language I just add a column for that language to the Control > > > and Messages tables and send them to the translator. Add that > > language to the language selector combo on the Preferences form, and > > walla! Another language. > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com The information contained in this > transmission is intended only for the person or entity to which it is > addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive > material. If you are not the intended recipient, please contact the sender > immediately and destroy the material in its entirety, whether electronic or > hard copy. You are notified that any review, retransmission, copying, > disclosure, dissemination, or other use of, or taking of any action in > reliance upon this information by persons or entities other than the > intended recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From Darryl.Collins at coles.com.au Thu Feb 19 17:38:47 2009 From: Darryl.Collins at coles.com.au (Darryl Collins) Date: Fri, 20 Feb 2009 10:38:47 +1100 Subject: [AccessD] Find First in an Array? In-Reply-To: <499deab2.1c07d00a.0947.ffff8f03@mx.google.com> Message-ID: <57E6E6CA42105A48B977303A2CDC2720080A7DAB65@WPEXCH22.retail.ad.cmltd.net.au> hahaha! Love it Max - Move to Oz too. This has been my experience exactly. I once had a meeting with some bigshots from PWC or similar to review a spreadsheet tool they had designed for the company I was working with and was a bit nervous about what they had to show me - would I understand it and not look like a goose reviewing it etc. Man! I couldn't believe what sloppy work they produced, or more to the point, what they charged the company to produce it. It was full of holes and was very flakey, you know the sort of thing. "oh, don't put data in that row as it will error" that sort of nonsense. Clearly I was over delviering and undercharging!! :) :) cheers Darryl -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Max Wanadoo Sent: Friday, 20 February 2009 10:27 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? Well Charlotte, I have never in my whole 30+ years of programming came across any end-user who had a clue as to what I done. I was lucky if they understood what I told them as to how it worked. Those that paid the bill always delegated to somebody down the line because "they were too important and their time was way above computers" etc, etc. The poor old delegate was lumbered with signing off what they saw. My fear used to be that other programmers would look at my code and say "what on earth is that", but then I found that it was me saying that to them Ha! Ha! Max Ps. Move to the UK - ha! Keep smiling. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: 19 February 2009 23:10 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Then you MUST be an independent developer because if someone else reviews your code, believe me, they look under the hood! Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Thursday, February 19, 2009 3:05 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? That's my motto, now. No one ever looks under the hood, and I always judge my programs from the outside. Matters not how the data got on the form as long as it happens 1) fast and 2) accurate. Spot on, Rocky. Max -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com This email and any attachments may contain privileged and confidential information and are intended for the named addressee only. If you have received this e-mail in error, please notify the sender and delete this e-mail immediately. Any confidentiality, privilege or copyright is not waived or lost because this e-mail has been sent to you in error. It is your responsibility to check this e-mail and any attachments for viruses. No warranty is made that this material is free from computer virus or any other defect or error. Any loss/damage incurred by using this material is not the sender's responsibility. The sender's entire liability will be limited to resupplying the material. From stuart at lexacorp.com.pg Thu Feb 19 17:40:25 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Fri, 20 Feb 2009 09:40:25 +1000 Subject: [AccessD] ADODB.recordset Scope Question In-Reply-To: References: Message-ID: <499E7A89.27903.2F44336@stuart.lexacorp.com.pg> Yep "Set rs = rsUsers_Master" makes rs another reference to the same recordset. Close rs and you close rsUsers_Master If you want to work with a separate copy of the data use Set rs = rsUsers_Master.Clone -- Stuart On 20 Feb 2009 at 9:06, Borge Hansen wrote: > Hi All, > Quick question: > The application on opening of a particular Form (that stays open and hidden > until the application is closed or User logs in under another User Name) > opens a few ADODB recordsets. > On the closing of the Form the recordsets are closed and set to nothing... > > Example: > On opening of the Form, a recordset is created called rsUsers_MASTER > > > I am using the recordset as part of the Application's security. > In a separate Function called many times throughout the application > session, I do something like > > dim rs as new ADODB.recordset > set rs = rsUsers_Master > > 'Do something with the rs > '.. and then > > rs.close > set rs = nothing > > ... > However, that appears to make rsUsers_MASTER close and go out of scope.... > I run the sub once - it works fine - the next time I see that after > rs = rsUsers_MASTER > rs is nothing > > > > So can you people confirm that when I > set rs = rsUsers_MASTER > I am really working with rsUsers_MASTER and not a separate copy of it held > in rs ??? > > And when it comes to tidying up the rs, I don't need to do the usually > rs.close > set rs = nothing > > ?? > > I really would like to be able to work with a *separate* copy of > rsUsers_MASTER that I can close and set to nothing at the end of the > procedure. > > How do I do that?? > > Regards to all... it's been a while since I last dropped in to AccessD ...., > Borge > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From DWUTKA at Marlow.com Thu Feb 19 17:43:46 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Thu, 19 Feb 2009 17:43:46 -0600 Subject: [AccessD] Find First in an Array? In-Reply-To: <15769CDACB90431FA108E3CA24615E19@HAL9005> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <15769CDACB90431FA108E3CA24615E19@HAL9005> Message-ID: Just to clarify Rocky.... While I completely agree that classes and collections provide fast, clear programming, with tons of capabilities, and I use them all the time from their abilities (which sometimes sacrifice a tad of speed for actual performance and ease of use).... your initial issue of using FindFirst will be faster with seek, but Seek is still going to have to do some looking. Reversing your logic, to find and fill the controls based on the record, instead of finding the record based on the control will go faster then either FindFirst or Seek. Because there will be no 'hunting' necessary. The query will bring up all the info for a specific form (so you are dealing with less data, less overhead), and then you just run through the recordset. If you want something that will go even faster.... create a global class, that loads all translations for all controls, and just keep it all in memory. That is going to be more programming though. And I doubt you will see much of a difference in performance doing the 'reverse logic' method over a collection method. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Thursday, February 19, 2009 4:53 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? Thank YOU! Someone once posted I think it was on this list 'A good program is one that works'. That's my motto, now. No one ever looks under the hood, and I always judge my programs from the outside. Matters not how the data got on the form as long as it happens 1) fast and 2) accurate. Right now, my quest for faster translation is because I see some delay, especially in the Chinese (think it may be due to the Unicode), and I'd like to get rid of the flashing that seems to accompany many Access apps at one point or another. Going to FindFirst to Seek seems fast and easy so the time may be worth the risk for an improvement in user comfort. However, it's a good opportunity to learn and use a class. So I'm going to have to find the time to go back to the beginning to John's classes class and learn it. Seems like a valuable thing to do now that retirement seems to have receded into the distant future. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From dwaters at usinternet.com Thu Feb 19 17:54:25 2009 From: dwaters at usinternet.com (Dan Waters) Date: Thu, 19 Feb 2009 17:54:25 -0600 Subject: [AccessD] Continuous form question In-Reply-To: <4dd71a0c0902191335w1a90a264i2652bcd4435f6244@mail.gmail.com> References: <4dd71a0c0902191335w1a90a264i2652bcd4435f6244@mail.gmail.com> Message-ID: <71E052EDFD04466B9028274778ABD1B8@danwaters> Here's an easy to code solution: 1) For each editable field in the table, create a duplicate field with a slightly different name. 2) In the form, add a non-visible control which is bound to the duplicate field. 3) When a field is changed, in the afterupdate event, write the original value of the visible control to the invisible control. If someone rewrites the original value into the visible control, then clear the invisible control. 4) For each visible control, add a conditional format which changes the background color of the visible control if there is a value in the corresponding non-visible control. 5) When you finally save your changes, be sure to clear all the duplicate fields. Good Luck! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Doug Steele Sent: Thursday, February 19, 2009 3:35 PM To: accessd at databaseadvisors.com Subject: [AccessD] Continuous form question Hello: I have a large continuous form which will normally be showing about 600 rows of around 20 columns. After editing it, my client would like some kind of visual clue as to which individual cells in the form have been updated, so that someone else can quickly look it over and see where changes have been made. Does anyone have a good way of doing this? So far, any way I've thought about has been really ugly to implement. Thanks, Doug Steele -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From mcp2004 at mail.ru Thu Feb 19 17:58:58 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Fri, 20 Feb 2009 02:58:58 +0300 Subject: [AccessD] =?koi8-r?b?RmluZCBGaXJzdCBpbiBhbiBBcnJheT8=?= In-Reply-To: References: Message-ID: Hi Gustav, Yes, of course, you're counted in ;-) -- Shamil From mcp2004 at mail.ru Thu Feb 19 18:03:33 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Fri, 20 Feb 2009 03:03:33 +0300 Subject: [AccessD] =?koi8-r?b?RmluZCBGaXJzdCBpbiBhbiBBcnJheT8=?= In-Reply-To: References: Message-ID: Hi Drew, But the point isn't that ".Seek is faster then simply running through the recordset" - the point is that .Seek is good(/speedy) enough and that using .Seek involves the least amount of code refactoring work for Rocky AFAIS - please correct me if I'm wrong... Thank you. -- Shamil -----Original Message----- From: "Drew Wutka" To: "Access Developers discussion and problem solving" Date: Thu, 19 Feb 2009 17:38:01 -0600 Subject: Re: [AccessD] Find First in an Array? > > But how could seek be any faster then simply running through the > recordset? > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Salakhetdinov > Shamil > Sent: Thursday, February 19, 2009 3:40 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > You decide, Rocky, > > Do you have time for that experimenting? > > May I warn you about what is known as: > > "Premature Optimization" > http://c2.com/cgi/wiki?PrematureOptimization > > and > > "Premature Generalization" > http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil > > ? > > Have a look: > > "Death by premature generalization" > http://ryanfarley.com/blog/archive/2004/04/30/570.aspx > > > My name is Shamil, you know :) and I have been a premature generalizer > in many cases I must admit - but I'm getting more and more XP/SCRUM > agile habits these days, and I'm getting more fun from programming real > life business tasks without my premature generalization and optimization > not so good(?) past habits... > > IMO in the case of the context of this thread using .Seek is the closest > and quickest yet good enough (and maybe the only one needed for many > years ahead) solution/transition from your existing .FindFirst-based > code... > > If that would not be good/speedy enough in your case then I'd probaably > use static array loaded on first call/after reset using .GetRows() with > accompanying static collection with FormName/ControlName as a key to > keep value for static array entry index, and a function to get > translation value using this collection/array... > > etc... > > Thank you. > > -- > Shamil > > -----Original Message----- > From: "Rocky Smolin at Beach Access Software" > To: "'Access Developers discussion and problem > solving'" > Date: Thu, 19 Feb 2009 09:56:55 -0800 > Subject: Re: [AccessD] Find First in an Array? > > > > > Dang. I think you're right. Gotta try that. You think it'll be > faster > > than SEEK? > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > > Sent: Thursday, February 19, 2009 9:33 AM > > To: Access Developers discussion and problem solving > > Subject: Re: [AccessD] Find First in an Array? > > > > Hmmmm, actually, the way you have this set up, you could do this just > fine > > without an array or collection. > > > > Instead of this: > > > > For Each ctl In frm > > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > > fldLanguageControl = '" _ > > & ctl.Name & "'" > > > > Do this: > > > > strSQL="SELECT fldLanguageControl, fldLanguage" & > strLanguageToTranslate & " > > FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" > > set rs=New Recordset > > rs.open strsql,currentproject.connection, adopenkeyset,adlockreadonly > if > > rs.eof=false then rs.movefirst do until rs.eof=true > > me(rs.fields(0).value).Caption=rs.fields(1).value > > Loop > > Rs.close > > Set rs=nothing > > > > That way you are pulling the recordset up....and just running through > it > > once...instead of trying to find every record based on the control. > > > > Drew > > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at > > Beach Access Software > > Sent: Thursday, February 19, 2009 12:57 AM > > To: 'Access Developers discussion and problem solving' > > Subject: Re: [AccessD] Find First in an Array? > > > > John: > > > > The table layout is: > > > > fldLanguageID Autonumber > > fldLanguageForm Text Name of the form that the control is on > > fldLanguageControl Text Name of the control > > fldLanguageControlType Text Not Used > > fldLanguageEnglish Text > > fldLanguageChineseComplex Text > > fldLanguageChineseSimple Text > > fldLanguageSpanish Text > > fldLanguageFrench Text > > > > In the translate routine I use: > > > > Set frm = Forms(argForm) > > For Each ctl In frm > > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > > fldLanguageControl = '" _ > > & ctl.Name & "'" > > > > Where argForm is the form name passed to the function. So I think I > might > > get a big boost in response time by indexing fldLanguageForm and > > fldLanguageControl. > > > > There are only about 2500 records in the table so I'm thinking that > the > > whole recordset is probably in memory anyway. > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > > Sent: Wednesday, February 18, 2009 5:46 PM > > To: Access Developers discussion and problem solving > > Subject: Re: [AccessD] Find First in an Array? > > > > Does this imply a table structure of: > > > > TR_ID Auto > > TR_CtlName Text > > TR_L1 text (or memo?) for language 1 > > TR_L2 text (or memo?) for language 2 > > Etc > > > > I would suggest that you add a form (or container) field. A control > name is > > unique on a form, however it could be the same on different forms but > have a > > different language string. By having a form field you could pull > subsets of > > records based on the form name, then use the control name (now > guaranteed to > > be unique), then obtain the language string. > > > > It appears from your email however that you already have this stuff > set up, > > so you might be resistant to modifying how it works. > > > > If this is all just one big table with control names guaranteed to be > unique > > then you could just stash it in one big collection. There is a > problem > > however which is that classes get pretty slow as they get large. If > you get > > up past 10,000 strings (I don't know the exact point) it would bog > back > > down. If you broke it down into controls on a form, then you would > ensure > > that the total strings in any given collection is pretty small. > > > > Again I would build a class for all the code and the collection to > load one > > form. then a supervisor class to hold instances of this form class > keyed on > > form name. > > > > John W. Colby > > www.ColbyConsulting.com > > > > > > Rocky Smolin at Beach Access Software wrote: > > > Max: > > > > > > That would work except the table driven approach is so much more > > easier. > > > Easy to add a language (got French and Spanish now in addition to > > > traditional and simplified Chinese), too, or make a change to a > > translation. > > > To add a language I just add a column for that language to the > Control > > > > > and Messages tables and send them to the translator. Add that > > > language to the language selector combo on the Preferences form, and > > > > walla! Another language. > > > > > > > > > Rocky Smolin > > > Beach Access Software > > > 858-259-4334 > > > www.e-z-mrp.com > > > www.bchacc.com > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com The information contained in > this > > transmission is intended only for the person or entity to which it is > > addressed and may contain II-VI Proprietary and/or II-VI Business > Sensitive > > material. If you are not the intended recipient, please contact the > sender > > immediately and destroy the material in its entirety, whether > electronic or > > hard copy. You are notified that any review, retransmission, copying, > > disclosure, dissemination, or other use of, or taking of any action in > > reliance upon this information by persons or entities other than the > > intended recipient is prohibited. > > > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From dbdoug at gmail.com Thu Feb 19 18:04:36 2009 From: dbdoug at gmail.com (Doug Steele) Date: Thu, 19 Feb 2009 16:04:36 -0800 Subject: [AccessD] Continuous form question In-Reply-To: <71E052EDFD04466B9028274778ABD1B8@danwaters> References: <4dd71a0c0902191335w1a90a264i2652bcd4435f6244@mail.gmail.com> <71E052EDFD04466B9028274778ABD1B8@danwaters> Message-ID: <4dd71a0c0902191604n1e340c72p39d59dd7b8a32469@mail.gmail.com> Thanks - I was about half way there - that's what I'm going to do. Doug On Thu, Feb 19, 2009 at 3:54 PM, Dan Waters wrote: > Here's an easy to code solution: > > 1) For each editable field in the table, create a duplicate field with a > slightly different name. > > 2) In the form, add a non-visible control which is bound to the duplicate > field. > > 3) When a field is changed, in the afterupdate event, write the original > value of the visible control to the invisible control. If someone rewrites > the original value into the visible control, then clear the invisible > control. > > 4) For each visible control, add a conditional format which changes the > background color of the visible control if there is a value in the > corresponding non-visible control. > > 5) When you finally save your changes, be sure to clear all the duplicate > fields. > > Good Luck! > Dan > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Doug Steele > Sent: Thursday, February 19, 2009 3:35 PM > To: accessd at databaseadvisors.com > Subject: [AccessD] Continuous form question > > Hello: > > I have a large continuous form which will normally be showing about 600 > rows > of around 20 columns. After editing it, my client would like some kind of > visual clue as to which individual cells in the form have been updated, so > that someone else can quickly look it over and see where changes have been > made. Does anyone have a good way of doing this? So far, any way I've > thought about has been really ugly to implement. > > Thanks, > > Doug Steele > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From rockysmolin at bchacc.com Thu Feb 19 18:08:45 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Thu, 19 Feb 2009 16:08:45 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <15769CDACB90431FA108E3CA24615E19@HAL9005><499de585.1c05d00a.3006.ffffca6c@mx.google.com> Message-ID: <01527D11A5D044AEBB700D6AA777E0B9@HAL9005> Yep. Independent. And I run a non-profit. It wasn't planned that way, it just... Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Thursday, February 19, 2009 3:10 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Then you MUST be an independent developer because if someone else reviews your code, believe me, they look under the hood! Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Thursday, February 19, 2009 3:05 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? That's my motto, now. No one ever looks under the hood, and I always judge my programs from the outside. Matters not how the data got on the form as long as it happens 1) fast and 2) accurate. Spot on, Rocky. Max -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From darren at activebilling.com.au Thu Feb 19 18:28:21 2009 From: darren at activebilling.com.au (Darren D) Date: Fri, 20 Feb 2009 11:28:21 +1100 Subject: [AccessD] Continuous form question In-Reply-To: <4dd71a0c0902191335w1a90a264i2652bcd4435f6244@mail.gmail.com> References: <4dd71a0c0902191335w1a90a264i2652bcd4435f6244@mail.gmail.com> Message-ID: <003801c992f2$23cb8090$131b910a@denzilnote> Hi Doug Add a new field to the table called LasteEditedDate - have it populated in the On_Dirty of each record Then have a conditional format field run the whole width of the record bound to this new field If the value of the new field = Date() then make the background colur a light orange say If not then have the background colour of it just be the background colour of the form simple Many thanks Darren -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Doug Steele Sent: Friday, 20 February 2009 8:35 AM To: accessd at databaseadvisors.com Subject: [AccessD] Continuous form question Hello: I have a large continuous form which will normally be showing about 600 rows of around 20 columns. After editing it, my client would like some kind of visual clue as to which individual cells in the form have been updated, so that someone else can quickly look it over and see where changes have been made. Does anyone have a good way of doing this? So far, any way I've thought about has been really ugly to implement. Thanks, Doug Steele -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Thu Feb 19 18:32:07 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Thu, 19 Feb 2009 16:32:07 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005><15769CDACB90431FA108E3CA24615E19@HAL9005> Message-ID: <58E4A097545649F2AB1C13CE8789EC62@HAL9005> Yeah, I think you're absolutely right - opening a recordset of only the controls on a form and looping once forward through the recordset filling the controls will be faster than the other way. However, given how fast it's going now I wonder if I'll be able to see a difference. Right now I've got echo off while translating, resizing and maximizing the form. So there's only one 'painting' of the form. I don't know if that painting, which kind of proceeds from left to right and top to bottom can be replaced with a 'pop'. And again, since I'm independent and my time is really my money, I like to go for the most economical solution and not the most elegant. Shamil asked the right question - how much time do I have for experimenting. Sometimes I envy those in the W-2 world. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Thursday, February 19, 2009 3:44 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Just to clarify Rocky.... While I completely agree that classes and collections provide fast, clear programming, with tons of capabilities, and I use them all the time from their abilities (which sometimes sacrifice a tad of speed for actual performance and ease of use).... your initial issue of using FindFirst will be faster with seek, but Seek is still going to have to do some looking. Reversing your logic, to find and fill the controls based on the record, instead of finding the record based on the control will go faster then either FindFirst or Seek. Because there will be no 'hunting' necessary. The query will bring up all the info for a specific form (so you are dealing with less data, less overhead), and then you just run through the recordset. If you want something that will go even faster.... create a global class, that loads all translations for all controls, and just keep it all in memory. That is going to be more programming though. And I doubt you will see much of a difference in performance doing the 'reverse logic' method over a collection method. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Thursday, February 19, 2009 4:53 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? Thank YOU! Someone once posted I think it was on this list 'A good program is one that works'. That's my motto, now. No one ever looks under the hood, and I always judge my programs from the outside. Matters not how the data got on the form as long as it happens 1) fast and 2) accurate. Right now, my quest for faster translation is because I see some delay, especially in the Chinese (think it may be due to the Unicode), and I'd like to get rid of the flashing that seems to accompany many Access apps at one point or another. Going to FindFirst to Seek seems fast and easy so the time may be worth the risk for an improvement in user comfort. However, it's a good opportunity to learn and use a class. So I'm going to have to find the time to go back to the beginning to John's classes class and learn it. Seems like a valuable thing to do now that retirement seems to have receded into the distant future. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Thu Feb 19 19:22:36 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 19 Feb 2009 20:22:36 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <15769CDACB90431FA108E3CA24615E19@HAL9005> <499de585.1c05d00a.3006.ffffca6c@mx.google.com> Message-ID: <499E05DC.3060907@colbyconsulting.com> Code reviews? OMG! But yea, best practices is a learned skill. I can't tell you the times (when I was learning to program) that I would do whatever just to make it work, rather than do it right. Then it was refactoring because... There are just so many times when "the right way" takes 10% longer than the easy way, but refactoring the easy way takes 50% longer than the right way. John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > Then you MUST be an independent developer because if someone else > reviews your code, believe me, they look under the hood! > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Thursday, February 19, 2009 3:05 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > That's my motto, now. No one ever looks under the hood, and I always > judge my programs from the outside. Matters not how the data got on the > form as long as it happens 1) fast and 2) accurate. > > > Spot on, Rocky. > > Max > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Thu Feb 19 19:24:55 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 19 Feb 2009 20:24:55 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005> Message-ID: <499E0667.3030008@colbyconsulting.com> I was trying so hard to keep quiet. ;-) And how could seek over and over and over and over be any faster than sucking the results out of a collection? OK, I'll go back to being quiet. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > But how could seek be any faster then simply running through the > recordset? > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Salakhetdinov > Shamil > Sent: Thursday, February 19, 2009 3:40 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > You decide, Rocky, > > Do you have time for that experimenting? > > May I warn you about what is known as: > > "Premature Optimization" > http://c2.com/cgi/wiki?PrematureOptimization > > and > > "Premature Generalization" > http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil > > ? > > Have a look: > > "Death by premature generalization" > http://ryanfarley.com/blog/archive/2004/04/30/570.aspx > > > My name is Shamil, you know :) and I have been a premature generalizer > in many cases I must admit - but I'm getting more and more XP/SCRUM > agile habits these days, and I'm getting more fun from programming real > life business tasks without my premature generalization and optimization > not so good(?) past habits... > > IMO in the case of the context of this thread using .Seek is the closest > and quickest yet good enough (and maybe the only one needed for many > years ahead) solution/transition from your existing .FindFirst-based > code... > > If that would not be good/speedy enough in your case then I'd probaably > use static array loaded on first call/after reset using .GetRows() with > accompanying static collection with FormName/ControlName as a key to > keep value for static array entry index, and a function to get > translation value using this collection/array... > > etc... > > Thank you. > > -- > Shamil > > -----Original Message----- > From: "Rocky Smolin at Beach Access Software" > To: "'Access Developers discussion and problem > solving'" > Date: Thu, 19 Feb 2009 09:56:55 -0800 > Subject: Re: [AccessD] Find First in an Array? > >> Dang. I think you're right. Gotta try that. You think it'll be > faster >> than SEEK? >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka >> Sent: Thursday, February 19, 2009 9:33 AM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? >> >> Hmmmm, actually, the way you have this set up, you could do this just > fine >> without an array or collection. >> >> Instead of this: >> >> For Each ctl In frm >> rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and >> fldLanguageControl = '" _ >> & ctl.Name & "'" >> >> Do this: >> >> strSQL="SELECT fldLanguageControl, fldLanguage" & > strLanguageToTranslate & " >> FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" >> set rs=New Recordset >> rs.open strsql,currentproject.connection, adopenkeyset,adlockreadonly > if >> rs.eof=false then rs.movefirst do until rs.eof=true >> me(rs.fields(0).value).Caption=rs.fields(1).value >> Loop >> Rs.close >> Set rs=nothing >> >> That way you are pulling the recordset up....and just running through > it >> once...instead of trying to find every record based on the control. >> >> Drew >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at >> Beach Access Software >> Sent: Thursday, February 19, 2009 12:57 AM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Find First in an Array? >> >> John: >> >> The table layout is: >> >> fldLanguageID Autonumber >> fldLanguageForm Text Name of the form that the control is on >> fldLanguageControl Text Name of the control >> fldLanguageControlType Text Not Used >> fldLanguageEnglish Text >> fldLanguageChineseComplex Text >> fldLanguageChineseSimple Text >> fldLanguageSpanish Text >> fldLanguageFrench Text >> >> In the translate routine I use: >> >> Set frm = Forms(argForm) >> For Each ctl In frm >> rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and >> fldLanguageControl = '" _ >> & ctl.Name & "'" >> >> Where argForm is the form name passed to the function. So I think I > might >> get a big boost in response time by indexing fldLanguageForm and >> fldLanguageControl. >> >> There are only about 2500 records in the table so I'm thinking that > the >> whole recordset is probably in memory anyway. >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Wednesday, February 18, 2009 5:46 PM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? >> >> Does this imply a table structure of: >> >> TR_ID Auto >> TR_CtlName Text >> TR_L1 text (or memo?) for language 1 >> TR_L2 text (or memo?) for language 2 >> Etc >> >> I would suggest that you add a form (or container) field. A control > name is >> unique on a form, however it could be the same on different forms but > have a >> different language string. By having a form field you could pull > subsets of >> records based on the form name, then use the control name (now > guaranteed to >> be unique), then obtain the language string. >> >> It appears from your email however that you already have this stuff > set up, >> so you might be resistant to modifying how it works. >> >> If this is all just one big table with control names guaranteed to be > unique >> then you could just stash it in one big collection. There is a > problem >> however which is that classes get pretty slow as they get large. If > you get >> up past 10,000 strings (I don't know the exact point) it would bog > back >> down. If you broke it down into controls on a form, then you would > ensure >> that the total strings in any given collection is pretty small. >> >> Again I would build a class for all the code and the collection to > load one >> form. then a supervisor class to hold instances of this form class > keyed on >> form name. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Rocky Smolin at Beach Access Software wrote: >>> Max: >>> >>> That would work except the table driven approach is so much more >> easier. >>> Easy to add a language (got French and Spanish now in addition to >>> traditional and simplified Chinese), too, or make a change to a >> translation. >>> To add a language I just add a column for that language to the > Control >>> and Messages tables and send them to the translator. Add that >>> language to the language selector combo on the Preferences form, and > >>> walla! Another language. >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com The information contained in > this >> transmission is intended only for the person or entity to which it is >> addressed and may contain II-VI Proprietary and/or II-VI Business > Sensitive >> material. If you are not the intended recipient, please contact the > sender >> immediately and destroy the material in its entirety, whether > electronic or >> hard copy. You are notified that any review, retransmission, copying, >> disclosure, dissemination, or other use of, or taking of any action in >> reliance upon this information by persons or entities other than the >> intended recipient is prohibited. >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From jwcolby at colbyconsulting.com Thu Feb 19 20:04:31 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 19 Feb 2009 21:04:31 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <58E4A097545649F2AB1C13CE8789EC62@HAL9005> References: <03DC01E6037D4BE3931BF41095651721@HAL9005><15769CDACB90431FA108E3CA24615E19@HAL9005> <58E4A097545649F2AB1C13CE8789EC62@HAL9005> Message-ID: <499E0FAF.10005@colbyconsulting.com> So how fast is it going and what did you do to speed it up? John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Yeah, I think you're absolutely right - opening a recordset of only the > controls on a form and looping once forward through the recordset filling > the controls will be faster than the other way. However, given how fast > it's going now I wonder if I'll be able to see a difference. > > Right now I've got echo off while translating, resizing and maximizing the > form. So there's only one 'painting' of the form. I don't know if that > painting, which kind of proceeds from left to right and top to bottom can be > replaced with a 'pop'. And again, since I'm independent and my time is > really my money, I like to go for the most economical solution and not the > most elegant. > > Shamil asked the right question - how much time do I have for experimenting. > Sometimes I envy those in the W-2 world. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Thursday, February 19, 2009 3:44 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Just to clarify Rocky.... > > While I completely agree that classes and collections provide fast, clear > programming, with tons of capabilities, and I use them all the time from > their abilities (which sometimes sacrifice a tad of speed for actual > performance and ease of use).... your initial issue of using FindFirst will > be faster with seek, but Seek is still going to have to do some looking. > > Reversing your logic, to find and fill the controls based on the record, > instead of finding the record based on the control will go faster then > either FindFirst or Seek. Because there will be no 'hunting' necessary. > The query will bring up all the info for a specific form (so you are dealing > with less data, less overhead), and then you just run through the recordset. > > If you want something that will go even faster.... create a global class, > that loads all translations for all controls, and just keep it all in > memory. That is going to be more programming though. > > And I doubt you will see much of a difference in performance doing the > 'reverse logic' method over a collection method. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: Thursday, February 19, 2009 4:53 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > Thank YOU! > > Someone once posted I think it was on this list 'A good program is one that > works'. That's my motto, now. No one ever looks under the hood, and I > always judge my programs from the outside. Matters not how the data got on > the form as long as it happens 1) fast and 2) accurate. > > Right now, my quest for faster translation is because I see some delay, > especially in the Chinese (think it may be due to the Unicode), and I'd > like to get rid of the flashing that seems to accompany many Access apps at > one point or another. > > Going to FindFirst to Seek seems fast and easy so the time may be worth the > risk for an improvement in user comfort. > > However, it's a good opportunity to learn and use a class. So I'm going to > have to find the time to go back to the beginning to John's classes class > and learn it. Seems like a valuable thing to do now that retirement seems > to have receded into the distant future. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI Proprietary > and/or II-VI Business Sensitive material. If you are not the intended > recipient, please contact the sender immediately and destroy the material in > its entirety, whether electronic or hard copy. You are notified that any > review, retransmission, copying, disclosure, dissemination, or other use of, > or taking of any action in reliance upon this information by persons or > entities other than the intended recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From pcs.accessd at gmail.com Thu Feb 19 21:30:41 2009 From: pcs.accessd at gmail.com (Borge Hansen) Date: Fri, 20 Feb 2009 13:30:41 +1000 Subject: [AccessD] ADODB.recordset Scope Question In-Reply-To: <499E7A89.27903.2F44336@stuart.lexacorp.com.pg> References: <499E7A89.27903.2F44336@stuart.lexacorp.com.pg> Message-ID: Thanks Stuart.... Another question re ADODB.recordeset When trying to set a filter on a recordset, I am having problems : rs.filter = "(FormReport_ID=3) AND (Role_ID=2 OR Role_ID=3 OR Role_ID=7) AND ([View]=1)" I get the message: 3001 Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another The filter string - as far as I can determine - is an acceptable where clause in an SQL query... So, do you have certain limitations to what you can place in a filter statement?? Regards Borge On Fri, Feb 20, 2009 at 9:40 AM, Stuart McLachlan wrote: > Yep > "Set rs = rsUsers_Master" > makes rs another reference to the same recordset. > Close rs and you close rsUsers_Master > > If you want to work with a separate copy of the data use > Set rs = rsUsers_Master.Clone > > -- > Stuart > > > On 20 Feb 2009 at 9:06, Borge Hansen wrote: > > > Hi All, > > Quick question: > > The application on opening of a particular Form (that stays open and > hidden > > until the application is closed or User logs in under another User Name) > > opens a few ADODB recordsets. > > On the closing of the Form the recordsets are closed and set to > nothing... > > > > Example: > > On opening of the Form, a recordset is created called rsUsers_MASTER > > > > > > I am using the recordset as part of the Application's security. > > In a separate Function called many times throughout the application > > session, I do something like > > > > dim rs as new ADODB.recordset > > set rs = rsUsers_Master > > > > 'Do something with the rs > > '.. and then > > > > rs.close > > set rs = nothing > > > > ... > > However, that appears to make rsUsers_MASTER close and go out of > scope.... > > I run the sub once - it works fine - the next time I see that after > > rs = rsUsers_MASTER > > rs is nothing > > > > > > > > So can you people confirm that when I > > set rs = rsUsers_MASTER > > I am really working with rsUsers_MASTER and not a separate copy of it > held > > in rs ??? > > > > And when it comes to tidying up the rs, I don't need to do the usually > > rs.close > > set rs = nothing > > > > ?? > > > > I really would like to be able to work with a *separate* copy of > > rsUsers_MASTER that I can close and set to nothing at the end of the > > procedure. > > > > How do I do that?? > > > > Regards to all... it's been a while since I last dropped in to AccessD > ...., > > Borge > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From pcs.accessd at gmail.com Thu Feb 19 21:47:26 2009 From: pcs.accessd at gmail.com (Borge Hansen) Date: Fri, 20 Feb 2009 13:47:26 +1000 Subject: [AccessD] ADODB.recordset Scope Question SOLVED Message-ID: Well, sometimes reading the Help files is the way to go. >From the ADO 2.8 API Reference - Filter Property you find that: - There is no precedence between *AND* and *OR*. Clauses can be grouped within parentheses. However, you cannot group clauses joined by an *OR*and then join the group to another clause with an *AND*, like this: (LastName = 'Smith' OR LastName = 'Jones') AND FirstName = 'John' - Instead, you would construct this filter as (LastName = 'Smith' AND FirstName = 'John') OR (LastName = 'Jones' AND FirstName = 'John') So doing the filtering in two steps gets me going: rs.filter = "(Role_ID=2 OR Role_ID=3 OR Role_ID=7)" rs.filter = "(FormReport_ID=3) AND ([View]=true)" Regards, Borge On Fri, Feb 20, 2009 at 1:30 PM, Borge Hansen wrote: > Thanks Stuart.... > > Another question re ADODB.recordeset > > When trying to set a filter on a recordset, I am having problems : > > rs.filter = "(FormReport_ID=3) AND (Role_ID=2 OR Role_ID=3 OR Role_ID=7) > AND ([View]=1)" > > I get the message: 3001 Arguments are of the wrong type, are out of > acceptable range, or are in conflict with one another > > The filter string - as far as I can determine - is an acceptable where > clause in an SQL query... > > So, do you have certain limitations to what you can place in a filter > statement?? > > Regards > Borge > > > > On Fri, Feb 20, 2009 at 9:40 AM, Stuart McLachlan wrote: > >> Yep >> "Set rs = rsUsers_Master" >> makes rs another reference to the same recordset. >> Close rs and you close rsUsers_Master >> >> If you want to work with a separate copy of the data use >> Set rs = rsUsers_Master.Clone >> >> -- >> Stuart >> >> >> On 20 Feb 2009 at 9:06, Borge Hansen wrote: >> >> > Hi All, >> > Quick question: >> > The application on opening of a particular Form (that stays open and >> hidden >> > until the application is closed or User logs in under another User Name) >> > opens a few ADODB recordsets. >> > On the closing of the Form the recordsets are closed and set to >> nothing... >> > >> > Example: >> > On opening of the Form, a recordset is created called rsUsers_MASTER >> > >> > >> > I am using the recordset as part of the Application's security. >> > In a separate Function called many times throughout the application >> > session, I do something like >> > >> > dim rs as new ADODB.recordset >> > set rs = rsUsers_Master >> > >> > 'Do something with the rs >> > '.. and then >> > >> > rs.close >> > set rs = nothing >> > >> > ... >> > However, that appears to make rsUsers_MASTER close and go out of >> scope.... >> > I run the sub once - it works fine - the next time I see that after >> > rs = rsUsers_MASTER >> > rs is nothing >> > >> > >> > >> > So can you people confirm that when I >> > set rs = rsUsers_MASTER >> > I am really working with rsUsers_MASTER and not a separate copy of it >> held >> > in rs ??? >> > >> > And when it comes to tidying up the rs, I don't need to do the usually >> > rs.close >> > set rs = nothing >> > >> > ?? >> > >> > I really would like to be able to work with a *separate* copy of >> > rsUsers_MASTER that I can close and set to nothing at the end of the >> > procedure. >> > >> > How do I do that?? >> > >> > Regards to all... it's been a while since I last dropped in to AccessD >> ...., >> > Borge >> > -- >> > AccessD mailing list >> > AccessD at databaseadvisors.com >> > http://databaseadvisors.com/mailman/listinfo/accessd >> > Website: http://www.databaseadvisors.com >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > From adtp at airtelmail.in Thu Feb 19 22:13:19 2009 From: adtp at airtelmail.in (A.D.Tejpal) Date: Fri, 20 Feb 2009 09:43:19 +0530 Subject: [AccessD] Continuous form question References: <4dd71a0c0902191335w1a90a264i2652bcd4435f6244@mail.gmail.com> Message-ID: <008b01c99311$b5728c40$4e60a27a@personald6374f> Doug, My sample db named Form_HighLightUpdatedFields might be of interest to you. It is available at Rogers Access Library. Link - http://www.rogersaccesslibrary.com/forum/forum_topics.asp?FID=45 The sample is in Access 2000 file format and brief description is placed below. Best wishes, A.D. Tejpal ------------ Form_HighLightUpdatedFields (Sample Db) Brief Description: ================================ This sample db enables the user to identify at a glance as to which fields in which records have been updated in the current data entry session. The most demanding scenario is that of a datasheet form. The objective is achieved through run time manipulation of format conditions. The db incorporates following features: (a) On opening the form, all display is normal - no highlights yet. (b) Fresh records added in current session get highlighted in light blue back color, with bold font in black forecolor. (c) Any cell (i.e. given field on given record) updated for the first time in current session, gets highlighted in light orange back color, with bold font in dark red forecolor. (d) Any cell (i.e. given field on given record) updated more than once in current session, gets highlighted in light pink back color, with bold font in dark red forecolor. (e) At any stage, if so desired, all highlights can be removed (signifying the start of next session), by clicking the command button captioned "Remove Highlights" (f) On closing the form, it starts with a clean slate (i.e. no highlights), when opened next time. Fresh highlights take effect progressively, as and when fields are updated in the new session. ================================ ----- Original Message ----- From: Doug Steele To: accessd at databaseadvisors.com Sent: Friday, February 20, 2009 03:05 Subject: [AccessD] Continuous form question Hello: I have a large continuous form which will normally be showing about 600 rows of around 20 columns. After editing it, my client would like some kind of visual clue as to which individual cells in the form have been updated, so that someone else can quickly look it over and see where changes have been made. Does anyone have a good way of doing this? So far, any way I've thought about has been really ugly to implement. Thanks, Doug Steele From DWUTKA at Marlow.com Thu Feb 19 22:27:39 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Thu, 19 Feb 2009 22:27:39 -0600 Subject: [AccessD] Find First in an Array? In-Reply-To: References: Message-ID: Hmmmmm, probably true. The best way to go is still with a class and collection. But reversing the logic to loop through the recordset is probably the best solution, between speed and least coding.... Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Salakhetdinov Shamil Sent: Thursday, February 19, 2009 6:04 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Hi Drew, But the point isn't that ".Seek is faster then simply running through the recordset" - the point is that .Seek is good(/speedy) enough and that using .Seek involves the least amount of code refactoring work for Rocky AFAIS - please correct me if I'm wrong... Thank you. -- Shamil -----Original Message----- From: "Drew Wutka" To: "Access Developers discussion and problem solving" Date: Thu, 19 Feb 2009 17:38:01 -0600 Subject: Re: [AccessD] Find First in an Array? > > But how could seek be any faster then simply running through the > recordset? > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Salakhetdinov > Shamil > Sent: Thursday, February 19, 2009 3:40 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > You decide, Rocky, > > Do you have time for that experimenting? > > May I warn you about what is known as: > > "Premature Optimization" > http://c2.com/cgi/wiki?PrematureOptimization > > and > > "Premature Generalization" > http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil > > ? > > Have a look: > > "Death by premature generalization" > http://ryanfarley.com/blog/archive/2004/04/30/570.aspx > > > My name is Shamil, you know :) and I have been a premature generalizer > in many cases I must admit - but I'm getting more and more XP/SCRUM > agile habits these days, and I'm getting more fun from programming real > life business tasks without my premature generalization and optimization > not so good(?) past habits... > > IMO in the case of the context of this thread using .Seek is the closest > and quickest yet good enough (and maybe the only one needed for many > years ahead) solution/transition from your existing .FindFirst-based > code... > > If that would not be good/speedy enough in your case then I'd probaably > use static array loaded on first call/after reset using .GetRows() with > accompanying static collection with FormName/ControlName as a key to > keep value for static array entry index, and a function to get > translation value using this collection/array... > > etc... > > Thank you. > > -- > Shamil > > -----Original Message----- > From: "Rocky Smolin at Beach Access Software" > To: "'Access Developers discussion and problem > solving'" > Date: Thu, 19 Feb 2009 09:56:55 -0800 > Subject: Re: [AccessD] Find First in an Array? > > > > > Dang. I think you're right. Gotta try that. You think it'll be > faster > > than SEEK? > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > > Sent: Thursday, February 19, 2009 9:33 AM > > To: Access Developers discussion and problem solving > > Subject: Re: [AccessD] Find First in an Array? > > > > Hmmmm, actually, the way you have this set up, you could do this just > fine > > without an array or collection. > > > > Instead of this: > > > > For Each ctl In frm > > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > > fldLanguageControl = '" _ > > & ctl.Name & "'" > > > > Do this: > > > > strSQL="SELECT fldLanguageControl, fldLanguage" & > strLanguageToTranslate & " > > FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" > > set rs=New Recordset > > rs.open strsql,currentproject.connection, adopenkeyset,adlockreadonly > if > > rs.eof=false then rs.movefirst do until rs.eof=true > > me(rs.fields(0).value).Caption=rs.fields(1).value > > Loop > > Rs.close > > Set rs=nothing > > > > That way you are pulling the recordset up....and just running through > it > > once...instead of trying to find every record based on the control. > > > > Drew > > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at > > Beach Access Software > > Sent: Thursday, February 19, 2009 12:57 AM > > To: 'Access Developers discussion and problem solving' > > Subject: Re: [AccessD] Find First in an Array? > > > > John: > > > > The table layout is: > > > > fldLanguageID Autonumber > > fldLanguageForm Text Name of the form that the control is on > > fldLanguageControl Text Name of the control > > fldLanguageControlType Text Not Used > > fldLanguageEnglish Text > > fldLanguageChineseComplex Text > > fldLanguageChineseSimple Text > > fldLanguageSpanish Text > > fldLanguageFrench Text > > > > In the translate routine I use: > > > > Set frm = Forms(argForm) > > For Each ctl In frm > > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > > fldLanguageControl = '" _ > > & ctl.Name & "'" > > > > Where argForm is the form name passed to the function. So I think I > might > > get a big boost in response time by indexing fldLanguageForm and > > fldLanguageControl. > > > > There are only about 2500 records in the table so I'm thinking that > the > > whole recordset is probably in memory anyway. > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > > Sent: Wednesday, February 18, 2009 5:46 PM > > To: Access Developers discussion and problem solving > > Subject: Re: [AccessD] Find First in an Array? > > > > Does this imply a table structure of: > > > > TR_ID Auto > > TR_CtlName Text > > TR_L1 text (or memo?) for language 1 > > TR_L2 text (or memo?) for language 2 > > Etc > > > > I would suggest that you add a form (or container) field. A control > name is > > unique on a form, however it could be the same on different forms but > have a > > different language string. By having a form field you could pull > subsets of > > records based on the form name, then use the control name (now > guaranteed to > > be unique), then obtain the language string. > > > > It appears from your email however that you already have this stuff > set up, > > so you might be resistant to modifying how it works. > > > > If this is all just one big table with control names guaranteed to be > unique > > then you could just stash it in one big collection. There is a > problem > > however which is that classes get pretty slow as they get large. If > you get > > up past 10,000 strings (I don't know the exact point) it would bog > back > > down. If you broke it down into controls on a form, then you would > ensure > > that the total strings in any given collection is pretty small. > > > > Again I would build a class for all the code and the collection to > load one > > form. then a supervisor class to hold instances of this form class > keyed on > > form name. > > > > John W. Colby > > www.ColbyConsulting.com > > > > > > Rocky Smolin at Beach Access Software wrote: > > > Max: > > > > > > That would work except the table driven approach is so much more > > easier. > > > Easy to add a language (got French and Spanish now in addition to > > > traditional and simplified Chinese), too, or make a change to a > > translation. > > > To add a language I just add a column for that language to the > Control > > > > > and Messages tables and send them to the translator. Add that > > > language to the language selector combo on the Preferences form, and > > > > walla! Another language. > > > > > > > > > Rocky Smolin > > > Beach Access Software > > > 858-259-4334 > > > www.e-z-mrp.com > > > www.bchacc.com > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com The information contained in > this > > transmission is intended only for the person or entity to which it is > > addressed and may contain II-VI Proprietary and/or II-VI Business > Sensitive > > material. If you are not the intended recipient, please contact the > sender > > immediately and destroy the material in its entirety, whether > electronic or > > hard copy. You are notified that any review, retransmission, copying, > > disclosure, dissemination, or other use of, or taking of any action in > > reliance upon this information by persons or entities other than the > > intended recipient is prohibited. > > > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Thu Feb 19 22:28:49 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Thu, 19 Feb 2009 22:28:49 -0600 Subject: [AccessD] Find First in an Array? In-Reply-To: <58E4A097545649F2AB1C13CE8789EC62@HAL9005> References: <03DC01E6037D4BE3931BF41095651721@HAL9005><15769CDACB90431FA108E3CA24615E19@HAL9005> <58E4A097545649F2AB1C13CE8789EC62@HAL9005> Message-ID: LOL, I hear ya on that, trust me, the envy goes both ways! ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Thursday, February 19, 2009 6:32 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? Yeah, I think you're absolutely right - opening a recordset of only the controls on a form and looping once forward through the recordset filling the controls will be faster than the other way. However, given how fast it's going now I wonder if I'll be able to see a difference. Right now I've got echo off while translating, resizing and maximizing the form. So there's only one 'painting' of the form. I don't know if that painting, which kind of proceeds from left to right and top to bottom can be replaced with a 'pop'. And again, since I'm independent and my time is really my money, I like to go for the most economical solution and not the most elegant. Shamil asked the right question - how much time do I have for experimenting. Sometimes I envy those in the W-2 world. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Thursday, February 19, 2009 3:44 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Just to clarify Rocky.... While I completely agree that classes and collections provide fast, clear programming, with tons of capabilities, and I use them all the time from their abilities (which sometimes sacrifice a tad of speed for actual performance and ease of use).... your initial issue of using FindFirst will be faster with seek, but Seek is still going to have to do some looking. Reversing your logic, to find and fill the controls based on the record, instead of finding the record based on the control will go faster then either FindFirst or Seek. Because there will be no 'hunting' necessary. The query will bring up all the info for a specific form (so you are dealing with less data, less overhead), and then you just run through the recordset. If you want something that will go even faster.... create a global class, that loads all translations for all controls, and just keep it all in memory. That is going to be more programming though. And I doubt you will see much of a difference in performance doing the 'reverse logic' method over a collection method. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Thursday, February 19, 2009 4:53 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? Thank YOU! Someone once posted I think it was on this list 'A good program is one that works'. That's my motto, now. No one ever looks under the hood, and I always judge my programs from the outside. Matters not how the data got on the form as long as it happens 1) fast and 2) accurate. Right now, my quest for faster translation is because I see some delay, especially in the Chinese (think it may be due to the Unicode), and I'd like to get rid of the flashing that seems to accompany many Access apps at one point or another. Going to FindFirst to Seek seems fast and easy so the time may be worth the risk for an improvement in user comfort. However, it's a good opportunity to learn and use a class. So I'm going to have to find the time to go back to the beginning to John's classes class and learn it. Seems like a valuable thing to do now that retirement seems to have receded into the distant future. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Thu Feb 19 22:29:41 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Thu, 19 Feb 2009 22:29:41 -0600 Subject: [AccessD] Find First in an Array? In-Reply-To: <499E0667.3030008@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> Message-ID: LOL, egads, it is the end of the world, you and I are in agreement again! LOL! Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Thursday, February 19, 2009 7:25 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? I was trying so hard to keep quiet. ;-) And how could seek over and over and over and over be any faster than sucking the results out of a collection? OK, I'll go back to being quiet. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > But how could seek be any faster then simply running through the > recordset? > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Salakhetdinov > Shamil > Sent: Thursday, February 19, 2009 3:40 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > You decide, Rocky, > > Do you have time for that experimenting? > > May I warn you about what is known as: > > "Premature Optimization" > http://c2.com/cgi/wiki?PrematureOptimization > > and > > "Premature Generalization" > http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil > > ? > > Have a look: > > "Death by premature generalization" > http://ryanfarley.com/blog/archive/2004/04/30/570.aspx > > > My name is Shamil, you know :) and I have been a premature generalizer > in many cases I must admit - but I'm getting more and more XP/SCRUM > agile habits these days, and I'm getting more fun from programming real > life business tasks without my premature generalization and optimization > not so good(?) past habits... > > IMO in the case of the context of this thread using .Seek is the closest > and quickest yet good enough (and maybe the only one needed for many > years ahead) solution/transition from your existing .FindFirst-based > code... > > If that would not be good/speedy enough in your case then I'd probaably > use static array loaded on first call/after reset using .GetRows() with > accompanying static collection with FormName/ControlName as a key to > keep value for static array entry index, and a function to get > translation value using this collection/array... > > etc... > > Thank you. > > -- > Shamil > > -----Original Message----- > From: "Rocky Smolin at Beach Access Software" > To: "'Access Developers discussion and problem > solving'" > Date: Thu, 19 Feb 2009 09:56:55 -0800 > Subject: Re: [AccessD] Find First in an Array? > >> Dang. I think you're right. Gotta try that. You think it'll be > faster >> than SEEK? >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka >> Sent: Thursday, February 19, 2009 9:33 AM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? >> >> Hmmmm, actually, the way you have this set up, you could do this just > fine >> without an array or collection. >> >> Instead of this: >> >> For Each ctl In frm >> rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and >> fldLanguageControl = '" _ >> & ctl.Name & "'" >> >> Do this: >> >> strSQL="SELECT fldLanguageControl, fldLanguage" & > strLanguageToTranslate & " >> FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" >> set rs=New Recordset >> rs.open strsql,currentproject.connection, adopenkeyset,adlockreadonly > if >> rs.eof=false then rs.movefirst do until rs.eof=true >> me(rs.fields(0).value).Caption=rs.fields(1).value >> Loop >> Rs.close >> Set rs=nothing >> >> That way you are pulling the recordset up....and just running through > it >> once...instead of trying to find every record based on the control. >> >> Drew >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at >> Beach Access Software >> Sent: Thursday, February 19, 2009 12:57 AM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Find First in an Array? >> >> John: >> >> The table layout is: >> >> fldLanguageID Autonumber >> fldLanguageForm Text Name of the form that the control is on >> fldLanguageControl Text Name of the control >> fldLanguageControlType Text Not Used >> fldLanguageEnglish Text >> fldLanguageChineseComplex Text >> fldLanguageChineseSimple Text >> fldLanguageSpanish Text >> fldLanguageFrench Text >> >> In the translate routine I use: >> >> Set frm = Forms(argForm) >> For Each ctl In frm >> rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and >> fldLanguageControl = '" _ >> & ctl.Name & "'" >> >> Where argForm is the form name passed to the function. So I think I > might >> get a big boost in response time by indexing fldLanguageForm and >> fldLanguageControl. >> >> There are only about 2500 records in the table so I'm thinking that > the >> whole recordset is probably in memory anyway. >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Wednesday, February 18, 2009 5:46 PM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? >> >> Does this imply a table structure of: >> >> TR_ID Auto >> TR_CtlName Text >> TR_L1 text (or memo?) for language 1 >> TR_L2 text (or memo?) for language 2 >> Etc >> >> I would suggest that you add a form (or container) field. A control > name is >> unique on a form, however it could be the same on different forms but > have a >> different language string. By having a form field you could pull > subsets of >> records based on the form name, then use the control name (now > guaranteed to >> be unique), then obtain the language string. >> >> It appears from your email however that you already have this stuff > set up, >> so you might be resistant to modifying how it works. >> >> If this is all just one big table with control names guaranteed to be > unique >> then you could just stash it in one big collection. There is a > problem >> however which is that classes get pretty slow as they get large. If > you get >> up past 10,000 strings (I don't know the exact point) it would bog > back >> down. If you broke it down into controls on a form, then you would > ensure >> that the total strings in any given collection is pretty small. >> >> Again I would build a class for all the code and the collection to > load one >> form. then a supervisor class to hold instances of this form class > keyed on >> form name. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Rocky Smolin at Beach Access Software wrote: >>> Max: >>> >>> That would work except the table driven approach is so much more >> easier. >>> Easy to add a language (got French and Spanish now in addition to >>> traditional and simplified Chinese), too, or make a change to a >> translation. >>> To add a language I just add a column for that language to the > Control >>> and Messages tables and send them to the translator. Add that >>> language to the language selector combo on the Preferences form, and > >>> walla! Another language. >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com The information contained in > this >> transmission is intended only for the person or entity to which it is >> addressed and may contain II-VI Proprietary and/or II-VI Business > Sensitive >> material. If you are not the intended recipient, please contact the > sender >> immediately and destroy the material in its entirety, whether > electronic or >> hard copy. You are notified that any review, retransmission, copying, >> disclosure, dissemination, or other use of, or taking of any action in >> reliance upon this information by persons or entities other than the >> intended recipient is prohibited. >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwcolby at colbyconsulting.com Thu Feb 19 22:47:11 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 19 Feb 2009 23:47:11 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: References: Message-ID: <499E35CF.202@colbyconsulting.com> When you can write classes in your sleep, refactoring to a class is a 1/2 hour task so the "refactor time" isn't really an issue. In Rocky's case it truly would be a refactor task. If he has solved his speed problem I am going to say "job done" and let him go to sleep. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > Hmmmmm, probably true. The best way to go is still with a class and > collection. But reversing the logic to loop through the recordset is > probably the best solution, between speed and least coding.... > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Salakhetdinov > Shamil > Sent: Thursday, February 19, 2009 6:04 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Hi Drew, > > But the point isn't that ".Seek is faster then simply running through > the recordset" - the point is that .Seek is good(/speedy) enough and > that using .Seek involves the least amount of code refactoring work for > Rocky AFAIS - please correct me if I'm wrong... > > Thank you. > > -- > Shamil > > -----Original Message----- > From: "Drew Wutka" > To: "Access Developers discussion and problem > solving" > Date: Thu, 19 Feb 2009 17:38:01 -0600 > Subject: Re: [AccessD] Find First in an Array? > >> But how could seek be any faster then simply running through the >> recordset? >> >> Drew >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of > Salakhetdinov >> Shamil >> Sent: Thursday, February 19, 2009 3:40 PM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? >> >> You decide, Rocky, >> >> Do you have time for that experimenting? >> >> May I warn you about what is known as: >> >> "Premature Optimization" >> http://c2.com/cgi/wiki?PrematureOptimization >> >> and >> >> "Premature Generalization" >> http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil >> >> ? >> >> Have a look: >> >> "Death by premature generalization" >> http://ryanfarley.com/blog/archive/2004/04/30/570.aspx >> >> >> My name is Shamil, you know :) and I have been a premature generalizer >> in many cases I must admit - but I'm getting more and more XP/SCRUM >> agile habits these days, and I'm getting more fun from programming > real >> life business tasks without my premature generalization and > optimization >> not so good(?) past habits... >> >> IMO in the case of the context of this thread using .Seek is the > closest >> and quickest yet good enough (and maybe the only one needed for many >> years ahead) solution/transition from your existing .FindFirst-based >> code... >> >> If that would not be good/speedy enough in your case then I'd > probaably >> use static array loaded on first call/after reset using .GetRows() > with >> accompanying static collection with FormName/ControlName as a key to >> keep value for static array entry index, and a function to get >> translation value using this collection/array... >> >> etc... >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: "Rocky Smolin at Beach Access Software" >> To: "'Access Developers discussion and problem >> solving'" >> Date: Thu, 19 Feb 2009 09:56:55 -0800 >> Subject: Re: [AccessD] Find First in an Array? >> >>> Dang. I think you're right. Gotta try that. You think it'll be >> faster >>> than SEEK? >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >>> >>> >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew > Wutka >>> Sent: Thursday, February 19, 2009 9:33 AM >>> To: Access Developers discussion and problem solving >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> Hmmmm, actually, the way you have this set up, you could do this > just >> fine >>> without an array or collection. >>> >>> Instead of this: >>> >>> For Each ctl In frm >>> rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and >>> fldLanguageControl = '" _ >>> & ctl.Name & "'" >>> >>> Do this: >>> >>> strSQL="SELECT fldLanguageControl, fldLanguage" & >> strLanguageToTranslate & " >>> FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" >>> set rs=New Recordset >>> rs.open strsql,currentproject.connection, > adopenkeyset,adlockreadonly >> if >>> rs.eof=false then rs.movefirst do until rs.eof=true >>> me(rs.fields(0).value).Caption=rs.fields(1).value >>> Loop >>> Rs.close >>> Set rs=nothing >>> >>> That way you are pulling the recordset up....and just running > through >> it >>> once...instead of trying to find every record based on the control. >>> >>> Drew >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >> Smolin at >>> Beach Access Software >>> Sent: Thursday, February 19, 2009 12:57 AM >>> To: 'Access Developers discussion and problem solving' >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> John: >>> >>> The table layout is: >>> >>> fldLanguageID Autonumber >>> fldLanguageForm Text Name of the form that the control is > on >>> fldLanguageControl Text Name of the control >>> fldLanguageControlType Text Not Used >>> fldLanguageEnglish Text >>> fldLanguageChineseComplex Text >>> fldLanguageChineseSimple Text >>> fldLanguageSpanish Text >>> fldLanguageFrench Text >>> >>> In the translate routine I use: >>> >>> Set frm = Forms(argForm) >>> For Each ctl In frm >>> rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and >>> fldLanguageControl = '" _ >>> & ctl.Name & "'" >>> >>> Where argForm is the form name passed to the function. So I think I >> might >>> get a big boost in response time by indexing fldLanguageForm and >>> fldLanguageControl. >>> >>> There are only about 2500 records in the table so I'm thinking that >> the >>> whole recordset is probably in memory anyway. >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >>> >>> >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>> Sent: Wednesday, February 18, 2009 5:46 PM >>> To: Access Developers discussion and problem solving >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> Does this imply a table structure of: >>> >>> TR_ID Auto >>> TR_CtlName Text >>> TR_L1 text (or memo?) for language 1 >>> TR_L2 text (or memo?) for language 2 >>> Etc >>> >>> I would suggest that you add a form (or container) field. A control >> name is >>> unique on a form, however it could be the same on different forms > but >> have a >>> different language string. By having a form field you could pull >> subsets of >>> records based on the form name, then use the control name (now >> guaranteed to >>> be unique), then obtain the language string. >>> >>> It appears from your email however that you already have this stuff >> set up, >>> so you might be resistant to modifying how it works. >>> >>> If this is all just one big table with control names guaranteed to > be >> unique >>> then you could just stash it in one big collection. There is a >> problem >>> however which is that classes get pretty slow as they get large. If >> you get >>> up past 10,000 strings (I don't know the exact point) it would bog >> back >>> down. If you broke it down into controls on a form, then you would >> ensure >>> that the total strings in any given collection is pretty small. >>> >>> Again I would build a class for all the code and the collection to >> load one >>> form. then a supervisor class to hold instances of this form class >> keyed on >>> form name. >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Rocky Smolin at Beach Access Software wrote: >>>> Max: >>>> >>>> That would work except the table driven approach is so much more >>> easier. >>>> Easy to add a language (got French and Spanish now in addition to >>>> traditional and simplified Chinese), too, or make a change to a >>> translation. >>>> To add a language I just add a column for that language to the >> Control >>>> and Messages tables and send them to the translator. Add that >>>> language to the language selector combo on the Preferences form, > and >>>> walla! Another language. >>>> >>>> >>>> Rocky Smolin >>>> Beach Access Software >>>> 858-259-4334 >>>> www.e-z-mrp.com >>>> www.bchacc.com >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com The information contained > in >> this >>> transmission is intended only for the person or entity to which it > is >>> addressed and may contain II-VI Proprietary and/or II-VI Business >> Sensitive >>> material. If you are not the intended recipient, please contact the >> sender >>> immediately and destroy the material in its entirety, whether >> electronic or >>> hard copy. You are notified that any review, retransmission, > copying, >>> disclosure, dissemination, or other use of, or taking of any action > in >>> reliance upon this information by persons or entities other than the >>> intended recipient is prohibited. >>> >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> The information contained in this transmission is intended only for > the person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy > the material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended > recipient is prohibited. >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From jimdettman at verizon.net Fri Feb 20 07:42:37 2009 From: jimdettman at verizon.net (Jim Dettman) Date: Fri, 20 Feb 2009 08:42:37 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <499E0667.3030008@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> Message-ID: <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> John, I posted a couple of comments yesterday to you and Drew, which still haven't shown up on the list, but I'll answer the question you just asked with "It depends on how big the collection is". What I wrote yesterday is that I would use a global recordset variable, thus avoiding opening/closing the recordset repeatedly and I'd use seek. You mentioned that JET always goes across the wire and that's not true. If a page is in the local JET cache, then it won't. But here that is really not an issue because a language translation table is certainly going to be part of the front end, so the table will be local. It's not going to change unless the app changes. Rocky has been talking about pulling 2500 records; if all that is pulled into memory, that is a fair sized chunk. I'd much rather let the system use that memory as it sees fit rather then tying it up with one specific task. If I have an application that is a couple of hundred forms and user Jim D uses only one form, then that's a big waste. Of course you could mitigate that somewhat by only loading the translation when the form loads and for the specific language as you mentioned. But if every programmer were to approach application design with the "load it into memory" approach because it's fast, then very quickly you can find that the OS will start paging out to disk. So your really not in memory any more. That's why I think pulling something into memory like this is a waste. FWIW, Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Thursday, February 19, 2009 8:25 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? I was trying so hard to keep quiet. ;-) And how could seek over and over and over and over be any faster than sucking the results out of a collection? OK, I'll go back to being quiet. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > But how could seek be any faster then simply running through the > recordset? > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Salakhetdinov > Shamil > Sent: Thursday, February 19, 2009 3:40 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > You decide, Rocky, > > Do you have time for that experimenting? > > May I warn you about what is known as: > > "Premature Optimization" > http://c2.com/cgi/wiki?PrematureOptimization > > and > > "Premature Generalization" > http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil > > ? > > Have a look: > > "Death by premature generalization" > http://ryanfarley.com/blog/archive/2004/04/30/570.aspx > > > My name is Shamil, you know :) and I have been a premature generalizer > in many cases I must admit - but I'm getting more and more XP/SCRUM > agile habits these days, and I'm getting more fun from programming real > life business tasks without my premature generalization and optimization > not so good(?) past habits... > > IMO in the case of the context of this thread using .Seek is the closest > and quickest yet good enough (and maybe the only one needed for many > years ahead) solution/transition from your existing .FindFirst-based > code... > > If that would not be good/speedy enough in your case then I'd probaably > use static array loaded on first call/after reset using .GetRows() with > accompanying static collection with FormName/ControlName as a key to > keep value for static array entry index, and a function to get > translation value using this collection/array... > > etc... > > Thank you. > > -- > Shamil > > -----Original Message----- > From: "Rocky Smolin at Beach Access Software" > To: "'Access Developers discussion and problem > solving'" > Date: Thu, 19 Feb 2009 09:56:55 -0800 > Subject: Re: [AccessD] Find First in an Array? > >> Dang. I think you're right. Gotta try that. You think it'll be > faster >> than SEEK? >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka >> Sent: Thursday, February 19, 2009 9:33 AM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? >> >> Hmmmm, actually, the way you have this set up, you could do this just > fine >> without an array or collection. >> >> Instead of this: >> >> For Each ctl In frm >> rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and >> fldLanguageControl = '" _ >> & ctl.Name & "'" >> >> Do this: >> >> strSQL="SELECT fldLanguageControl, fldLanguage" & > strLanguageToTranslate & " >> FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" >> set rs=New Recordset >> rs.open strsql,currentproject.connection, adopenkeyset,adlockreadonly > if >> rs.eof=false then rs.movefirst do until rs.eof=true >> me(rs.fields(0).value).Caption=rs.fields(1).value >> Loop >> Rs.close >> Set rs=nothing >> >> That way you are pulling the recordset up....and just running through > it >> once...instead of trying to find every record based on the control. >> >> Drew >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at >> Beach Access Software >> Sent: Thursday, February 19, 2009 12:57 AM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Find First in an Array? >> >> John: >> >> The table layout is: >> >> fldLanguageID Autonumber >> fldLanguageForm Text Name of the form that the control is on >> fldLanguageControl Text Name of the control >> fldLanguageControlType Text Not Used >> fldLanguageEnglish Text >> fldLanguageChineseComplex Text >> fldLanguageChineseSimple Text >> fldLanguageSpanish Text >> fldLanguageFrench Text >> >> In the translate routine I use: >> >> Set frm = Forms(argForm) >> For Each ctl In frm >> rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and >> fldLanguageControl = '" _ >> & ctl.Name & "'" >> >> Where argForm is the form name passed to the function. So I think I > might >> get a big boost in response time by indexing fldLanguageForm and >> fldLanguageControl. >> >> There are only about 2500 records in the table so I'm thinking that > the >> whole recordset is probably in memory anyway. >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Wednesday, February 18, 2009 5:46 PM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? >> >> Does this imply a table structure of: >> >> TR_ID Auto >> TR_CtlName Text >> TR_L1 text (or memo?) for language 1 >> TR_L2 text (or memo?) for language 2 >> Etc >> >> I would suggest that you add a form (or container) field. A control > name is >> unique on a form, however it could be the same on different forms but > have a >> different language string. By having a form field you could pull > subsets of >> records based on the form name, then use the control name (now > guaranteed to >> be unique), then obtain the language string. >> >> It appears from your email however that you already have this stuff > set up, >> so you might be resistant to modifying how it works. >> >> If this is all just one big table with control names guaranteed to be > unique >> then you could just stash it in one big collection. There is a > problem >> however which is that classes get pretty slow as they get large. If > you get >> up past 10,000 strings (I don't know the exact point) it would bog > back >> down. If you broke it down into controls on a form, then you would > ensure >> that the total strings in any given collection is pretty small. >> >> Again I would build a class for all the code and the collection to > load one >> form. then a supervisor class to hold instances of this form class > keyed on >> form name. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Rocky Smolin at Beach Access Software wrote: >>> Max: >>> >>> That would work except the table driven approach is so much more >> easier. >>> Easy to add a language (got French and Spanish now in addition to >>> traditional and simplified Chinese), too, or make a change to a >> translation. >>> To add a language I just add a column for that language to the > Control >>> and Messages tables and send them to the translator. Add that >>> language to the language selector combo on the Preferences form, and > >>> walla! Another language. >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com The information contained in > this >> transmission is intended only for the person or entity to which it is >> addressed and may contain II-VI Proprietary and/or II-VI Business > Sensitive >> material. If you are not the intended recipient, please contact the > sender >> immediately and destroy the material in its entirety, whether > electronic or >> hard copy. You are notified that any review, retransmission, copying, >> disclosure, dissemination, or other use of, or taking of any action in >> reliance upon this information by persons or entities other than the >> intended recipient is prohibited. >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jimdettman at verizon.net Fri Feb 20 07:46:08 2009 From: jimdettman at verizon.net (Jim Dettman) Date: Fri, 20 Feb 2009 08:46:08 -0500 Subject: [AccessD] Continuous form question In-Reply-To: <4dd71a0c0902191335w1a90a264i2652bcd4435f6244@mail.gmail.com> References: <4dd71a0c0902191335w1a90a264i2652bcd4435f6244@mail.gmail.com> Message-ID: Doug, I have a sample MDB for coloring rows in a continuous form which can easily be extended to columns and does not rely on conditional formatting. I will send it off list. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Doug Steele Sent: Thursday, February 19, 2009 4:35 PM To: accessd at databaseadvisors.com Subject: [AccessD] Continuous form question Hello: I have a large continuous form which will normally be showing about 600 rows of around 20 columns. After editing it, my client would like some kind of visual clue as to which individual cells in the form have been updated, so that someone else can quickly look it over and see where changes have been made. Does anyone have a good way of doing this? So far, any way I've thought about has been really ugly to implement. Thanks, Doug Steele -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Fri Feb 20 08:01:02 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Fri, 20 Feb 2009 09:01:02 -0500 Subject: [AccessD] Find First in an Array? References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <15769CDACB90431FA108E3CA24615E19@HAL9005> <499de585.1c05d00a.3006.ffffca6c@mx.google.com> <499E05DC.3060907@colbyconsulting.com> Message-ID: ...lol ...I'm in the process of a complete rewrite of a major ap I did more than ten years ago ...in my case, your 50% estimate is low by a wide margin ...very wide! :) ...I'd still like to see you refactor Rocky's code as a class/collection solution. William -------------------------------------------------- From: "jwcolby" Sent: Thursday, February 19, 2009 8:22 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Find First in an Array? > Code reviews? OMG! > > But yea, best practices is a learned skill. I can't tell you the times > (when I was learning to > program) that I would do whatever just to make it work, rather than do it > right. Then it was > refactoring because... There are just so many times when "the right way" > takes 10% longer than the > easy way, but refactoring the easy way takes 50% longer than the right > way. > > John W. Colby > www.ColbyConsulting.com > > > Charlotte Foust wrote: >> Then you MUST be an independent developer because if someone else >> reviews your code, believe me, they look under the hood! >> >> Charlotte Foust >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo >> Sent: Thursday, February 19, 2009 3:05 PM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Find First in an Array? >> >> That's my motto, now. No one ever looks under the hood, and I always >> judge my programs from the outside. Matters not how the data got on the >> form as long as it happens 1) fast and 2) accurate. >> >> >> Spot on, Rocky. >> >> Max >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From Gustav at cactus.dk Fri Feb 20 08:16:41 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Fri, 20 Feb 2009 15:16:41 +0100 Subject: [AccessD] Complete rewrite (was: Find First in an Array?) Message-ID: Hi William I had the impression that you converted everything to web form applications as fast as you could do the typing ...? Yesterday I played with the report viewer in asp.net and that is awesome - works "just like that", ready for export to Excel or PDF - exactly what clients request. /gustav >>> wdhindman at dejpolsystems.com 20-02-2009 15:01 >>> ...lol ...I'm in the process of a complete rewrite of a major ap I did more than ten years ago ...in my case, your 50% estimate is low by a wide margin ...very wide! :) ...I'd still like to see you refactor Rocky's code as a class/collection solution. William -------------------------------------------------- From: "jwcolby" Sent: Thursday, February 19, 2009 8:22 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Find First in an Array? > Code reviews? OMG! > > But yea, best practices is a learned skill. I can't tell you the times (when I was learning to > program) that I would do whatever just to make it work, rather than do it right. Then it was > refactoring because... There are just so many times when "the right way" takes 10% longer than the > easy way, but refactoring the easy way takes 50% longer than the right way. > > John W. Colby > www.ColbyConsulting.com > > > Charlotte Foust wrote: >> Then you MUST be an independent developer because if someone else >> reviews your code, believe me, they look under the hood! >> >> Charlotte Foust >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo >> Sent: Thursday, February 19, 2009 3:05 PM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Find First in an Array? >> >> That's my motto, now. No one ever looks under the hood, and I always >> judge my programs from the outside. Matters not how the data got on the >> form as long as it happens 1) fast and 2) accurate. >> >> >> Spot on, Rocky. >> >> Max From rockysmolin at bchacc.com Fri Feb 20 08:32:48 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Fri, 20 Feb 2009 06:32:48 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> References: <03DC01E6037D4BE3931BF41095651721@HAL9005><499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> Message-ID: Uh-oh. I think John is 'bound' to take issue with that. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman Sent: Friday, February 20, 2009 5:43 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? John, I posted a couple of comments yesterday to you and Drew, which still haven't shown up on the list, but I'll answer the question you just asked with "It depends on how big the collection is". What I wrote yesterday is that I would use a global recordset variable, thus avoiding opening/closing the recordset repeatedly and I'd use seek. You mentioned that JET always goes across the wire and that's not true. If a page is in the local JET cache, then it won't. But here that is really not an issue because a language translation table is certainly going to be part of the front end, so the table will be local. It's not going to change unless the app changes. Rocky has been talking about pulling 2500 records; if all that is pulled into memory, that is a fair sized chunk. I'd much rather let the system use that memory as it sees fit rather then tying it up with one specific task. If I have an application that is a couple of hundred forms and user Jim D uses only one form, then that's a big waste. Of course you could mitigate that somewhat by only loading the translation when the form loads and for the specific language as you mentioned. But if every programmer were to approach application design with the "load it into memory" approach because it's fast, then very quickly you can find that the OS will start paging out to disk. So your really not in memory any more. That's why I think pulling something into memory like this is a waste. FWIW, Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Thursday, February 19, 2009 8:25 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? I was trying so hard to keep quiet. ;-) And how could seek over and over and over and over be any faster than sucking the results out of a collection? OK, I'll go back to being quiet. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > But how could seek be any faster then simply running through the > recordset? > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of > Salakhetdinov Shamil > Sent: Thursday, February 19, 2009 3:40 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > You decide, Rocky, > > Do you have time for that experimenting? > > May I warn you about what is known as: > > "Premature Optimization" > http://c2.com/cgi/wiki?PrematureOptimization > > and > > "Premature Generalization" > http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil > > ? > > Have a look: > > "Death by premature generalization" > http://ryanfarley.com/blog/archive/2004/04/30/570.aspx > > > My name is Shamil, you know :) and I have been a premature generalizer > in many cases I must admit - but I'm getting more and more XP/SCRUM > agile habits these days, and I'm getting more fun from programming > real life business tasks without my premature generalization and > optimization not so good(?) past habits... > > IMO in the case of the context of this thread using .Seek is the > closest and quickest yet good enough (and maybe the only one needed > for many years ahead) solution/transition from your existing > .FindFirst-based code... > > If that would not be good/speedy enough in your case then I'd > probaably use static array loaded on first call/after reset using > .GetRows() with accompanying static collection with > FormName/ControlName as a key to keep value for static array entry > index, and a function to get translation value using this collection/array... > > etc... > > Thank you. > > -- > Shamil > > -----Original Message----- > From: "Rocky Smolin at Beach Access Software" > To: "'Access Developers discussion and problem > solving'" > Date: Thu, 19 Feb 2009 09:56:55 -0800 > Subject: Re: [AccessD] Find First in an Array? > >> Dang. I think you're right. Gotta try that. You think it'll be > faster >> than SEEK? >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka >> Sent: Thursday, February 19, 2009 9:33 AM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? >> >> Hmmmm, actually, the way you have this set up, you could do this just > fine >> without an array or collection. >> >> Instead of this: >> >> For Each ctl In frm >> rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and >> fldLanguageControl = '" _ >> & ctl.Name & "'" >> >> Do this: >> >> strSQL="SELECT fldLanguageControl, fldLanguage" & > strLanguageToTranslate & " >> FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" >> set rs=New Recordset >> rs.open strsql,currentproject.connection, adopenkeyset,adlockreadonly > if >> rs.eof=false then rs.movefirst do until rs.eof=true >> me(rs.fields(0).value).Caption=rs.fields(1).value >> Loop >> Rs.close >> Set rs=nothing >> >> That way you are pulling the recordset up....and just running through > it >> once...instead of trying to find every record based on the control. >> >> Drew >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at >> Beach Access Software >> Sent: Thursday, February 19, 2009 12:57 AM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Find First in an Array? >> >> John: >> >> The table layout is: >> >> fldLanguageID Autonumber >> fldLanguageForm Text Name of the form that the control is on >> fldLanguageControl Text Name of the control >> fldLanguageControlType Text Not Used >> fldLanguageEnglish Text >> fldLanguageChineseComplex Text >> fldLanguageChineseSimple Text >> fldLanguageSpanish Text >> fldLanguageFrench Text >> >> In the translate routine I use: >> >> Set frm = Forms(argForm) >> For Each ctl In frm >> rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and >> fldLanguageControl = '" _ >> & ctl.Name & "'" >> >> Where argForm is the form name passed to the function. So I think I > might >> get a big boost in response time by indexing fldLanguageForm and >> fldLanguageControl. >> >> There are only about 2500 records in the table so I'm thinking that > the >> whole recordset is probably in memory anyway. >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Wednesday, February 18, 2009 5:46 PM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? >> >> Does this imply a table structure of: >> >> TR_ID Auto >> TR_CtlName Text >> TR_L1 text (or memo?) for language 1 >> TR_L2 text (or memo?) for language 2 >> Etc >> >> I would suggest that you add a form (or container) field. A control > name is >> unique on a form, however it could be the same on different forms but > have a >> different language string. By having a form field you could pull > subsets of >> records based on the form name, then use the control name (now > guaranteed to >> be unique), then obtain the language string. >> >> It appears from your email however that you already have this stuff > set up, >> so you might be resistant to modifying how it works. >> >> If this is all just one big table with control names guaranteed to be > unique >> then you could just stash it in one big collection. There is a > problem >> however which is that classes get pretty slow as they get large. If > you get >> up past 10,000 strings (I don't know the exact point) it would bog > back >> down. If you broke it down into controls on a form, then you would > ensure >> that the total strings in any given collection is pretty small. >> >> Again I would build a class for all the code and the collection to > load one >> form. then a supervisor class to hold instances of this form class > keyed on >> form name. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Rocky Smolin at Beach Access Software wrote: >>> Max: >>> >>> That would work except the table driven approach is so much more >> easier. >>> Easy to add a language (got French and Spanish now in addition to >>> traditional and simplified Chinese), too, or make a change to a >> translation. >>> To add a language I just add a column for that language to the > Control >>> and Messages tables and send them to the translator. Add that >>> language to the language selector combo on the Preferences form, and > >>> walla! Another language. >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com The information contained in > this >> transmission is intended only for the person or entity to which it is >> addressed and may contain II-VI Proprietary and/or II-VI Business > Sensitive >> material. If you are not the intended recipient, please contact the > sender >> immediately and destroy the material in its entirety, whether > electronic or >> hard copy. You are notified that any review, retransmission, copying, >> disclosure, dissemination, or other use of, or taking of any action >> in reliance upon this information by persons or entities other than >> the intended recipient is prohibited. >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Fri Feb 20 08:44:15 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 20 Feb 2009 09:44:15 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> Message-ID: <499EC1BF.9050102@colbyconsulting.com> The bottom line is that to a large extent we all do what is comfortable to us as individual programmers and to heck with .... > You mentioned that JET always goes across the wire and that's not true. If a page is in the local JET cache, then it won't. > But if every programmer were to approach application design with the "load it into memory" approach because it's fast, then very quickly you can find that the OS will start paging out to disk. So your really not in memory any more. Well... Hmmm... your way caches the entire recordset and all its associated junk - indexes etc. My way caches exactly and only the strings for one specific language. However your way (done on a form by form basis on demand) sounds like it could be flushing the jet cache as other processes run so that it may very well have to hit the disk again for the next form to load. At best it kind of sounds like "six of one, half a dozen of the other". > If I have an application that is a couple of hundred forms and user Jim D uses only one form, then that's a big waste. True, but if you cache the data as the form loads the first time then that goes away. I was proposing exactly that. Now you have the best of both worlds, you don't use time and resources until a form is actually loaded, but once it is loaded it can be loaded twice or a million times and always be fast. You should know from my JIT subforms I am all about doing stuff as / when needed. Notice that I am not caching constantly changing data, nor data that doesn't change but is rarely used, only data that rarely changes and is used constantly in the program. That "rarely changes / constantly used" is not a rare occasion in complex systems. To go to the disk dozens or hundreds or thousands of times a day to get the same data over and over IMHO is just silly, when I can just cache it and be done. It is even sillier when caching it is a trivial programming exercise. It is sillier yet when caching the data significantly speeds up the program. I learned a long time ago to organize my program into classes, each class performs a systemic task. I learned that when a set of data is in constant use in the program (and form translation fits that bill) then I would build a class system to cache it and the program always works faster. The "cache class system" looks very similar from data set to data set. It doesn't take me long to set it up because I have done it so often. So that is what I do. I do understand that it is only fast / efficient for me because I use classes all day every day, but so can any Access programmer as my lectures are intended to show. John W. Colby www.ColbyConsulting.com Jim Dettman wrote: > John, > > I posted a couple of comments yesterday to you and Drew, which still > haven't shown up on the list, but I'll answer the question you just asked > with "It depends on how big the collection is". > > What I wrote yesterday is that I would use a global recordset variable, > thus avoiding opening/closing the recordset repeatedly and I'd use seek. > > You mentioned that JET always goes across the wire and that's not true. > If a page is in the local JET cache, then it won't. > > But here that is really not an issue because a language translation table > is certainly going to be part of the front end, so the table will be local. > It's not going to change unless the app changes. > > Rocky has been talking about pulling 2500 records; if all that is pulled > into memory, that is a fair sized chunk. I'd much rather let the system use > that memory as it sees fit rather then tying it up with one specific task. > If I have an application that is a couple of hundred forms and user Jim D > uses only one form, then that's a big waste. Of course you could mitigate > that somewhat by only loading the translation when the form loads and for > the specific language as you mentioned. > > But if every programmer were to approach application design with the "load > it into memory" approach because it's fast, then very quickly you can find > that the OS will start paging out to disk. So your really not in memory any > more. > > That's why I think pulling something into memory like this is a waste. > > FWIW, > Jim. > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Thursday, February 19, 2009 8:25 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > I was trying so hard to keep quiet. > > ;-) > > And how could seek over and over and over and over be any faster than > sucking the results out of a > collection? > > OK, I'll go back to being quiet. > > John W. Colby > www.ColbyConsulting.com > > > Drew Wutka wrote: >> But how could seek be any faster then simply running through the >> recordset? >> >> Drew >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Salakhetdinov >> Shamil >> Sent: Thursday, February 19, 2009 3:40 PM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? >> >> You decide, Rocky, >> >> Do you have time for that experimenting? >> >> May I warn you about what is known as: >> >> "Premature Optimization" >> http://c2.com/cgi/wiki?PrematureOptimization >> >> and >> >> "Premature Generalization" >> http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil >> >> ? >> >> Have a look: >> >> "Death by premature generalization" >> http://ryanfarley.com/blog/archive/2004/04/30/570.aspx >> >> >> My name is Shamil, you know :) and I have been a premature generalizer >> in many cases I must admit - but I'm getting more and more XP/SCRUM >> agile habits these days, and I'm getting more fun from programming real >> life business tasks without my premature generalization and optimization >> not so good(?) past habits... >> >> IMO in the case of the context of this thread using .Seek is the closest >> and quickest yet good enough (and maybe the only one needed for many >> years ahead) solution/transition from your existing .FindFirst-based >> code... >> >> If that would not be good/speedy enough in your case then I'd probaably >> use static array loaded on first call/after reset using .GetRows() with >> accompanying static collection with FormName/ControlName as a key to >> keep value for static array entry index, and a function to get >> translation value using this collection/array... >> >> etc... >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: "Rocky Smolin at Beach Access Software" >> To: "'Access Developers discussion and problem >> solving'" >> Date: Thu, 19 Feb 2009 09:56:55 -0800 >> Subject: Re: [AccessD] Find First in an Array? >> >>> Dang. I think you're right. Gotta try that. You think it'll be >> faster >>> than SEEK? >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >>> >>> >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka >>> Sent: Thursday, February 19, 2009 9:33 AM >>> To: Access Developers discussion and problem solving >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> Hmmmm, actually, the way you have this set up, you could do this just >> fine >>> without an array or collection. >>> >>> Instead of this: >>> >>> For Each ctl In frm >>> rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and >>> fldLanguageControl = '" _ >>> & ctl.Name & "'" >>> >>> Do this: >>> >>> strSQL="SELECT fldLanguageControl, fldLanguage" & >> strLanguageToTranslate & " >>> FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" >>> set rs=New Recordset >>> rs.open strsql,currentproject.connection, adopenkeyset,adlockreadonly >> if >>> rs.eof=false then rs.movefirst do until rs.eof=true >>> me(rs.fields(0).value).Caption=rs.fields(1).value >>> Loop >>> Rs.close >>> Set rs=nothing >>> >>> That way you are pulling the recordset up....and just running through >> it >>> once...instead of trying to find every record based on the control. >>> >>> Drew >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >> Smolin at >>> Beach Access Software >>> Sent: Thursday, February 19, 2009 12:57 AM >>> To: 'Access Developers discussion and problem solving' >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> John: >>> >>> The table layout is: >>> >>> fldLanguageID Autonumber >>> fldLanguageForm Text Name of the form that the control is on >>> fldLanguageControl Text Name of the control >>> fldLanguageControlType Text Not Used >>> fldLanguageEnglish Text >>> fldLanguageChineseComplex Text >>> fldLanguageChineseSimple Text >>> fldLanguageSpanish Text >>> fldLanguageFrench Text >>> >>> In the translate routine I use: >>> >>> Set frm = Forms(argForm) >>> For Each ctl In frm >>> rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and >>> fldLanguageControl = '" _ >>> & ctl.Name & "'" >>> >>> Where argForm is the form name passed to the function. So I think I >> might >>> get a big boost in response time by indexing fldLanguageForm and >>> fldLanguageControl. >>> >>> There are only about 2500 records in the table so I'm thinking that >> the >>> whole recordset is probably in memory anyway. >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >>> >>> >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>> Sent: Wednesday, February 18, 2009 5:46 PM >>> To: Access Developers discussion and problem solving >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> Does this imply a table structure of: >>> >>> TR_ID Auto >>> TR_CtlName Text >>> TR_L1 text (or memo?) for language 1 >>> TR_L2 text (or memo?) for language 2 >>> Etc >>> >>> I would suggest that you add a form (or container) field. A control >> name is >>> unique on a form, however it could be the same on different forms but >> have a >>> different language string. By having a form field you could pull >> subsets of >>> records based on the form name, then use the control name (now >> guaranteed to >>> be unique), then obtain the language string. >>> >>> It appears from your email however that you already have this stuff >> set up, >>> so you might be resistant to modifying how it works. >>> >>> If this is all just one big table with control names guaranteed to be >> unique >>> then you could just stash it in one big collection. There is a >> problem >>> however which is that classes get pretty slow as they get large. If >> you get >>> up past 10,000 strings (I don't know the exact point) it would bog >> back >>> down. If you broke it down into controls on a form, then you would >> ensure >>> that the total strings in any given collection is pretty small. >>> >>> Again I would build a class for all the code and the collection to >> load one >>> form. then a supervisor class to hold instances of this form class >> keyed on >>> form name. >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Rocky Smolin at Beach Access Software wrote: >>>> Max: >>>> >>>> That would work except the table driven approach is so much more >>> easier. >>>> Easy to add a language (got French and Spanish now in addition to >>>> traditional and simplified Chinese), too, or make a change to a >>> translation. >>>> To add a language I just add a column for that language to the >> Control >>>> and Messages tables and send them to the translator. Add that >>>> language to the language selector combo on the Preferences form, and >>>> walla! Another language. >>>> >>>> >>>> Rocky Smolin >>>> Beach Access Software >>>> 858-259-4334 >>>> www.e-z-mrp.com >>>> www.bchacc.com >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com The information contained in >> this >>> transmission is intended only for the person or entity to which it is >>> addressed and may contain II-VI Proprietary and/or II-VI Business >> Sensitive >>> material. If you are not the intended recipient, please contact the >> sender >>> immediately and destroy the material in its entirety, whether >> electronic or >>> hard copy. You are notified that any review, retransmission, copying, >>> disclosure, dissemination, or other use of, or taking of any action in >>> reliance upon this information by persons or entities other than the >>> intended recipient is prohibited. >>> >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> From jwcolby at colbyconsulting.com Fri Feb 20 08:46:12 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 20 Feb 2009 09:46:12 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005><499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> Message-ID: <499EC234.3000305@colbyconsulting.com> ROTFL. Could be. ;) John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Uh-oh. I think John is 'bound' to take issue with that. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman > Sent: Friday, February 20, 2009 5:43 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > John, > > I posted a couple of comments yesterday to you and Drew, which still > haven't shown up on the list, but I'll answer the question you just asked > with "It depends on how big the collection is". > > What I wrote yesterday is that I would use a global recordset variable, > thus avoiding opening/closing the recordset repeatedly and I'd use seek. > > You mentioned that JET always goes across the wire and that's not true. > If a page is in the local JET cache, then it won't. > > But here that is really not an issue because a language translation table > is certainly going to be part of the front end, so the table will be local. > It's not going to change unless the app changes. > > Rocky has been talking about pulling 2500 records; if all that is pulled > into memory, that is a fair sized chunk. I'd much rather let the system use > that memory as it sees fit rather then tying it up with one specific task. > If I have an application that is a couple of hundred forms and user Jim D > uses only one form, then that's a big waste. Of course you could mitigate > that somewhat by only loading the translation when the form loads and for > the specific language as you mentioned. > > But if every programmer were to approach application design with the "load > it into memory" approach because it's fast, then very quickly you can find > that the OS will start paging out to disk. So your really not in memory any > more. > > That's why I think pulling something into memory like this is a waste. > > FWIW, > Jim. > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Thursday, February 19, 2009 8:25 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > I was trying so hard to keep quiet. > > ;-) > > And how could seek over and over and over and over be any faster than > sucking the results out of a collection? > > OK, I'll go back to being quiet. > > John W. Colby > www.ColbyConsulting.com > > > Drew Wutka wrote: >> But how could seek be any faster then simply running through the >> recordset? >> >> Drew >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of >> Salakhetdinov Shamil >> Sent: Thursday, February 19, 2009 3:40 PM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? >> >> You decide, Rocky, >> >> Do you have time for that experimenting? >> >> May I warn you about what is known as: >> >> "Premature Optimization" >> http://c2.com/cgi/wiki?PrematureOptimization >> >> and >> >> "Premature Generalization" >> http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil >> >> ? >> >> Have a look: >> >> "Death by premature generalization" >> http://ryanfarley.com/blog/archive/2004/04/30/570.aspx >> >> >> My name is Shamil, you know :) and I have been a premature generalizer >> in many cases I must admit - but I'm getting more and more XP/SCRUM >> agile habits these days, and I'm getting more fun from programming >> real life business tasks without my premature generalization and >> optimization not so good(?) past habits... >> >> IMO in the case of the context of this thread using .Seek is the >> closest and quickest yet good enough (and maybe the only one needed >> for many years ahead) solution/transition from your existing >> .FindFirst-based code... >> >> If that would not be good/speedy enough in your case then I'd >> probaably use static array loaded on first call/after reset using >> .GetRows() with accompanying static collection with >> FormName/ControlName as a key to keep value for static array entry >> index, and a function to get translation value using this > collection/array... >> >> etc... >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: "Rocky Smolin at Beach Access Software" >> To: "'Access Developers discussion and problem >> solving'" >> Date: Thu, 19 Feb 2009 09:56:55 -0800 >> Subject: Re: [AccessD] Find First in an Array? >> >>> Dang. I think you're right. Gotta try that. You think it'll be >> faster >>> than SEEK? >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >>> >>> >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka >>> Sent: Thursday, February 19, 2009 9:33 AM >>> To: Access Developers discussion and problem solving >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> Hmmmm, actually, the way you have this set up, you could do this just >> fine >>> without an array or collection. >>> >>> Instead of this: >>> >>> For Each ctl In frm >>> rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and >>> fldLanguageControl = '" _ >>> & ctl.Name & "'" >>> >>> Do this: >>> >>> strSQL="SELECT fldLanguageControl, fldLanguage" & >> strLanguageToTranslate & " >>> FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" >>> set rs=New Recordset >>> rs.open strsql,currentproject.connection, adopenkeyset,adlockreadonly >> if >>> rs.eof=false then rs.movefirst do until rs.eof=true >>> me(rs.fields(0).value).Caption=rs.fields(1).value >>> Loop >>> Rs.close >>> Set rs=nothing >>> >>> That way you are pulling the recordset up....and just running through >> it >>> once...instead of trying to find every record based on the control. >>> >>> Drew >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >> Smolin at >>> Beach Access Software >>> Sent: Thursday, February 19, 2009 12:57 AM >>> To: 'Access Developers discussion and problem solving' >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> John: >>> >>> The table layout is: >>> >>> fldLanguageID Autonumber >>> fldLanguageForm Text Name of the form that the control is on >>> fldLanguageControl Text Name of the control >>> fldLanguageControlType Text Not Used >>> fldLanguageEnglish Text >>> fldLanguageChineseComplex Text >>> fldLanguageChineseSimple Text >>> fldLanguageSpanish Text >>> fldLanguageFrench Text >>> >>> In the translate routine I use: >>> >>> Set frm = Forms(argForm) >>> For Each ctl In frm >>> rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and >>> fldLanguageControl = '" _ >>> & ctl.Name & "'" >>> >>> Where argForm is the form name passed to the function. So I think I >> might >>> get a big boost in response time by indexing fldLanguageForm and >>> fldLanguageControl. >>> >>> There are only about 2500 records in the table so I'm thinking that >> the >>> whole recordset is probably in memory anyway. >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >>> >>> >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>> Sent: Wednesday, February 18, 2009 5:46 PM >>> To: Access Developers discussion and problem solving >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> Does this imply a table structure of: >>> >>> TR_ID Auto >>> TR_CtlName Text >>> TR_L1 text (or memo?) for language 1 >>> TR_L2 text (or memo?) for language 2 >>> Etc >>> >>> I would suggest that you add a form (or container) field. A control >> name is >>> unique on a form, however it could be the same on different forms but >> have a >>> different language string. By having a form field you could pull >> subsets of >>> records based on the form name, then use the control name (now >> guaranteed to >>> be unique), then obtain the language string. >>> >>> It appears from your email however that you already have this stuff >> set up, >>> so you might be resistant to modifying how it works. >>> >>> If this is all just one big table with control names guaranteed to be >> unique >>> then you could just stash it in one big collection. There is a >> problem >>> however which is that classes get pretty slow as they get large. If >> you get >>> up past 10,000 strings (I don't know the exact point) it would bog >> back >>> down. If you broke it down into controls on a form, then you would >> ensure >>> that the total strings in any given collection is pretty small. >>> >>> Again I would build a class for all the code and the collection to >> load one >>> form. then a supervisor class to hold instances of this form class >> keyed on >>> form name. >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Rocky Smolin at Beach Access Software wrote: >>>> Max: >>>> >>>> That would work except the table driven approach is so much more >>> easier. >>>> Easy to add a language (got French and Spanish now in addition to >>>> traditional and simplified Chinese), too, or make a change to a >>> translation. >>>> To add a language I just add a column for that language to the >> Control >>>> and Messages tables and send them to the translator. Add that >>>> language to the language selector combo on the Preferences form, and >>>> walla! Another language. >>>> >>>> >>>> Rocky Smolin >>>> Beach Access Software >>>> 858-259-4334 >>>> www.e-z-mrp.com >>>> www.bchacc.com >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com The information contained in >> this >>> transmission is intended only for the person or entity to which it is >>> addressed and may contain II-VI Proprietary and/or II-VI Business >> Sensitive >>> material. If you are not the intended recipient, please contact the >> sender >>> immediately and destroy the material in its entirety, whether >> electronic or >>> hard copy. You are notified that any review, retransmission, copying, >>> disclosure, dissemination, or other use of, or taking of any action >>> in reliance upon this information by persons or entities other than >>> the intended recipient is prohibited. >>> >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Fri Feb 20 09:06:04 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 20 Feb 2009 10:06:04 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <15769CDACB90431FA108E3CA24615E19@HAL9005> <499de585.1c05d00a.3006.ffffca6c@mx.google.com> <499E05DC.3060907@colbyconsulting.com> Message-ID: <499EC6DC.1000106@colbyconsulting.com> > ...I'd still like to see you refactor Rocky's code as a class/collection solution. I will do that William. My problem in this is that I need a table, a form that needs translation, translation data for that form and then I can write the classes. However I do think that this is a useful example of using a class "system" where there is more than one class doing the work. I will try to get this done over the weekend. John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...lol ...I'm in the process of a complete rewrite of a major ap I did more > than ten years ago ...in my case, your 50% estimate is low by a wide margin > ...very wide! :) > > ...I'd still like to see you refactor Rocky's code as a class/collection > solution. > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Thursday, February 19, 2009 8:22 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] Find First in an Array? > >> Code reviews? OMG! >> >> But yea, best practices is a learned skill. I can't tell you the times >> (when I was learning to >> program) that I would do whatever just to make it work, rather than do it >> right. Then it was >> refactoring because... There are just so many times when "the right way" >> takes 10% longer than the >> easy way, but refactoring the easy way takes 50% longer than the right >> way. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Charlotte Foust wrote: >>> Then you MUST be an independent developer because if someone else >>> reviews your code, believe me, they look under the hood! >>> >>> Charlotte Foust >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo >>> Sent: Thursday, February 19, 2009 3:05 PM >>> To: 'Access Developers discussion and problem solving' >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> That's my motto, now. No one ever looks under the hood, and I always >>> judge my programs from the outside. Matters not how the data got on the >>> form as long as it happens 1) fast and 2) accurate. >>> >>> >>> Spot on, Rocky. >>> >>> Max >>> >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From dbdoug at gmail.com Fri Feb 20 09:13:06 2009 From: dbdoug at gmail.com (Doug Steele) Date: Fri, 20 Feb 2009 07:13:06 -0800 Subject: [AccessD] Continuous form question In-Reply-To: References: <4dd71a0c0902191335w1a90a264i2652bcd4435f6244@mail.gmail.com> Message-ID: <4dd71a0c0902200713k36421d7at53648d7a880e70e9@mail.gmail.com> Thanks, everyone, for your ideas. I've ended up using conditional formattting, using 'Update Tracker' fields in the tables (I need to remember the updates between sessions) but building the conditions (ala A.D. Tejpal) in code which gives me easy control of the colours. Doug Steele From jimdettman at verizon.net Fri Feb 20 10:18:12 2009 From: jimdettman at verizon.net (Jim Dettman) Date: Fri, 20 Feb 2009 11:18:12 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <499EC1BF.9050102@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com> Message-ID: <00B081D149A644ADBDE5C4BEF589F120@XPS> John, <> So if your not comfortable with it then just ignore it? Humm. <> No, that is not correct. A seek on an open table won't cache the entire recordset in of itself. What might be sitting in JET's cache is a few buffers worth of index pages and a couple of buffers worth of data pages, but I'd highly doubt you'd have the entire thing unless you just went through every single record or used them a lot in comparison to everything else (JET's cache is LRU based, so the pages could add up in the cache over time). But even if nothing is in the cache, a seek is based on an index and since JET indexes are B-tree based, you'd have your record within 2-3 disk hits at most, especially on a 2500 record table. Since a language table would be local to the FE, this would not be a pull over the wire and it would be quite fast. It's quite possible to that the disk drive would still have the data in its own cache, so you might not even end up doing a hard hit to the disk at all. But if the data does happen to be in the JET cache, then I doubt there would be much of a difference between the two methods. I think the class approach would still be a tad faster, but not by much. And let me be clear; it's not the class approach that I don't agree with but the point that as an application developer do I cache things in memory on my own or not? It is when considering that point that I would not choose to do an array based approach either, which would be really simple to write as I could use GetRows() to dump the set into an array. Since the array would already be sorted, I could even do a B-tree search on it rather then a sequential one. That might even beat out a class (hard to say with VBA) in terms of speed. But with the seek approach, you would not be tying up a chunk of memory to be used for only one purpose. From my viewpoint the seek approach is the best of both worlds, stuff gets cached if it is used a lot and if it is not, then it is not cached. In that case, the memory gets used for something productive rather then sitting there. And I would be really surprised if performance wasn't acceptable. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 20, 2009 9:44 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? The bottom line is that to a large extent we all do what is comfortable to us as individual programmers and to heck with .... > You mentioned that JET always goes across the wire and that's not true. If a page is in the local JET cache, then it won't. > But if every programmer were to approach application design with the "load it into memory" approach because it's fast, then very quickly you can find that the OS will start paging out to disk. So your really not in memory any more. Well... Hmmm... your way caches the entire recordset and all its associated junk - indexes etc. My way caches exactly and only the strings for one specific language. However your way (done on a form by form basis on demand) sounds like it could be flushing the jet cache as other processes run so that it may very well have to hit the disk again for the next form to load. At best it kind of sounds like "six of one, half a dozen of the other". > If I have an application that is a couple of hundred forms and user Jim D uses only one form, then that's a big waste. True, but if you cache the data as the form loads the first time then that goes away. I was proposing exactly that. Now you have the best of both worlds, you don't use time and resources until a form is actually loaded, but once it is loaded it can be loaded twice or a million times and always be fast. You should know from my JIT subforms I am all about doing stuff as / when needed. Notice that I am not caching constantly changing data, nor data that doesn't change but is rarely used, only data that rarely changes and is used constantly in the program. That "rarely changes / constantly used" is not a rare occasion in complex systems. To go to the disk dozens or hundreds or thousands of times a day to get the same data over and over IMHO is just silly, when I can just cache it and be done. It is even sillier when caching it is a trivial programming exercise. It is sillier yet when caching the data significantly speeds up the program. I learned a long time ago to organize my program into classes, each class performs a systemic task. I learned that when a set of data is in constant use in the program (and form translation fits that bill) then I would build a class system to cache it and the program always works faster. The "cache class system" looks very similar from data set to data set. It doesn't take me long to set it up because I have done it so often. So that is what I do. I do understand that it is only fast / efficient for me because I use classes all day every day, but so can any Access programmer as my lectures are intended to show. John W. Colby www.ColbyConsulting.com Jim Dettman wrote: > John, > > I posted a couple of comments yesterday to you and Drew, which still > haven't shown up on the list, but I'll answer the question you just asked > with "It depends on how big the collection is". > > What I wrote yesterday is that I would use a global recordset variable, > thus avoiding opening/closing the recordset repeatedly and I'd use seek. > > You mentioned that JET always goes across the wire and that's not true. > If a page is in the local JET cache, then it won't. > > But here that is really not an issue because a language translation table > is certainly going to be part of the front end, so the table will be local. > It's not going to change unless the app changes. > > Rocky has been talking about pulling 2500 records; if all that is pulled > into memory, that is a fair sized chunk. I'd much rather let the system use > that memory as it sees fit rather then tying it up with one specific task. > If I have an application that is a couple of hundred forms and user Jim D > uses only one form, then that's a big waste. Of course you could mitigate > that somewhat by only loading the translation when the form loads and for > the specific language as you mentioned. > > But if every programmer were to approach application design with the "load > it into memory" approach because it's fast, then very quickly you can find > that the OS will start paging out to disk. So your really not in memory any > more. > > That's why I think pulling something into memory like this is a waste. > > FWIW, > Jim. > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Thursday, February 19, 2009 8:25 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > I was trying so hard to keep quiet. > > ;-) > > And how could seek over and over and over and over be any faster than > sucking the results out of a > collection? > > OK, I'll go back to being quiet. > > John W. Colby > www.ColbyConsulting.com > > > Drew Wutka wrote: >> But how could seek be any faster then simply running through the >> recordset? >> >> Drew >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Salakhetdinov >> Shamil >> Sent: Thursday, February 19, 2009 3:40 PM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? >> >> You decide, Rocky, >> >> Do you have time for that experimenting? >> >> May I warn you about what is known as: >> >> "Premature Optimization" >> http://c2.com/cgi/wiki?PrematureOptimization >> >> and >> >> "Premature Generalization" >> http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil >> >> ? >> >> Have a look: >> >> "Death by premature generalization" >> http://ryanfarley.com/blog/archive/2004/04/30/570.aspx >> >> >> My name is Shamil, you know :) and I have been a premature generalizer >> in many cases I must admit - but I'm getting more and more XP/SCRUM >> agile habits these days, and I'm getting more fun from programming real >> life business tasks without my premature generalization and optimization >> not so good(?) past habits... >> >> IMO in the case of the context of this thread using .Seek is the closest >> and quickest yet good enough (and maybe the only one needed for many >> years ahead) solution/transition from your existing .FindFirst-based >> code... >> >> If that would not be good/speedy enough in your case then I'd probaably >> use static array loaded on first call/after reset using .GetRows() with >> accompanying static collection with FormName/ControlName as a key to >> keep value for static array entry index, and a function to get >> translation value using this collection/array... >> >> etc... >> >> Thank you. >> >> -- >> Shamil >> >> -----Original Message----- >> From: "Rocky Smolin at Beach Access Software" >> To: "'Access Developers discussion and problem >> solving'" >> Date: Thu, 19 Feb 2009 09:56:55 -0800 >> Subject: Re: [AccessD] Find First in an Array? >> >>> Dang. I think you're right. Gotta try that. You think it'll be >> faster >>> than SEEK? >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >>> >>> >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka >>> Sent: Thursday, February 19, 2009 9:33 AM >>> To: Access Developers discussion and problem solving >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> Hmmmm, actually, the way you have this set up, you could do this just >> fine >>> without an array or collection. >>> >>> Instead of this: >>> >>> For Each ctl In frm >>> rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and >>> fldLanguageControl = '" _ >>> & ctl.Name & "'" >>> >>> Do this: >>> >>> strSQL="SELECT fldLanguageControl, fldLanguage" & >> strLanguageToTranslate & " >>> FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" >>> set rs=New Recordset >>> rs.open strsql,currentproject.connection, adopenkeyset,adlockreadonly >> if >>> rs.eof=false then rs.movefirst do until rs.eof=true >>> me(rs.fields(0).value).Caption=rs.fields(1).value >>> Loop >>> Rs.close >>> Set rs=nothing >>> >>> That way you are pulling the recordset up....and just running through >> it >>> once...instead of trying to find every record based on the control. >>> >>> Drew >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >> Smolin at >>> Beach Access Software >>> Sent: Thursday, February 19, 2009 12:57 AM >>> To: 'Access Developers discussion and problem solving' >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> John: >>> >>> The table layout is: >>> >>> fldLanguageID Autonumber >>> fldLanguageForm Text Name of the form that the control is on >>> fldLanguageControl Text Name of the control >>> fldLanguageControlType Text Not Used >>> fldLanguageEnglish Text >>> fldLanguageChineseComplex Text >>> fldLanguageChineseSimple Text >>> fldLanguageSpanish Text >>> fldLanguageFrench Text >>> >>> In the translate routine I use: >>> >>> Set frm = Forms(argForm) >>> For Each ctl In frm >>> rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and >>> fldLanguageControl = '" _ >>> & ctl.Name & "'" >>> >>> Where argForm is the form name passed to the function. So I think I >> might >>> get a big boost in response time by indexing fldLanguageForm and >>> fldLanguageControl. >>> >>> There are only about 2500 records in the table so I'm thinking that >> the >>> whole recordset is probably in memory anyway. >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >>> >>> >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>> Sent: Wednesday, February 18, 2009 5:46 PM >>> To: Access Developers discussion and problem solving >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> Does this imply a table structure of: >>> >>> TR_ID Auto >>> TR_CtlName Text >>> TR_L1 text (or memo?) for language 1 >>> TR_L2 text (or memo?) for language 2 >>> Etc >>> >>> I would suggest that you add a form (or container) field. A control >> name is >>> unique on a form, however it could be the same on different forms but >> have a >>> different language string. By having a form field you could pull >> subsets of >>> records based on the form name, then use the control name (now >> guaranteed to >>> be unique), then obtain the language string. >>> >>> It appears from your email however that you already have this stuff >> set up, >>> so you might be resistant to modifying how it works. >>> >>> If this is all just one big table with control names guaranteed to be >> unique >>> then you could just stash it in one big collection. There is a >> problem >>> however which is that classes get pretty slow as they get large. If >> you get >>> up past 10,000 strings (I don't know the exact point) it would bog >> back >>> down. If you broke it down into controls on a form, then you would >> ensure >>> that the total strings in any given collection is pretty small. >>> >>> Again I would build a class for all the code and the collection to >> load one >>> form. then a supervisor class to hold instances of this form class >> keyed on >>> form name. >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Rocky Smolin at Beach Access Software wrote: >>>> Max: >>>> >>>> That would work except the table driven approach is so much more >>> easier. >>>> Easy to add a language (got French and Spanish now in addition to >>>> traditional and simplified Chinese), too, or make a change to a >>> translation. >>>> To add a language I just add a column for that language to the >> Control >>>> and Messages tables and send them to the translator. Add that >>>> language to the language selector combo on the Preferences form, and >>>> walla! Another language. >>>> >>>> >>>> Rocky Smolin >>>> Beach Access Software >>>> 858-259-4334 >>>> www.e-z-mrp.com >>>> www.bchacc.com >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com The information contained in >> this >>> transmission is intended only for the person or entity to which it is >>> addressed and may contain II-VI Proprietary and/or II-VI Business >> Sensitive >>> material. If you are not the intended recipient, please contact the >> sender >>> immediately and destroy the material in its entirety, whether >> electronic or >>> hard copy. You are notified that any review, retransmission, copying, >>> disclosure, dissemination, or other use of, or taking of any action in >>> reliance upon this information by persons or entities other than the >>> intended recipient is prohibited. >>> >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Fri Feb 20 10:27:33 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Fri, 20 Feb 2009 08:27:33 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: <499EC6DC.1000106@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <15769CDACB90431FA108E3CA24615E19@HAL9005> <499de585.1c05d00a.3006.ffffca6c@mx.google.com> <499E05DC.3060907@colbyconsulting.com> <499EC6DC.1000106@colbyconsulting.com> Message-ID: Would it help if I sent you the table with the translations? And maybe a form or two with a bunch of controls? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 20, 2009 7:06 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? > ...I'd still like to see you refactor Rocky's code as a class/collection solution. I will do that William. My problem in this is that I need a table, a form that needs translation, translation data for that form and then I can write the classes. However I do think that this is a useful example of using a class "system" where there is more than one class doing the work. I will try to get this done over the weekend. John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...lol ...I'm in the process of a complete rewrite of a major ap I did > more than ten years ago ...in my case, your 50% estimate is low by a > wide margin ...very wide! :) > > ...I'd still like to see you refactor Rocky's code as a > class/collection solution. > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Thursday, February 19, 2009 8:22 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] Find First in an Array? > >> Code reviews? OMG! >> >> But yea, best practices is a learned skill. I can't tell you the >> times (when I was learning to >> program) that I would do whatever just to make it work, rather than >> do it right. Then it was refactoring because... There are just so >> many times when "the right way" >> takes 10% longer than the >> easy way, but refactoring the easy way takes 50% longer than the >> right way. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Charlotte Foust wrote: >>> Then you MUST be an independent developer because if someone else >>> reviews your code, believe me, they look under the hood! >>> >>> Charlotte Foust >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max >>> Wanadoo >>> Sent: Thursday, February 19, 2009 3:05 PM >>> To: 'Access Developers discussion and problem solving' >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> That's my motto, now. No one ever looks under the hood, and I >>> always judge my programs from the outside. Matters not how the data >>> got on the form as long as it happens 1) fast and 2) accurate. >>> >>> >>> Spot on, Rocky. >>> >>> Max >>> >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rusty.hammond at cpiqpc.com Fri Feb 20 10:33:31 2009 From: rusty.hammond at cpiqpc.com (rusty.hammond at cpiqpc.com) Date: Fri, 20 Feb 2009 10:33:31 -0600 Subject: [AccessD] Should I use an adp or an mdb Message-ID: <49A286ABF515E94A8505CD14DEB721700367E20F@CPIEMAIL-EVS1.CPIQPC.NET> I'm getting ready to create a new application with a SQL server backend. I'm familiar enough with using SQL server but my question is, do I use an Access Data Project or a regular mdb with links to the tables as a front end. I've used both and would like to use the adp but I've heard rumblings that they will be going away and don't want to rewrite this app in the near future. I'm currently using Access 2003. Any suggestions? Rusty Hammond IT Dept. - B-20 CPI Qualified Plan Consultants, Inc. (620) 793-8473 ext. 416 rusty.hammond at cpiqpc.com ********************************************************************** WARNING: All e-mail sent to and from this address will be received, scanned or otherwise recorded by the CPI Qualified Plan Consultants, Inc. corporate e-mail system and is subject to archival, monitoring or review by, and/or disclosure to, someone other than the recipient. ********************************************************************** From dwaters at usinternet.com Fri Feb 20 10:57:48 2009 From: dwaters at usinternet.com (Dan Waters) Date: Fri, 20 Feb 2009 10:57:48 -0600 Subject: [AccessD] Should I use an adp or an mdb In-Reply-To: <49A286ABF515E94A8505CD14DEB721700367E20F@CPIEMAIL-EVS1.CPIQPC.NET> References: <49A286ABF515E94A8505CD14DEB721700367E20F@CPIEMAIL-EVS1.CPIQPC.NET> Message-ID: Use an mdb! The primary goal of using an adp was that it gave you the ability to manage objects in the SQL Server database you are using from within Access - an mdb can't do that. But, since SQL Server 2005 Express (free) was released, you can easily manage those objects with SQL Server Express Management Studio (also free). This wasn't easily possible with MSDE. So, by using an Access mdb and SQL Server Express Management Studio you can get all the benefits of both. With an mdb, you can use either table links for use on a LAN, or you can connect using OLEDB (like an adp would) for use on a WAN. Also in an mdb, you can have temp tables in the FE. I did a search on 'Access mdb vs adp' and got many good sites. Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of rusty.hammond at cpiqpc.com Sent: Friday, February 20, 2009 10:34 AM To: accessd at databaseadvisors.com Subject: [AccessD] Should I use an adp or an mdb I'm getting ready to create a new application with a SQL server backend. I'm familiar enough with using SQL server but my question is, do I use an Access Data Project or a regular mdb with links to the tables as a front end. I've used both and would like to use the adp but I've heard rumblings that they will be going away and don't want to rewrite this app in the near future. I'm currently using Access 2003. Any suggestions? Rusty Hammond IT Dept. - B-20 CPI Qualified Plan Consultants, Inc. (620) 793-8473 ext. 416 rusty.hammond at cpiqpc.com ********************************************************************** WARNING: All e-mail sent to and from this address will be received, scanned or otherwise recorded by the CPI Qualified Plan Consultants, Inc. corporate e-mail system and is subject to archival, monitoring or review by, and/or disclosure to, someone other than the recipient. ********************************************************************** -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From DWUTKA at Marlow.com Fri Feb 20 11:06:59 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Fri, 20 Feb 2009 11:06:59 -0600 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <15769CDACB90431FA108E3CA24615E19@HAL9005> <499de585.1c05d00a.3006.ffffca6c@mx.google.com> <499E05DC.3060907@colbyconsulting.com><499EC6DC.1000106@colbyconsulting.com> Message-ID: Send it to me, and I'll put up a working class example. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Friday, February 20, 2009 10:28 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? Would it help if I sent you the table with the translations? And maybe a form or two with a bunch of controls? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 20, 2009 7:06 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? > ...I'd still like to see you refactor Rocky's code as a class/collection solution. I will do that William. My problem in this is that I need a table, a form that needs translation, translation data for that form and then I can write the classes. However I do think that this is a useful example of using a class "system" where there is more than one class doing the work. I will try to get this done over the weekend. John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...lol ...I'm in the process of a complete rewrite of a major ap I did > more than ten years ago ...in my case, your 50% estimate is low by a > wide margin ...very wide! :) > > ...I'd still like to see you refactor Rocky's code as a > class/collection solution. > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Thursday, February 19, 2009 8:22 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] Find First in an Array? > >> Code reviews? OMG! >> >> But yea, best practices is a learned skill. I can't tell you the >> times (when I was learning to >> program) that I would do whatever just to make it work, rather than >> do it right. Then it was refactoring because... There are just so >> many times when "the right way" >> takes 10% longer than the >> easy way, but refactoring the easy way takes 50% longer than the >> right way. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Charlotte Foust wrote: >>> Then you MUST be an independent developer because if someone else >>> reviews your code, believe me, they look under the hood! >>> >>> Charlotte Foust >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max >>> Wanadoo >>> Sent: Thursday, February 19, 2009 3:05 PM >>> To: 'Access Developers discussion and problem solving' >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> That's my motto, now. No one ever looks under the hood, and I >>> always judge my programs from the outside. Matters not how the data >>> got on the form as long as it happens 1) fast and 2) accurate. >>> >>> >>> Spot on, Rocky. >>> >>> Max >>> >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwcolby at colbyconsulting.com Fri Feb 20 11:18:09 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 20 Feb 2009 12:18:09 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <15769CDACB90431FA108E3CA24615E19@HAL9005> <499de585.1c05d00a.3006.ffffca6c@mx.google.com> <499E05DC.3060907@colbyconsulting.com> <499EC6DC.1000106@colbyconsulting.com> Message-ID: <499EE5D1.7080806@colbyconsulting.com> That would be most helpful. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Would it help if I sent you the table with the translations? And maybe a > form or two with a bunch of controls? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 20, 2009 7:06 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > > ...I'd still like to see you refactor Rocky's code as a class/collection > solution. > > I will do that William. My problem in this is that I need a table, a form > that needs translation, translation data for that form and then I can write > the classes. However I do think that this is a useful example of using a > class "system" where there is more than one class doing the work. > > I will try to get this done over the weekend. > > John W. Colby > www.ColbyConsulting.com > > > William Hindman wrote: >> ...lol ...I'm in the process of a complete rewrite of a major ap I did >> more than ten years ago ...in my case, your 50% estimate is low by a >> wide margin ...very wide! :) >> >> ...I'd still like to see you refactor Rocky's code as a >> class/collection solution. >> >> William >> >> -------------------------------------------------- >> From: "jwcolby" >> Sent: Thursday, February 19, 2009 8:22 PM >> To: "Access Developers discussion and problem solving" >> >> Subject: Re: [AccessD] Find First in an Array? >> >>> Code reviews? OMG! >>> >>> But yea, best practices is a learned skill. I can't tell you the >>> times (when I was learning to >>> program) that I would do whatever just to make it work, rather than >>> do it right. Then it was refactoring because... There are just so >>> many times when "the right way" >>> takes 10% longer than the >>> easy way, but refactoring the easy way takes 50% longer than the >>> right way. >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Charlotte Foust wrote: >>>> Then you MUST be an independent developer because if someone else >>>> reviews your code, believe me, they look under the hood! >>>> >>>> Charlotte Foust >>>> >>>> -----Original Message----- >>>> From: accessd-bounces at databaseadvisors.com >>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max >>>> Wanadoo >>>> Sent: Thursday, February 19, 2009 3:05 PM >>>> To: 'Access Developers discussion and problem solving' >>>> Subject: Re: [AccessD] Find First in an Array? >>>> >>>> That's my motto, now. No one ever looks under the hood, and I >>>> always judge my programs from the outside. Matters not how the data >>>> got on the form as long as it happens 1) fast and 2) accurate. >>>> >>>> >>>> Spot on, Rocky. >>>> >>>> Max >>>> >>>> >>>> -- >>>> AccessD mailing list >>>> AccessD at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>> Website: http://www.databaseadvisors.com >>>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From rockysmolin at bchacc.com Fri Feb 20 11:24:16 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Fri, 20 Feb 2009 09:24:16 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <15769CDACB90431FA108E3CA24615E19@HAL9005> <499de585.1c05d00a.3006.ffffca6c@mx.google.com> <499E05DC.3060907@colbyconsulting.com><499EC6DC.1000106@colbyconsulting.com> Message-ID: What address is best? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Friday, February 20, 2009 9:07 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Send it to me, and I'll put up a working class example. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Friday, February 20, 2009 10:28 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? Would it help if I sent you the table with the translations? And maybe a form or two with a bunch of controls? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 20, 2009 7:06 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? > ...I'd still like to see you refactor Rocky's code as a class/collection solution. I will do that William. My problem in this is that I need a table, a form that needs translation, translation data for that form and then I can write the classes. However I do think that this is a useful example of using a class "system" where there is more than one class doing the work. I will try to get this done over the weekend. John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...lol ...I'm in the process of a complete rewrite of a major ap I did > more than ten years ago ...in my case, your 50% estimate is low by a > wide margin ...very wide! :) > > ...I'd still like to see you refactor Rocky's code as a > class/collection solution. > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Thursday, February 19, 2009 8:22 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] Find First in an Array? > >> Code reviews? OMG! >> >> But yea, best practices is a learned skill. I can't tell you the >> times (when I was learning to >> program) that I would do whatever just to make it work, rather than >> do it right. Then it was refactoring because... There are just so >> many times when "the right way" >> takes 10% longer than the >> easy way, but refactoring the easy way takes 50% longer than the >> right way. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Charlotte Foust wrote: >>> Then you MUST be an independent developer because if someone else >>> reviews your code, believe me, they look under the hood! >>> >>> Charlotte Foust >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max >>> Wanadoo >>> Sent: Thursday, February 19, 2009 3:05 PM >>> To: 'Access Developers discussion and problem solving' >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> That's my motto, now. No one ever looks under the hood, and I >>> always judge my programs from the outside. Matters not how the data >>> got on the form as long as it happens 1) fast and 2) accurate. >>> >>> >>> Spot on, Rocky. >>> >>> Max >>> >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Fri Feb 20 11:24:35 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Fri, 20 Feb 2009 09:24:35 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: <499EE5D1.7080806@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <15769CDACB90431FA108E3CA24615E19@HAL9005> <499de585.1c05d00a.3006.ffffca6c@mx.google.com> <499E05DC.3060907@colbyconsulting.com> <499EC6DC.1000106@colbyconsulting.com> <499EE5D1.7080806@colbyconsulting.com> Message-ID: <9CC921139B53491B8BAD6C465F720E8C@HAL9005> What address should it go to? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 20, 2009 9:18 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? That would be most helpful. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Would it help if I sent you the table with the translations? And > maybe a form or two with a bunch of controls? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 20, 2009 7:06 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > > ...I'd still like to see you refactor Rocky's code as a > class/collection solution. > > I will do that William. My problem in this is that I need a table, a > form that needs translation, translation data for that form and then I > can write the classes. However I do think that this is a useful > example of using a class "system" where there is more than one class doing the work. > > I will try to get this done over the weekend. > > John W. Colby > www.ColbyConsulting.com > > > William Hindman wrote: >> ...lol ...I'm in the process of a complete rewrite of a major ap I >> did more than ten years ago ...in my case, your 50% estimate is low >> by a wide margin ...very wide! :) >> >> ...I'd still like to see you refactor Rocky's code as a >> class/collection solution. >> >> William >> >> -------------------------------------------------- >> From: "jwcolby" >> Sent: Thursday, February 19, 2009 8:22 PM >> To: "Access Developers discussion and problem solving" >> >> Subject: Re: [AccessD] Find First in an Array? >> >>> Code reviews? OMG! >>> >>> But yea, best practices is a learned skill. I can't tell you the >>> times (when I was learning to >>> program) that I would do whatever just to make it work, rather than >>> do it right. Then it was refactoring because... There are just so >>> many times when "the right way" >>> takes 10% longer than the >>> easy way, but refactoring the easy way takes 50% longer than the >>> right way. >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Charlotte Foust wrote: >>>> Then you MUST be an independent developer because if someone else >>>> reviews your code, believe me, they look under the hood! >>>> >>>> Charlotte Foust >>>> >>>> -----Original Message----- >>>> From: accessd-bounces at databaseadvisors.com >>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max >>>> Wanadoo >>>> Sent: Thursday, February 19, 2009 3:05 PM >>>> To: 'Access Developers discussion and problem solving' >>>> Subject: Re: [AccessD] Find First in an Array? >>>> >>>> That's my motto, now. No one ever looks under the hood, and I >>>> always judge my programs from the outside. Matters not how the >>>> data got on the form as long as it happens 1) fast and 2) accurate. >>>> >>>> >>>> Spot on, Rocky. >>>> >>>> Max >>>> >>>> >>>> -- >>>> AccessD mailing list >>>> AccessD at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>> Website: http://www.databaseadvisors.com >>>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Fri Feb 20 11:56:24 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Fri, 20 Feb 2009 18:56:24 +0100 Subject: [AccessD] Nice shopping for you! Message-ID: Hi Gary Friday spam. This is new! /gustav >>> garykjos at hotmail.com 20-02-2009 16:59 >>> Nice shopping for you! i would like to introduce a good company who trades mainly in electornic products. Now the company is under sales promotion,all the products are sold nearly at its cost. They provide the best service to customers,they provide you with original products of good quality,and what is more,the price is a surprising happiness to you! It is realy a good chance for shopping.just grasp the opportunity,Now or never! The web address: www.kdvsbn.com From jwcolby at colbyconsulting.com Fri Feb 20 12:02:59 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 20 Feb 2009 13:02:59 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <9CC921139B53491B8BAD6C465F720E8C@HAL9005> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <15769CDACB90431FA108E3CA24615E19@HAL9005> <499de585.1c05d00a.3006.ffffca6c@mx.google.com> <499E05DC.3060907@colbyconsulting.com> <499EC6DC.1000106@colbyconsulting.com> <499EE5D1.7080806@colbyconsulting.com> <9CC921139B53491B8BAD6C465F720E8C@HAL9005> Message-ID: <499EF053.1040703@colbyconsulting.com> My address used for this list. Open any email from me (this one) and look at the From. From is my address, sender is the list. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > What address should it go to? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 20, 2009 9:18 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > That would be most helpful. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: >> Would it help if I sent you the table with the translations? And >> maybe a form or two with a bunch of controls? >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Friday, February 20, 2009 7:06 AM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? >> >> > ...I'd still like to see you refactor Rocky's code as a >> class/collection solution. >> >> I will do that William. My problem in this is that I need a table, a >> form that needs translation, translation data for that form and then I >> can write the classes. However I do think that this is a useful >> example of using a class "system" where there is more than one class doing > the work. >> I will try to get this done over the weekend. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> William Hindman wrote: >>> ...lol ...I'm in the process of a complete rewrite of a major ap I >>> did more than ten years ago ...in my case, your 50% estimate is low >>> by a wide margin ...very wide! :) >>> >>> ...I'd still like to see you refactor Rocky's code as a >>> class/collection solution. >>> >>> William >>> >>> -------------------------------------------------- >>> From: "jwcolby" >>> Sent: Thursday, February 19, 2009 8:22 PM >>> To: "Access Developers discussion and problem solving" >>> >>> Subject: Re: [AccessD] Find First in an Array? >>> >>>> Code reviews? OMG! >>>> >>>> But yea, best practices is a learned skill. I can't tell you the >>>> times (when I was learning to >>>> program) that I would do whatever just to make it work, rather than >>>> do it right. Then it was refactoring because... There are just so >>>> many times when "the right way" >>>> takes 10% longer than the >>>> easy way, but refactoring the easy way takes 50% longer than the >>>> right way. >>>> >>>> John W. Colby >>>> www.ColbyConsulting.com >>>> >>>> >>>> Charlotte Foust wrote: >>>>> Then you MUST be an independent developer because if someone else >>>>> reviews your code, believe me, they look under the hood! >>>>> >>>>> Charlotte Foust >>>>> >>>>> -----Original Message----- >>>>> From: accessd-bounces at databaseadvisors.com >>>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max >>>>> Wanadoo >>>>> Sent: Thursday, February 19, 2009 3:05 PM >>>>> To: 'Access Developers discussion and problem solving' >>>>> Subject: Re: [AccessD] Find First in an Array? >>>>> >>>>> That's my motto, now. No one ever looks under the hood, and I >>>>> always judge my programs from the outside. Matters not how the >>>>> data got on the form as long as it happens 1) fast and 2) accurate. >>>>> >>>>> >>>>> Spot on, Rocky. >>>>> >>>>> Max >>>>> >>>>> >>>>> -- >>>>> AccessD mailing list >>>>> AccessD at databaseadvisors.com >>>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>>> Website: http://www.databaseadvisors.com >>>>> >>>> -- >>>> AccessD mailing list >>>> AccessD at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>> Website: http://www.databaseadvisors.com >>>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From garykjos at gmail.com Fri Feb 20 12:33:27 2009 From: garykjos at gmail.com (Gary Kjos) Date: Fri, 20 Feb 2009 12:33:27 -0600 Subject: [AccessD] Nice shopping for you! In-Reply-To: References: Message-ID: Sorry everybody. My hotmail account got hacked into I think. This did show up in my SENT MAIL there although I can assure you it was not of my creation. And I don't use that account all that often. Someone on the OT list tipped me that they had received it and asked if it was really from me. Not sure how it got through to the AccessD list. All the lists put it on hold for moderator approval. Maybe one of the Moderators - maybe even ME - mistakenly approved it to go through to the list members. I have updated my hotmail password. Gmail too for that matter. Grrrr. Sorry everybody! GK On Fri, Feb 20, 2009 at 11:56 AM, Gustav Brock wrote: > Hi Gary > > Friday spam. This is new! > > /gustav > >>>> garykjos at hotmail.com 20-02-2009 16:59 >>> > > Nice shopping for you! > > i would like to introduce a good company who trades mainly in electornic products. > Now the company is under sales promotion,all the products are sold nearly at its cost. > They provide the best service to customers,they provide you with original products of > good quality,and what is more,the price is a surprising happiness to you! > It is realy a good chance for shopping.just grasp the opportunity,Now or never! > The web address: www.kdvsbn.com > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- Gary Kjos garykjos at gmail.com From markamatte at hotmail.com Fri Feb 20 12:36:51 2009 From: markamatte at hotmail.com (Mark A Matte) Date: Fri, 20 Feb 2009 18:36:51 +0000 Subject: [AccessD] Nice shopping for you! In-Reply-To: References: Message-ID: A couple of weeks ago...I started getting junkmail from my own hotmail account. I changed the password...and it stopped. Kind of embarrassing getting an email from my self asking if I wanted larger 'body' parts. > Date: Fri, 20 Feb 2009 18:56:24 +0100 > From: Gustav at cactus.dk > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Nice shopping for you! > > Hi Gary > > Friday spam. This is new! > > /gustav > > >>> garykjos at hotmail.com 20-02-2009 16:59 >>> > > Nice shopping for you! > > i would like to introduce a good company who trades mainly in electornic products. > Now the company is under sales promotion,all the products are sold nearly at its cost. > They provide the best service to customers,they provide you with original products of > good quality,and what is more,the price is a surprising happiness to you! > It is realy a good chance for shopping.just grasp the opportunity,Now or never! > The web address: www.kdvsbn.com > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com _________________________________________________________________ Windows Live?: E-mail. Chat. Share. Get more ways to connect. http://windowslive.com/explore?ocid=TXT_TAGLM_WL_t2_allup_explore_022009 From jwcolby at colbyconsulting.com Fri Feb 20 13:02:48 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 20 Feb 2009 14:02:48 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <00B081D149A644ADBDE5C4BEF589F120@XPS> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com> <00B081D149A644ADBDE5C4BEF589F120@XPS> Message-ID: <499EFE58.6050703@colbyconsulting.com> Jim, > So if your not comfortable with it then just ignore it? Humm. I was making a general observation, which I believe is true. People tend to use the tools they know and are expert with, and only go outside of their comfort zone when the tool fails them. I freely acknowledge that this is true for me, and I am not accusing you of anything. > No, that is not correct. A seek on an open table won't cache the entire recordset in of itself. What might be sitting in JET's cache is a few buffers worth of index pages and a couple of buffers worth of data pages, but I'd highly doubt you'd have the entire thing unless you just went through every single record or used them a lot in comparison to everything else (JET's cache is LRU based, so the pages could add up in the cache over time). By definition you have to have all of the data that is used for doing any particular form. >Since a language table would be local to the FE, this would not be a pull over the wire and it would be quite fast. It might be in your systems but it would not be in mine. I use a BE because that is where data goes. I personally do not have ANY local tables in the FE except for temp tables for processes. I have many cases where there are different FEs for different purposes. I am not going to get into the "this is a local table so it goes in the FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are for data (in my world). >It's quite possible to that the disk drive would still have the data in its own cache, so you might not even end up doing a hard hit to the disk at all. Unlikely. The disk is also pulling forms, reports, running the browser as the user goofs off, working on buffering music that the user is listening to, and any of the other million things that go on in a Windows environment. The probability that the data for a form opened sometime previously would still be in the disk buffer is pretty low I would guess. > But with the seek approach, you would not be tying up a chunk of memory to be used for only one purpose. I have to say that with Windows XP requiring 256 megs just for it to load, and Vista pushing twice that just for it to load, I am not worrying about caching my "seldom changing / frequently used" data. If I take even a few hundred K to cache the language strings for every form in the system, I will not lose any sleep at all for doing that. I would in fact just cache the form's opened... > It is when considering that point that I would not choose to do an array based approach either, which would be really simple to write as I could use GetRows() to dump the set into an array. Since the array would already be sorted, I could even do a B-tree search on it rather then a sequential one. That might even beat out a class (hard to say with VBA) in terms of speed. Even if I used a Getrows() to dump into an array I would promptly move the data to a collection and get rid of the array. I think that a lot of stuff goes into determining when to use what tools. I do not have a b-tree search algorithm for a generic array but even if I did (and assuming that it was faster, doubtful), a collection is USUALLY fast enough that it wouldn't be worth the complexity of using such a tool, at least not on a routine basis. I use collections because: 1) They are DEAD simple. The syntax is simple, the usage is simple. 2) It is easy code to read and maintain. 3) They can hold a ton of stuff easily. 4) They can hold just about anything, from simple variables to objects and class instances (which are objects). 5) They are very fast. If you think about it, Access uses collections EVERYWHERE, and I want to emphasize the EVERYWHERE. Every single thing that you do with Access from forms (a collection of) to controls on forms (a collection of), to properties of controls and forms (a collection of), to fields (a collection of), to querydefs (a collection of) etc etc ad nasium, are all stored internally to Access (and when loaded into memory) as collections. Notice that Microsoft doesn't store all these items in tables. If tables are so blazing fast, if all the things that you think are true (jet cache / disk cache etc) really are true, why does Access store everything in collections instead of just leaving it in records on a disk? Can you say programming / overhead nightmare? Microsoft has spent a lot of time and energy optimizing collections in order to make Access itself fast. IMHO, why would I NOT use what Microsoft uses and has spent so much effort to make fast and easy to use? John W. Colby www.ColbyConsulting.com Jim Dettman wrote: > John, > > < us as individual > programmers and to heck with ....>> > > So if your not comfortable with it then just ignore it? Humm. > > < associated junk - indexes etc. My > way caches exactly and only the strings for one specific language.>> > > No, that is not correct. A seek on an open table won't cache the entire > recordset in of itself. What might be sitting in JET's cache is a few > buffers worth of index pages and a couple of buffers worth of data pages, > but I'd highly doubt you'd have the entire thing unless you just went > through every single record or used them a lot in comparison to everything > else (JET's cache is LRU based, so the pages could add up in the cache over > time). > > But even if nothing is in the cache, a seek is based on an index and since > JET indexes are B-tree based, you'd have your record within 2-3 disk hits at > most, especially on a 2500 record table. Since a language table would be > local to the FE, this would not be a pull over the wire and it would be > quite fast. It's quite possible to that the disk drive would still have the > data in its own cache, so you might not even end up doing a hard hit to the > disk at all. > > But if the data does happen to be in the JET cache, then I doubt there > would be much of a difference between the two methods. I think the class > approach would still be a tad faster, but not by much. And let me be clear; > it's not the class approach that I don't agree with but the point that as an > application developer do I cache things in memory on my own or not? > > It is when considering that point that I would not choose to do an array > based approach either, which would be really simple to write as I could use > GetRows() to dump the set into an array. Since the array would already be > sorted, I could even do a B-tree search on it rather then a sequential one. > That might even beat out a class (hard to say with VBA) in terms of speed. > > But with the seek approach, you would not be tying up a chunk of memory to > be used for only one purpose. > > From my viewpoint the seek approach is the best of both worlds, stuff gets > cached if it is used a lot and if it is not, then it is not cached. In that > case, the memory gets used for something productive rather then sitting > there. And I would be really surprised if performance wasn't acceptable. > > Jim. > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 20, 2009 9:44 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > The bottom line is that to a large extent we all do what is comfortable to > us as individual > programmers and to heck with .... > > > You mentioned that JET always goes across the wire and that's not true. > If a page is in the > local JET cache, then it won't. > > > But if every programmer were to approach application design with the > "load it into memory" > approach because it's fast, then very quickly you can find that the OS will > start paging out to > disk. So your really not in memory any more. > > Well... Hmmm... your way caches the entire recordset and all its associated > junk - indexes etc. My > way caches exactly and only the strings for one specific language. > > However your way (done on a form by form basis on demand) sounds like it > could be flushing the jet > cache as other processes run so that it may very well have to hit the disk > again for the next form > to load. At best it kind of sounds like "six of one, half a dozen of the > other". > > > If I have an application that is a couple of hundred forms and user Jim D > uses only one form, > then that's a big waste. > > True, but if you cache the data as the form loads the first time then that > goes away. I was > proposing exactly that. Now you have the best of both worlds, you don't use > time and resources > until a form is actually loaded, but once it is loaded it can be loaded > twice or a million times and > always be fast. You should know from my JIT subforms I am all about doing > stuff as / when needed. > > Notice that I am not caching constantly changing data, nor data that doesn't > change but is rarely > used, only data that rarely changes and is used constantly in the program. > That "rarely changes / > constantly used" is not a rare occasion in complex systems. To go to the > disk dozens or hundreds or > thousands of times a day to get the same data over and over IMHO is just > silly, when I can just > cache it and be done. It is even sillier when caching it is a trivial > programming exercise. It is > sillier yet when caching the data significantly speeds up the program. > > I learned a long time ago to organize my program into classes, each class > performs a systemic task. > I learned that when a set of data is in constant use in the program (and > form translation fits > that bill) then I would build a class system to cache it and the program > always works faster. The > "cache class system" looks very similar from data set to data set. It > doesn't take me long to set > it up because I have done it so often. > > So that is what I do. I do understand that it is only fast / efficient for > me because I use classes > all day every day, but so can any Access programmer as my lectures are > intended to show. > > > John W. Colby > www.ColbyConsulting.com > > > Jim Dettman wrote: >> John, >> >> I posted a couple of comments yesterday to you and Drew, which still >> haven't shown up on the list, but I'll answer the question you just asked >> with "It depends on how big the collection is". >> >> What I wrote yesterday is that I would use a global recordset variable, >> thus avoiding opening/closing the recordset repeatedly and I'd use seek. >> >> You mentioned that JET always goes across the wire and that's not true. >> If a page is in the local JET cache, then it won't. >> >> But here that is really not an issue because a language translation > table >> is certainly going to be part of the front end, so the table will be > local. >> It's not going to change unless the app changes. >> >> Rocky has been talking about pulling 2500 records; if all that is pulled >> into memory, that is a fair sized chunk. I'd much rather let the system > use >> that memory as it sees fit rather then tying it up with one specific task. >> If I have an application that is a couple of hundred forms and user Jim D >> uses only one form, then that's a big waste. Of course you could mitigate >> that somewhat by only loading the translation when the form loads and for >> the specific language as you mentioned. >> >> But if every programmer were to approach application design with the > "load >> it into memory" approach because it's fast, then very quickly you can find >> that the OS will start paging out to disk. So your really not in memory > any >> more. >> >> That's why I think pulling something into memory like this is a waste. >> >> FWIW, >> Jim. From jwcolby at colbyconsulting.com Fri Feb 20 13:21:02 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 20 Feb 2009 14:21:02 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <499EC6DC.1000106@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <15769CDACB90431FA108E3CA24615E19@HAL9005> <499de585.1c05d00a.3006.ffffca6c@mx.google.com> <499E05DC.3060907@colbyconsulting.com> <499EC6DC.1000106@colbyconsulting.com> Message-ID: <499F029E.90402@colbyconsulting.com> > ...lol ...I'm in the process of a complete rewrite of a major ap I did more than ten years ago ...in my case, your 50% estimate is low by a wide margin ...very wide! :) In your own defense though William I have to say that it is rarely a valid comparison to look at our own work from ten years ago and our own work from today. There were a ton of things that I have learned in the last 10 years that would not have been available to me to use 10 years ago. Not only do I understand Access things that I did not understand then, but I am simply a more accomplished programmer, database analyst and system analyst today. John W. Colby www.ColbyConsulting.com jwcolby wrote: > > ...I'd still like to see you refactor Rocky's code as a class/collection solution. > > I will do that William. My problem in this is that I need a table, a form that needs translation, > translation data for that form and then I can write the classes. However I do think that this is a > useful example of using a class "system" where there is more than one class doing the work. > > I will try to get this done over the weekend. > > John W. Colby > www.ColbyConsulting.com > > > William Hindman wrote: >> ...lol ...I'm in the process of a complete rewrite of a major ap I did more >> than ten years ago ...in my case, your 50% estimate is low by a wide margin >> ...very wide! :) >> >> ...I'd still like to see you refactor Rocky's code as a class/collection >> solution. >> >> William >> >> -------------------------------------------------- >> From: "jwcolby" >> Sent: Thursday, February 19, 2009 8:22 PM >> To: "Access Developers discussion and problem solving" >> >> Subject: Re: [AccessD] Find First in an Array? >> >>> Code reviews? OMG! >>> >>> But yea, best practices is a learned skill. I can't tell you the times >>> (when I was learning to >>> program) that I would do whatever just to make it work, rather than do it >>> right. Then it was >>> refactoring because... There are just so many times when "the right way" >>> takes 10% longer than the >>> easy way, but refactoring the easy way takes 50% longer than the right >>> way. >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Charlotte Foust wrote: >>>> Then you MUST be an independent developer because if someone else >>>> reviews your code, believe me, they look under the hood! >>>> >>>> Charlotte Foust >>>> >>>> -----Original Message----- >>>> From: accessd-bounces at databaseadvisors.com >>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo >>>> Sent: Thursday, February 19, 2009 3:05 PM >>>> To: 'Access Developers discussion and problem solving' >>>> Subject: Re: [AccessD] Find First in an Array? >>>> >>>> That's my motto, now. No one ever looks under the hood, and I always >>>> judge my programs from the outside. Matters not how the data got on the >>>> form as long as it happens 1) fast and 2) accurate. >>>> >>>> >>>> Spot on, Rocky. >>>> >>>> Max >>>> >>>> >>>> -- >>>> AccessD mailing list >>>> AccessD at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>> Website: http://www.databaseadvisors.com >>>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> From max.wanadoo at gmail.com Fri Feb 20 13:33:23 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Fri, 20 Feb 2009 19:33:23 -0000 Subject: [AccessD] OT:Friday Joke An atheist was walking through the woods. Message-ID: <499f0589.1c07d00a.2134.fffff88f@mx.google.com> An atheist was walking through the woods. 'What majestic trees'! 'What powerful rivers'! 'What beautiful animals'! He said to himself As he was walking alongside the river, he heard a rustling in the bushes behind him. He turned to look. He saw a 7-foot grizzly bear charge towards him. He ran as fast as he could up the path. He looked over his shoulder & saw that the bear was closing in on him. He looked over his shoulder again, & the bear was even closer. He tripped & fell on the ground. He rolled over to pick himself up but saw that the bear was right on top of him, reaching for him with his left paw & raising his right paw to strike him. At that instant the Atheist cried out, 'Oh my God!' Time Stopped. The bear froze. The forest was silent. As a bright light shone upon the man, a voice came out of the sky. 'You deny my existence for all these years, teach others I don't exist and even credit creation to cosmic accident.' 'Do you expect me to help you out of this predicament? Am I to count you as a believer'? The atheist looked directly into the light, 'It would be hypocritical of me to suddenly ask you to treat me as a Christian now, but perhaps you could make the BEAR a Christian'? 'Very Well,' said the voice. The light went out. The sounds of the forest resumed. And the bear dropped his right paw, brought both paws together, bowed his head & spoke: 'Lord bless this food, which I am about to receive from thy bounty through Christ our Lord, Amen.' From dwaters at usinternet.com Fri Feb 20 13:54:58 2009 From: dwaters at usinternet.com (Dan Waters) Date: Fri, 20 Feb 2009 13:54:58 -0600 Subject: [AccessD] Conversion Time: Access to VB.Net (cross-posted) Message-ID: <278A1782E6FD426A82984651EAE0E1F5@danwaters> Does anyone have any rough estimates on converting an Access FE to a VB.Net FE? I know this depends on many factors, but a client has asked me to provide a rough estimate today. I have just begun learning this, so I don't know yet. Any thoughts? Thanks! Dan From davidmcafee at gmail.com Fri Feb 20 13:58:59 2009 From: davidmcafee at gmail.com (David McAfee) Date: Fri, 20 Feb 2009 11:58:59 -0800 Subject: [AccessD] Color listbox rows Message-ID: <8786a4c00902201158n1e28b8c1m26a34e365bf9e6d9@mail.gmail.com> Has anyone ever improved, or even got a working example of Stephen Leban's ListBoxEnhanced sample? http://www.lebans.com/listboxenhanced.htm I have an existing app in place but the powers that be currently would like to flag or color certain rows of a couple of listboxes if they are past due. I know that I can recreate this with a subform such as Candace Tripp's sample provides. I was just wondering if anyone has actually used Leban's sample (or found another work around). Thanks, David McAfee From rockysmolin at bchacc.com Fri Feb 20 14:05:38 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Fri, 20 Feb 2009 12:05:38 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: <499EFE58.6050703@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS> <499EFE58.6050703@colbyconsulting.com> Message-ID: <8475E883E0DF4EBB94B684E9525182D1@HAL9005> " I am not going to get into the "this is a local table so it goes in the FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are for data (in my world)." In my case, where the 'data' is really static, and is needed by each user, wouldn't the design be better with the language tables in the FE? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 20, 2009 11:03 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Jim, > So if your not comfortable with it then just ignore it? Humm. I was making a general observation, which I believe is true. People tend to use the tools they know and are expert with, and only go outside of their comfort zone when the tool fails them. I freely acknowledge that this is true for me, and I am not accusing you of anything. > No, that is not correct. A seek on an open table won't cache the entire recordset in of itself. What might be sitting in JET's cache is a few buffers worth of index pages and a couple of buffers worth of data pages, but I'd highly doubt you'd have the entire thing unless you just went through every single record or used them a lot in comparison to everything else (JET's cache is LRU based, so the pages could add up in the cache over time). By definition you have to have all of the data that is used for doing any particular form. >Since a language table would be local to the FE, this would not be a pull over the wire and it would be quite fast. It might be in your systems but it would not be in mine. I use a BE because that is where data goes. I personally do not have ANY local tables in the FE except for temp tables for processes. I have many cases where there are different FEs for different purposes. I am not going to get into the "this is a local table so it goes in the FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are for data (in my world). >It's quite possible to that the disk drive would still have the data in its own cache, so you might not even end up doing a hard hit to the disk at all. Unlikely. The disk is also pulling forms, reports, running the browser as the user goofs off, working on buffering music that the user is listening to, and any of the other million things that go on in a Windows environment. The probability that the data for a form opened sometime previously would still be in the disk buffer is pretty low I would guess. > But with the seek approach, you would not be tying up a chunk of memory to be used for only one purpose. I have to say that with Windows XP requiring 256 megs just for it to load, and Vista pushing twice that just for it to load, I am not worrying about caching my "seldom changing / frequently used" data. If I take even a few hundred K to cache the language strings for every form in the system, I will not lose any sleep at all for doing that. I would in fact just cache the form's opened... > It is when considering that point that I would not choose to do an array based approach either, which would be really simple to write as I could use GetRows() to dump the set into an array. Since the array would already be sorted, I could even do a B-tree search on it rather then a sequential one. That might even beat out a class (hard to say with VBA) in terms of speed. Even if I used a Getrows() to dump into an array I would promptly move the data to a collection and get rid of the array. I think that a lot of stuff goes into determining when to use what tools. I do not have a b-tree search algorithm for a generic array but even if I did (and assuming that it was faster, doubtful), a collection is USUALLY fast enough that it wouldn't be worth the complexity of using such a tool, at least not on a routine basis. I use collections because: 1) They are DEAD simple. The syntax is simple, the usage is simple. 2) It is easy code to read and maintain. 3) They can hold a ton of stuff easily. 4) They can hold just about anything, from simple variables to objects and class instances (which are objects). 5) They are very fast. If you think about it, Access uses collections EVERYWHERE, and I want to emphasize the EVERYWHERE. Every single thing that you do with Access from forms (a collection of) to controls on forms (a collection of), to properties of controls and forms (a collection of), to fields (a collection of), to querydefs (a collection of) etc etc ad nasium, are all stored internally to Access (and when loaded into memory) as collections. Notice that Microsoft doesn't store all these items in tables. If tables are so blazing fast, if all the things that you think are true (jet cache / disk cache etc) really are true, why does Access store everything in collections instead of just leaving it in records on a disk? Can you say programming / overhead nightmare? Microsoft has spent a lot of time and energy optimizing collections in order to make Access itself fast. IMHO, why would I NOT use what Microsoft uses and has spent so much effort to make fast and easy to use? John W. Colby www.ColbyConsulting.com Jim Dettman wrote: > John, > > < comfortable to us as individual programmers and to heck with ....>> > > So if your not comfortable with it then just ignore it? Humm. > > < associated junk - indexes etc. My way caches exactly and only the > strings for one specific language.>> > > No, that is not correct. A seek on an open table won't cache the > entire recordset in of itself. What might be sitting in JET's cache > is a few buffers worth of index pages and a couple of buffers worth of > data pages, but I'd highly doubt you'd have the entire thing unless > you just went through every single record or used them a lot in > comparison to everything else (JET's cache is LRU based, so the pages > could add up in the cache over time). > > But even if nothing is in the cache, a seek is based on an index and > since JET indexes are B-tree based, you'd have your record within 2-3 > disk hits at most, especially on a 2500 record table. Since a > language table would be local to the FE, this would not be a pull over > the wire and it would be quite fast. It's quite possible to that the > disk drive would still have the data in its own cache, so you might > not even end up doing a hard hit to the disk at all. > > But if the data does happen to be in the JET cache, then I doubt > there would be much of a difference between the two methods. I think > the class approach would still be a tad faster, but not by much. And > let me be clear; it's not the class approach that I don't agree with > but the point that as an application developer do I cache things in memory on my own or not? > > It is when considering that point that I would not choose to do an > array based approach either, which would be really simple to write as > I could use > GetRows() to dump the set into an array. Since the array would already > be sorted, I could even do a B-tree search on it rather then a sequential one. > That might even beat out a class (hard to say with VBA) in terms of speed. > > But with the seek approach, you would not be tying up a chunk of > memory to be used for only one purpose. > > From my viewpoint the seek approach is the best of both worlds, > stuff gets cached if it is used a lot and if it is not, then it is not > cached. In that case, the memory gets used for something productive > rather then sitting there. And I would be really surprised if performance wasn't acceptable. > > Jim. > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 20, 2009 9:44 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > The bottom line is that to a large extent we all do what is > comfortable to us as individual programmers and to heck with .... > > > You mentioned that JET always goes across the wire and that's not true. > If a page is in the > local JET cache, then it won't. > > > But if every programmer were to approach application design with the > "load it into memory" > approach because it's fast, then very quickly you can find that the OS > will start paging out to disk. So your really not in memory any more. > > Well... Hmmm... your way caches the entire recordset and all its > associated junk - indexes etc. My way caches exactly and only the > strings for one specific language. > > However your way (done on a form by form basis on demand) sounds like > it could be flushing the jet cache as other processes run so that it > may very well have to hit the disk again for the next form to load. > At best it kind of sounds like "six of one, half a dozen of the > other". > > > If I have an application that is a couple of hundred forms and user > Jim D uses only one form, then that's a big waste. > > True, but if you cache the data as the form loads the first time then > that goes away. I was proposing exactly that. Now you have the best > of both worlds, you don't use time and resources until a form is > actually loaded, but once it is loaded it can be loaded twice or a > million times and always be fast. You should know from my JIT > subforms I am all about doing stuff as / when needed. > > Notice that I am not caching constantly changing data, nor data that > doesn't change but is rarely used, only data that rarely changes and > is used constantly in the program. > That "rarely changes / > constantly used" is not a rare occasion in complex systems. To go to > the disk dozens or hundreds or thousands of times a day to get the > same data over and over IMHO is just silly, when I can just cache it > and be done. It is even sillier when caching it is a trivial > programming exercise. It is sillier yet when caching the data > significantly speeds up the program. > > I learned a long time ago to organize my program into classes, each > class performs a systemic task. > I learned that when a set of data is in constant use in the program > (and form translation fits that bill) then I would build a class > system to cache it and the program always works faster. The "cache > class system" looks very similar from data set to data set. It > doesn't take me long to set it up because I have done it so often. > > So that is what I do. I do understand that it is only fast / > efficient for me because I use classes all day every day, but so can > any Access programmer as my lectures are intended to show. > > > John W. Colby > www.ColbyConsulting.com > > > Jim Dettman wrote: >> John, >> >> I posted a couple of comments yesterday to you and Drew, which >> still haven't shown up on the list, but I'll answer the question you >> just asked with "It depends on how big the collection is". >> >> What I wrote yesterday is that I would use a global recordset >> variable, thus avoiding opening/closing the recordset repeatedly and I'd use seek. >> >> You mentioned that JET always goes across the wire and that's not true. >> If a page is in the local JET cache, then it won't. >> >> But here that is really not an issue because a language translation > table >> is certainly going to be part of the front end, so the table will be > local. >> It's not going to change unless the app changes. >> >> Rocky has been talking about pulling 2500 records; if all that is >> pulled into memory, that is a fair sized chunk. I'd much rather let >> the system > use >> that memory as it sees fit rather then tying it up with one specific task. >> If I have an application that is a couple of hundred forms and user >> Jim D uses only one form, then that's a big waste. Of course you >> could mitigate that somewhat by only loading the translation when the >> form loads and for the specific language as you mentioned. >> >> But if every programmer were to approach application design with >> the > "load >> it into memory" approach because it's fast, then very quickly you can >> find that the OS will start paging out to disk. So your really not >> in memory > any >> more. >> >> That's why I think pulling something into memory like this is a waste. >> >> FWIW, >> Jim. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rusty.hammond at cpiqpc.com Fri Feb 20 14:16:15 2009 From: rusty.hammond at cpiqpc.com (rusty.hammond at cpiqpc.com) Date: Fri, 20 Feb 2009 14:16:15 -0600 Subject: [AccessD] Should I use an adp or an mdb Message-ID: <49A286ABF515E94A8505CD14DEB721700367E214@CPIEMAIL-EVS1.CPIQPC.NET> Thanks for the reply. Since the SQL server is 2005 I have to use SQL Server Management Studio anyway. >From the search you used it sounds like most people prefer to go with the mdb and with the release of SQL 2008, an Access 2007 adp can't make changes to the SQL objects either so you really can't count on being able to use that feature consistently as time goes on. I really like the ability to change the connection from a test back end to production very easily from an adp, but there's code out there to work around that issue in an mdb. Seems like the advantages of an adp are going away. You think that's planned? Thanks, Rusty -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: Friday, February 20, 2009 10:58 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Should I use an adp or an mdb Use an mdb! The primary goal of using an adp was that it gave you the ability to manage objects in the SQL Server database you are using from within Access - an mdb can't do that. But, since SQL Server 2005 Express (free) was released, you can easily manage those objects with SQL Server Express Management Studio (also free). This wasn't easily possible with MSDE. So, by using an Access mdb and SQL Server Express Management Studio you can get all the benefits of both. With an mdb, you can use either table links for use on a LAN, or you can connect using OLEDB (like an adp would) for use on a WAN. Also in an mdb, you can have temp tables in the FE. I did a search on 'Access mdb vs adp' and got many good sites. Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of rusty.hammond at cpiqpc.com Sent: Friday, February 20, 2009 10:34 AM To: accessd at databaseadvisors.com Subject: [AccessD] Should I use an adp or an mdb I'm getting ready to create a new application with a SQL server backend. I'm familiar enough with using SQL server but my question is, do I use an Access Data Project or a regular mdb with links to the tables as a front end. I've used both and would like to use the adp but I've heard rumblings that they will be going away and don't want to rewrite this app in the near future. I'm currently using Access 2003. Any suggestions? Rusty Hammond IT Dept. - B-20 CPI Qualified Plan Consultants, Inc. (620) 793-8473 ext. 416 rusty.hammond at cpiqpc.com ********************************************************************** WARNING: All e-mail sent to and from this address will be received, scanned or otherwise recorded by the CPI Qualified Plan Consultants, Inc. corporate e-mail system and is subject to archival, monitoring or review by, and/or disclosure to, someone other than the recipient. ********************************************************************** -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ********************************************************************** WARNING: All e-mail sent to and from this address will be received, scanned or otherwise recorded by the CPI Qualified Plan Consultants, Inc. corporate e-mail system and is subject to archival, monitoring or review by, and/or disclosure to, someone other than the recipient. ********************************************************************** From jengross at gte.net Fri Feb 20 14:27:57 2009 From: jengross at gte.net (Jennifer Gross) Date: Fri, 20 Feb 2009 12:27:57 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: <8475E883E0DF4EBB94B684E9525182D1@HAL9005> Message-ID: <003a01c99399$b795b190$0301a8c0@trudy> Hi Rocky, I have an application that uses a translation table is much the same way yours does - from Michael Kaplan at Trigeminal. I keep the translation table in the FE as well. One of the reasons for this is that as I add objects to the FE I can get the captions translated and add the records to the FE table. I don't need to append records to a BE table during the dissemination of the FE to the individual users. I've just found it easier of the years in terms of deployment - that I don't have to make sure the live BE has been updated - it is all in the FE which for the users just gets replaced when there is an update. Jennifer -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Friday, February 20, 2009 12:06 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? " I am not going to get into the "this is a local table so it goes in the FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are for data (in my world)." In my case, where the 'data' is really static, and is needed by each user, wouldn't the design be better with the language tables in the FE? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 20, 2009 11:03 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Jim, > So if your not comfortable with it then just ignore it? Humm. I was making a general observation, which I believe is true. People tend to use the tools they know and are expert with, and only go outside of their comfort zone when the tool fails them. I freely acknowledge that this is true for me, and I am not accusing you of anything. > No, that is not correct. A seek on an open table won't cache the entire recordset in of itself. What might be sitting in JET's cache is a few buffers worth of index pages and a couple of buffers worth of data pages, but I'd highly doubt you'd have the entire thing unless you just went through every single record or used them a lot in comparison to everything else (JET's cache is LRU based, so the pages could add up in the cache over time). By definition you have to have all of the data that is used for doing any particular form. >Since a language table would be local to the FE, this would not be a pull over the wire and it would be quite fast. It might be in your systems but it would not be in mine. I use a BE because that is where data goes. I personally do not have ANY local tables in the FE except for temp tables for processes. I have many cases where there are different FEs for different purposes. I am not going to get into the "this is a local table so it goes in the FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are for data (in my world). >It's quite possible to that the disk drive would still have the data in its own cache, so you might not even end up doing a hard hit to the disk at all. Unlikely. The disk is also pulling forms, reports, running the browser as the user goofs off, working on buffering music that the user is listening to, and any of the other million things that go on in a Windows environment. The probability that the data for a form opened sometime previously would still be in the disk buffer is pretty low I would guess. > But with the seek approach, you would not be tying up a chunk of memory to be used for only one purpose. I have to say that with Windows XP requiring 256 megs just for it to load, and Vista pushing twice that just for it to load, I am not worrying about caching my "seldom changing / frequently used" data. If I take even a few hundred K to cache the language strings for every form in the system, I will not lose any sleep at all for doing that. I would in fact just cache the form's opened... > It is when considering that point that I would not choose to do an array based approach either, which would be really simple to write as I could use GetRows() to dump the set into an array. Since the array would already be sorted, I could even do a B-tree search on it rather then a sequential one. That might even beat out a class (hard to say with VBA) in terms of speed. Even if I used a Getrows() to dump into an array I would promptly move the data to a collection and get rid of the array. I think that a lot of stuff goes into determining when to use what tools. I do not have a b-tree search algorithm for a generic array but even if I did (and assuming that it was faster, doubtful), a collection is USUALLY fast enough that it wouldn't be worth the complexity of using such a tool, at least not on a routine basis. I use collections because: 1) They are DEAD simple. The syntax is simple, the usage is simple. 2) It is easy code to read and maintain. 3) They can hold a ton of stuff easily. 4) They can hold just about anything, from simple variables to objects and class instances (which are objects). 5) They are very fast. If you think about it, Access uses collections EVERYWHERE, and I want to emphasize the EVERYWHERE. Every single thing that you do with Access from forms (a collection of) to controls on forms (a collection of), to properties of controls and forms (a collection of), to fields (a collection of), to querydefs (a collection of) etc etc ad nasium, are all stored internally to Access (and when loaded into memory) as collections. Notice that Microsoft doesn't store all these items in tables. If tables are so blazing fast, if all the things that you think are true (jet cache / disk cache etc) really are true, why does Access store everything in collections instead of just leaving it in records on a disk? Can you say programming / overhead nightmare? Microsoft has spent a lot of time and energy optimizing collections in order to make Access itself fast. IMHO, why would I NOT use what Microsoft uses and has spent so much effort to make fast and easy to use? John W. Colby www.ColbyConsulting.com Jim Dettman wrote: > John, > > < comfortable to us as individual programmers and to heck with ....>> > > So if your not comfortable with it then just ignore it? Humm. > > < associated junk - indexes etc. My way caches exactly and only the > strings for one specific language.>> > > No, that is not correct. A seek on an open table won't cache the > entire recordset in of itself. What might be sitting in JET's cache > is a few buffers worth of index pages and a couple of buffers worth of > data pages, but I'd highly doubt you'd have the entire thing unless > you just went through every single record or used them a lot in > comparison to everything else (JET's cache is LRU based, so the pages > could add up in the cache over time). > > But even if nothing is in the cache, a seek is based on an index and > since JET indexes are B-tree based, you'd have your record within 2-3 > disk hits at most, especially on a 2500 record table. Since a > language table would be local to the FE, this would not be a pull over > the wire and it would be quite fast. It's quite possible to that the > disk drive would still have the data in its own cache, so you might > not even end up doing a hard hit to the disk at all. > > But if the data does happen to be in the JET cache, then I doubt > there would be much of a difference between the two methods. I think > the class approach would still be a tad faster, but not by much. And > let me be clear; it's not the class approach that I don't agree with > but the point that as an application developer do I cache things in memory on my own or not? > > It is when considering that point that I would not choose to do an > array based approach either, which would be really simple to write as > I could use > GetRows() to dump the set into an array. Since the array would already > be sorted, I could even do a B-tree search on it rather then a sequential one. > That might even beat out a class (hard to say with VBA) in terms of > speed. > > But with the seek approach, you would not be tying up a chunk of > memory to be used for only one purpose. > > From my viewpoint the seek approach is the best of both worlds, > stuff gets cached if it is used a lot and if it is not, then it is not > cached. In that case, the memory gets used for something productive > rather then sitting there. And I would be really surprised if performance wasn't acceptable. > > Jim. > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 20, 2009 9:44 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > The bottom line is that to a large extent we all do what is > comfortable to us as individual programmers and to heck with .... > > > You mentioned that JET always goes across the wire and that's not true. > If a page is in the > local JET cache, then it won't. > > > But if every programmer were to approach application design with the > "load it into memory" > approach because it's fast, then very quickly you can find that the OS > will start paging out to disk. So your really not in memory any more. > > Well... Hmmm... your way caches the entire recordset and all its > associated junk - indexes etc. My way caches exactly and only the > strings for one specific language. > > However your way (done on a form by form basis on demand) sounds like > it could be flushing the jet cache as other processes run so that it > may very well have to hit the disk again for the next form to load. > At best it kind of sounds like "six of one, half a dozen of the > other". > > > If I have an application that is a couple of hundred forms and user > Jim D uses only one form, then that's a big waste. > > True, but if you cache the data as the form loads the first time then > that goes away. I was proposing exactly that. Now you have the best > of both worlds, you don't use time and resources until a form is > actually loaded, but once it is loaded it can be loaded twice or a > million times and always be fast. You should know from my JIT > subforms I am all about doing stuff as / when needed. > > Notice that I am not caching constantly changing data, nor data that > doesn't change but is rarely used, only data that rarely changes and > is used constantly in the program. > That "rarely changes / > constantly used" is not a rare occasion in complex systems. To go to > the disk dozens or hundreds or thousands of times a day to get the > same data over and over IMHO is just silly, when I can just cache it > and be done. It is even sillier when caching it is a trivial > programming exercise. It is sillier yet when caching the data > significantly speeds up the program. > > I learned a long time ago to organize my program into classes, each > class performs a systemic task. > I learned that when a set of data is in constant use in the program > (and form translation fits that bill) then I would build a class > system to cache it and the program always works faster. The "cache > class system" looks very similar from data set to data set. It > doesn't take me long to set it up because I have done it so often. > > So that is what I do. I do understand that it is only fast / > efficient for me because I use classes all day every day, but so can > any Access programmer as my lectures are intended to show. > > > John W. Colby > www.ColbyConsulting.com > > > Jim Dettman wrote: >> John, >> >> I posted a couple of comments yesterday to you and Drew, which >> still haven't shown up on the list, but I'll answer the question you >> just asked with "It depends on how big the collection is". >> >> What I wrote yesterday is that I would use a global recordset >> variable, thus avoiding opening/closing the recordset repeatedly and I'd use seek. >> >> You mentioned that JET always goes across the wire and that's not >> true. If a page is in the local JET cache, then it won't. >> >> But here that is really not an issue because a language translation > table >> is certainly going to be part of the front end, so the table will be > local. >> It's not going to change unless the app changes. >> >> Rocky has been talking about pulling 2500 records; if all that is >> pulled into memory, that is a fair sized chunk. I'd much rather let >> the system > use >> that memory as it sees fit rather then tying it up with one specific task. >> If I have an application that is a couple of hundred forms and user >> Jim D uses only one form, then that's a big waste. Of course you >> could mitigate that somewhat by only loading the translation when the >> form loads and for the specific language as you mentioned. >> >> But if every programmer were to approach application design with >> the > "load >> it into memory" approach because it's fast, then very quickly you can >> find that the OS will start paging out to disk. So your really not >> in memory > any >> more. >> >> That's why I think pulling something into memory like this is a >> waste. >> >> FWIW, >> Jim. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com No virus found in this incoming message. Checked by AVG - www.avg.com Version: 8.0.237 / Virus Database: 270.11.1/1961 - Release Date: 02/19/09 18:45:00 From dwaters at usinternet.com Fri Feb 20 14:28:09 2009 From: dwaters at usinternet.com (Dan Waters) Date: Fri, 20 Feb 2009 14:28:09 -0600 Subject: [AccessD] Should I use an adp or an mdb In-Reply-To: <49A286ABF515E94A8505CD14DEB721700367E214@CPIEMAIL-EVS1.CPIQPC.NET> References: <49A286ABF515E94A8505CD14DEB721700367E214@CPIEMAIL-EVS1.CPIQPC.NET> Message-ID: <4FB29335AD9446CAAF43D6D90C4BBA8D@danwaters> That would be my guess - but that's really just based on MS's lack of improvement for developers in Access 2007. They already have Visual Studio - should they continue to improve Access for developers? Or does Access simply cannibalize SQL Server? And - what's the next version of Access going to look like? Will VBA be more like VB.Net? Will there be more unprogrammable 'ribbons'? I bet someone on this list knows what's next for Access - but they just can't say yet! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of rusty.hammond at cpiqpc.com Sent: Friday, February 20, 2009 2:16 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Should I use an adp or an mdb Thanks for the reply. Since the SQL server is 2005 I have to use SQL Server Management Studio anyway. >From the search you used it sounds like most people prefer to go with the mdb and with the release of SQL 2008, an Access 2007 adp can't make changes to the SQL objects either so you really can't count on being able to use that feature consistently as time goes on. I really like the ability to change the connection from a test back end to production very easily from an adp, but there's code out there to work around that issue in an mdb. Seems like the advantages of an adp are going away. You think that's planned? Thanks, Rusty -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: Friday, February 20, 2009 10:58 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Should I use an adp or an mdb Use an mdb! The primary goal of using an adp was that it gave you the ability to manage objects in the SQL Server database you are using from within Access - an mdb can't do that. But, since SQL Server 2005 Express (free) was released, you can easily manage those objects with SQL Server Express Management Studio (also free). This wasn't easily possible with MSDE. So, by using an Access mdb and SQL Server Express Management Studio you can get all the benefits of both. With an mdb, you can use either table links for use on a LAN, or you can connect using OLEDB (like an adp would) for use on a WAN. Also in an mdb, you can have temp tables in the FE. I did a search on 'Access mdb vs adp' and got many good sites. Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of rusty.hammond at cpiqpc.com Sent: Friday, February 20, 2009 10:34 AM To: accessd at databaseadvisors.com Subject: [AccessD] Should I use an adp or an mdb I'm getting ready to create a new application with a SQL server backend. I'm familiar enough with using SQL server but my question is, do I use an Access Data Project or a regular mdb with links to the tables as a front end. I've used both and would like to use the adp but I've heard rumblings that they will be going away and don't want to rewrite this app in the near future. I'm currently using Access 2003. Any suggestions? Rusty Hammond IT Dept. - B-20 CPI Qualified Plan Consultants, Inc. (620) 793-8473 ext. 416 rusty.hammond at cpiqpc.com ********************************************************************** WARNING: All e-mail sent to and from this address will be received, scanned or otherwise recorded by the CPI Qualified Plan Consultants, Inc. corporate e-mail system and is subject to archival, monitoring or review by, and/or disclosure to, someone other than the recipient. ********************************************************************** -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ********************************************************************** WARNING: All e-mail sent to and from this address will be received, scanned or otherwise recorded by the CPI Qualified Plan Consultants, Inc. corporate e-mail system and is subject to archival, monitoring or review by, and/or disclosure to, someone other than the recipient. ********************************************************************** -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jimdettman at verizon.net Fri Feb 20 14:55:05 2009 From: jimdettman at verizon.net (Jim Dettman) Date: Fri, 20 Feb 2009 15:55:05 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <8475E883E0DF4EBB94B684E9525182D1@HAL9005> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS> <499EFE58.6050703@colbyconsulting.com> <8475E883E0DF4EBB94B684E9525182D1@HAL9005> Message-ID: <5B493F7927FC46DFB7D6CD36323C26FB@XPS> Ditto for table that drives menus... I would not put that in my BE either. Waste of network bandwidth. I believe if the data in the table will only change when the app changes, then it belongs in the FE. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Friday, February 20, 2009 3:06 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? " I am not going to get into the "this is a local table so it goes in the FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are for data (in my world)." In my case, where the 'data' is really static, and is needed by each user, wouldn't the design be better with the language tables in the FE? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 20, 2009 11:03 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Jim, > So if your not comfortable with it then just ignore it? Humm. I was making a general observation, which I believe is true. People tend to use the tools they know and are expert with, and only go outside of their comfort zone when the tool fails them. I freely acknowledge that this is true for me, and I am not accusing you of anything. > No, that is not correct. A seek on an open table won't cache the entire recordset in of itself. What might be sitting in JET's cache is a few buffers worth of index pages and a couple of buffers worth of data pages, but I'd highly doubt you'd have the entire thing unless you just went through every single record or used them a lot in comparison to everything else (JET's cache is LRU based, so the pages could add up in the cache over time). By definition you have to have all of the data that is used for doing any particular form. >Since a language table would be local to the FE, this would not be a pull over the wire and it would be quite fast. It might be in your systems but it would not be in mine. I use a BE because that is where data goes. I personally do not have ANY local tables in the FE except for temp tables for processes. I have many cases where there are different FEs for different purposes. I am not going to get into the "this is a local table so it goes in the FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are for data (in my world). >It's quite possible to that the disk drive would still have the data in its own cache, so you might not even end up doing a hard hit to the disk at all. Unlikely. The disk is also pulling forms, reports, running the browser as the user goofs off, working on buffering music that the user is listening to, and any of the other million things that go on in a Windows environment. The probability that the data for a form opened sometime previously would still be in the disk buffer is pretty low I would guess. > But with the seek approach, you would not be tying up a chunk of memory to be used for only one purpose. I have to say that with Windows XP requiring 256 megs just for it to load, and Vista pushing twice that just for it to load, I am not worrying about caching my "seldom changing / frequently used" data. If I take even a few hundred K to cache the language strings for every form in the system, I will not lose any sleep at all for doing that. I would in fact just cache the form's opened... > It is when considering that point that I would not choose to do an array based approach either, which would be really simple to write as I could use GetRows() to dump the set into an array. Since the array would already be sorted, I could even do a B-tree search on it rather then a sequential one. That might even beat out a class (hard to say with VBA) in terms of speed. Even if I used a Getrows() to dump into an array I would promptly move the data to a collection and get rid of the array. I think that a lot of stuff goes into determining when to use what tools. I do not have a b-tree search algorithm for a generic array but even if I did (and assuming that it was faster, doubtful), a collection is USUALLY fast enough that it wouldn't be worth the complexity of using such a tool, at least not on a routine basis. I use collections because: 1) They are DEAD simple. The syntax is simple, the usage is simple. 2) It is easy code to read and maintain. 3) They can hold a ton of stuff easily. 4) They can hold just about anything, from simple variables to objects and class instances (which are objects). 5) They are very fast. If you think about it, Access uses collections EVERYWHERE, and I want to emphasize the EVERYWHERE. Every single thing that you do with Access from forms (a collection of) to controls on forms (a collection of), to properties of controls and forms (a collection of), to fields (a collection of), to querydefs (a collection of) etc etc ad nasium, are all stored internally to Access (and when loaded into memory) as collections. Notice that Microsoft doesn't store all these items in tables. If tables are so blazing fast, if all the things that you think are true (jet cache / disk cache etc) really are true, why does Access store everything in collections instead of just leaving it in records on a disk? Can you say programming / overhead nightmare? Microsoft has spent a lot of time and energy optimizing collections in order to make Access itself fast. IMHO, why would I NOT use what Microsoft uses and has spent so much effort to make fast and easy to use? John W. Colby www.ColbyConsulting.com Jim Dettman wrote: > John, > > < comfortable to us as individual programmers and to heck with ....>> > > So if your not comfortable with it then just ignore it? Humm. > > < associated junk - indexes etc. My way caches exactly and only the > strings for one specific language.>> > > No, that is not correct. A seek on an open table won't cache the > entire recordset in of itself. What might be sitting in JET's cache > is a few buffers worth of index pages and a couple of buffers worth of > data pages, but I'd highly doubt you'd have the entire thing unless > you just went through every single record or used them a lot in > comparison to everything else (JET's cache is LRU based, so the pages > could add up in the cache over time). > > But even if nothing is in the cache, a seek is based on an index and > since JET indexes are B-tree based, you'd have your record within 2-3 > disk hits at most, especially on a 2500 record table. Since a > language table would be local to the FE, this would not be a pull over > the wire and it would be quite fast. It's quite possible to that the > disk drive would still have the data in its own cache, so you might > not even end up doing a hard hit to the disk at all. > > But if the data does happen to be in the JET cache, then I doubt > there would be much of a difference between the two methods. I think > the class approach would still be a tad faster, but not by much. And > let me be clear; it's not the class approach that I don't agree with > but the point that as an application developer do I cache things in memory on my own or not? > > It is when considering that point that I would not choose to do an > array based approach either, which would be really simple to write as > I could use > GetRows() to dump the set into an array. Since the array would already > be sorted, I could even do a B-tree search on it rather then a sequential one. > That might even beat out a class (hard to say with VBA) in terms of speed. > > But with the seek approach, you would not be tying up a chunk of > memory to be used for only one purpose. > > From my viewpoint the seek approach is the best of both worlds, > stuff gets cached if it is used a lot and if it is not, then it is not > cached. In that case, the memory gets used for something productive > rather then sitting there. And I would be really surprised if performance wasn't acceptable. > > Jim. > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 20, 2009 9:44 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > The bottom line is that to a large extent we all do what is > comfortable to us as individual programmers and to heck with .... > > > You mentioned that JET always goes across the wire and that's not true. > If a page is in the > local JET cache, then it won't. > > > But if every programmer were to approach application design with the > "load it into memory" > approach because it's fast, then very quickly you can find that the OS > will start paging out to disk. So your really not in memory any more. > > Well... Hmmm... your way caches the entire recordset and all its > associated junk - indexes etc. My way caches exactly and only the > strings for one specific language. > > However your way (done on a form by form basis on demand) sounds like > it could be flushing the jet cache as other processes run so that it > may very well have to hit the disk again for the next form to load. > At best it kind of sounds like "six of one, half a dozen of the > other". > > > If I have an application that is a couple of hundred forms and user > Jim D uses only one form, then that's a big waste. > > True, but if you cache the data as the form loads the first time then > that goes away. I was proposing exactly that. Now you have the best > of both worlds, you don't use time and resources until a form is > actually loaded, but once it is loaded it can be loaded twice or a > million times and always be fast. You should know from my JIT > subforms I am all about doing stuff as / when needed. > > Notice that I am not caching constantly changing data, nor data that > doesn't change but is rarely used, only data that rarely changes and > is used constantly in the program. > That "rarely changes / > constantly used" is not a rare occasion in complex systems. To go to > the disk dozens or hundreds or thousands of times a day to get the > same data over and over IMHO is just silly, when I can just cache it > and be done. It is even sillier when caching it is a trivial > programming exercise. It is sillier yet when caching the data > significantly speeds up the program. > > I learned a long time ago to organize my program into classes, each > class performs a systemic task. > I learned that when a set of data is in constant use in the program > (and form translation fits that bill) then I would build a class > system to cache it and the program always works faster. The "cache > class system" looks very similar from data set to data set. It > doesn't take me long to set it up because I have done it so often. > > So that is what I do. I do understand that it is only fast / > efficient for me because I use classes all day every day, but so can > any Access programmer as my lectures are intended to show. > > > John W. Colby > www.ColbyConsulting.com > > > Jim Dettman wrote: >> John, >> >> I posted a couple of comments yesterday to you and Drew, which >> still haven't shown up on the list, but I'll answer the question you >> just asked with "It depends on how big the collection is". >> >> What I wrote yesterday is that I would use a global recordset >> variable, thus avoiding opening/closing the recordset repeatedly and I'd use seek. >> >> You mentioned that JET always goes across the wire and that's not true. >> If a page is in the local JET cache, then it won't. >> >> But here that is really not an issue because a language translation > table >> is certainly going to be part of the front end, so the table will be > local. >> It's not going to change unless the app changes. >> >> Rocky has been talking about pulling 2500 records; if all that is >> pulled into memory, that is a fair sized chunk. I'd much rather let >> the system > use >> that memory as it sees fit rather then tying it up with one specific task. >> If I have an application that is a couple of hundred forms and user >> Jim D uses only one form, then that's a big waste. Of course you >> could mitigate that somewhat by only loading the translation when the >> form loads and for the specific language as you mentioned. >> >> But if every programmer were to approach application design with >> the > "load >> it into memory" approach because it's fast, then very quickly you can >> find that the OS will start paging out to disk. So your really not >> in memory > any >> more. >> >> That's why I think pulling something into memory like this is a waste. >> >> FWIW, >> Jim. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Fri Feb 20 15:01:08 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Fri, 20 Feb 2009 13:01:08 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: <003a01c99399$b795b190$0301a8c0@trudy> References: <8475E883E0DF4EBB94B684E9525182D1@HAL9005> <003a01c99399$b795b190$0301a8c0@trudy> Message-ID: <95A859511D164805A5EA8288B9AC5449@HAL9005> That was my thinking, too, when I put the tables in the front end - ease of update. Also, my app supports multiple back ends. So it would be a question of looking at each BE that was opened to see if it had the latest translation. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jennifer Gross Sent: Friday, February 20, 2009 12:28 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? Hi Rocky, I have an application that uses a translation table is much the same way yours does - from Michael Kaplan at Trigeminal. I keep the translation table in the FE as well. One of the reasons for this is that as I add objects to the FE I can get the captions translated and add the records to the FE table. I don't need to append records to a BE table during the dissemination of the FE to the individual users. I've just found it easier of the years in terms of deployment - that I don't have to make sure the live BE has been updated - it is all in the FE which for the users just gets replaced when there is an update. Jennifer -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Friday, February 20, 2009 12:06 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? " I am not going to get into the "this is a local table so it goes in the FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are for data (in my world)." In my case, where the 'data' is really static, and is needed by each user, wouldn't the design be better with the language tables in the FE? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 20, 2009 11:03 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Jim, > So if your not comfortable with it then just ignore it? Humm. I was making a general observation, which I believe is true. People tend to use the tools they know and are expert with, and only go outside of their comfort zone when the tool fails them. I freely acknowledge that this is true for me, and I am not accusing you of anything. > No, that is not correct. A seek on an open table won't cache the entire recordset in of itself. What might be sitting in JET's cache is a few buffers worth of index pages and a couple of buffers worth of data pages, but I'd highly doubt you'd have the entire thing unless you just went through every single record or used them a lot in comparison to everything else (JET's cache is LRU based, so the pages could add up in the cache over time). By definition you have to have all of the data that is used for doing any particular form. >Since a language table would be local to the FE, this would not be a pull over the wire and it would be quite fast. It might be in your systems but it would not be in mine. I use a BE because that is where data goes. I personally do not have ANY local tables in the FE except for temp tables for processes. I have many cases where there are different FEs for different purposes. I am not going to get into the "this is a local table so it goes in the FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are for data (in my world). >It's quite possible to that the disk drive would still have the data in its own cache, so you might not even end up doing a hard hit to the disk at all. Unlikely. The disk is also pulling forms, reports, running the browser as the user goofs off, working on buffering music that the user is listening to, and any of the other million things that go on in a Windows environment. The probability that the data for a form opened sometime previously would still be in the disk buffer is pretty low I would guess. > But with the seek approach, you would not be tying up a chunk of memory to be used for only one purpose. I have to say that with Windows XP requiring 256 megs just for it to load, and Vista pushing twice that just for it to load, I am not worrying about caching my "seldom changing / frequently used" data. If I take even a few hundred K to cache the language strings for every form in the system, I will not lose any sleep at all for doing that. I would in fact just cache the form's opened... > It is when considering that point that I would not choose to do an array based approach either, which would be really simple to write as I could use GetRows() to dump the set into an array. Since the array would already be sorted, I could even do a B-tree search on it rather then a sequential one. That might even beat out a class (hard to say with VBA) in terms of speed. Even if I used a Getrows() to dump into an array I would promptly move the data to a collection and get rid of the array. I think that a lot of stuff goes into determining when to use what tools. I do not have a b-tree search algorithm for a generic array but even if I did (and assuming that it was faster, doubtful), a collection is USUALLY fast enough that it wouldn't be worth the complexity of using such a tool, at least not on a routine basis. I use collections because: 1) They are DEAD simple. The syntax is simple, the usage is simple. 2) It is easy code to read and maintain. 3) They can hold a ton of stuff easily. 4) They can hold just about anything, from simple variables to objects and class instances (which are objects). 5) They are very fast. If you think about it, Access uses collections EVERYWHERE, and I want to emphasize the EVERYWHERE. Every single thing that you do with Access from forms (a collection of) to controls on forms (a collection of), to properties of controls and forms (a collection of), to fields (a collection of), to querydefs (a collection of) etc etc ad nasium, are all stored internally to Access (and when loaded into memory) as collections. Notice that Microsoft doesn't store all these items in tables. If tables are so blazing fast, if all the things that you think are true (jet cache / disk cache etc) really are true, why does Access store everything in collections instead of just leaving it in records on a disk? Can you say programming / overhead nightmare? Microsoft has spent a lot of time and energy optimizing collections in order to make Access itself fast. IMHO, why would I NOT use what Microsoft uses and has spent so much effort to make fast and easy to use? John W. Colby www.ColbyConsulting.com Jim Dettman wrote: > John, > > < comfortable to us as individual programmers and to heck with ....>> > > So if your not comfortable with it then just ignore it? Humm. > > < associated junk - indexes etc. My way caches exactly and only the > strings for one specific language.>> > > No, that is not correct. A seek on an open table won't cache the > entire recordset in of itself. What might be sitting in JET's cache > is a few buffers worth of index pages and a couple of buffers worth of > data pages, but I'd highly doubt you'd have the entire thing unless > you just went through every single record or used them a lot in > comparison to everything else (JET's cache is LRU based, so the pages > could add up in the cache over time). > > But even if nothing is in the cache, a seek is based on an index and > since JET indexes are B-tree based, you'd have your record within 2-3 > disk hits at most, especially on a 2500 record table. Since a > language table would be local to the FE, this would not be a pull over > the wire and it would be quite fast. It's quite possible to that the > disk drive would still have the data in its own cache, so you might > not even end up doing a hard hit to the disk at all. > > But if the data does happen to be in the JET cache, then I doubt > there would be much of a difference between the two methods. I think > the class approach would still be a tad faster, but not by much. And > let me be clear; it's not the class approach that I don't agree with > but the point that as an application developer do I cache things in memory on my own or not? > > It is when considering that point that I would not choose to do an > array based approach either, which would be really simple to write as > I could use > GetRows() to dump the set into an array. Since the array would already > be sorted, I could even do a B-tree search on it rather then a sequential one. > That might even beat out a class (hard to say with VBA) in terms of > speed. > > But with the seek approach, you would not be tying up a chunk of > memory to be used for only one purpose. > > From my viewpoint the seek approach is the best of both worlds, > stuff gets cached if it is used a lot and if it is not, then it is not > cached. In that case, the memory gets used for something productive > rather then sitting there. And I would be really surprised if performance wasn't acceptable. > > Jim. > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 20, 2009 9:44 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > The bottom line is that to a large extent we all do what is > comfortable to us as individual programmers and to heck with .... > > > You mentioned that JET always goes across the wire and that's not true. > If a page is in the > local JET cache, then it won't. > > > But if every programmer were to approach application design with the > "load it into memory" > approach because it's fast, then very quickly you can find that the OS > will start paging out to disk. So your really not in memory any more. > > Well... Hmmm... your way caches the entire recordset and all its > associated junk - indexes etc. My way caches exactly and only the > strings for one specific language. > > However your way (done on a form by form basis on demand) sounds like > it could be flushing the jet cache as other processes run so that it > may very well have to hit the disk again for the next form to load. > At best it kind of sounds like "six of one, half a dozen of the > other". > > > If I have an application that is a couple of hundred forms and user > Jim D uses only one form, then that's a big waste. > > True, but if you cache the data as the form loads the first time then > that goes away. I was proposing exactly that. Now you have the best > of both worlds, you don't use time and resources until a form is > actually loaded, but once it is loaded it can be loaded twice or a > million times and always be fast. You should know from my JIT > subforms I am all about doing stuff as / when needed. > > Notice that I am not caching constantly changing data, nor data that > doesn't change but is rarely used, only data that rarely changes and > is used constantly in the program. > That "rarely changes / > constantly used" is not a rare occasion in complex systems. To go to > the disk dozens or hundreds or thousands of times a day to get the > same data over and over IMHO is just silly, when I can just cache it > and be done. It is even sillier when caching it is a trivial > programming exercise. It is sillier yet when caching the data > significantly speeds up the program. > > I learned a long time ago to organize my program into classes, each > class performs a systemic task. > I learned that when a set of data is in constant use in the program > (and form translation fits that bill) then I would build a class > system to cache it and the program always works faster. The "cache > class system" looks very similar from data set to data set. It > doesn't take me long to set it up because I have done it so often. > > So that is what I do. I do understand that it is only fast / > efficient for me because I use classes all day every day, but so can > any Access programmer as my lectures are intended to show. > > > John W. Colby > www.ColbyConsulting.com > > > Jim Dettman wrote: >> John, >> >> I posted a couple of comments yesterday to you and Drew, which >> still haven't shown up on the list, but I'll answer the question you >> just asked with "It depends on how big the collection is". >> >> What I wrote yesterday is that I would use a global recordset >> variable, thus avoiding opening/closing the recordset repeatedly and I'd use seek. >> >> You mentioned that JET always goes across the wire and that's not >> true. If a page is in the local JET cache, then it won't. >> >> But here that is really not an issue because a language translation > table >> is certainly going to be part of the front end, so the table will be > local. >> It's not going to change unless the app changes. >> >> Rocky has been talking about pulling 2500 records; if all that is >> pulled into memory, that is a fair sized chunk. I'd much rather let >> the system > use >> that memory as it sees fit rather then tying it up with one specific task. >> If I have an application that is a couple of hundred forms and user >> Jim D uses only one form, then that's a big waste. Of course you >> could mitigate that somewhat by only loading the translation when the >> form loads and for the specific language as you mentioned. >> >> But if every programmer were to approach application design with >> the > "load >> it into memory" approach because it's fast, then very quickly you can >> find that the OS will start paging out to disk. So your really not >> in memory > any >> more. >> >> That's why I think pulling something into memory like this is a >> waste. >> >> FWIW, >> Jim. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com No virus found in this incoming message. Checked by AVG - www.avg.com Version: 8.0.237 / Virus Database: 270.11.1/1961 - Release Date: 02/19/09 18:45:00 -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Fri Feb 20 15:01:44 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 20 Feb 2009 16:01:44 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <8475E883E0DF4EBB94B684E9525182D1@HAL9005> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS> <499EFE58.6050703@colbyconsulting.com> <8475E883E0DF4EBB94B684E9525182D1@HAL9005> Message-ID: <499F1A38.50706@colbyconsulting.com> Rocky, I was not addressing anything other than the "assumption" that was expressed that certain tables "would be in the FE". If you as the owner / developer want them there that is all that needs to be said. In MY systems I never place such tables in the FE. If I were to "purchase" or other be placed in charge of your systems, I would move the tables to the BE. Remember though that I DO cache my "rarely modified / often used" data so it does not matter that it is on in a BE on the server. It will cross the wire only once per form per user. Thereafter it will almost certainly be as fast or faster than a local FE table. To address your question: > In my case, where the 'data' is really static, and is needed by each user, wouldn't the design be better with the language tables in the FE? This is one of those things that is purely opinion, and often near religious in conviction, and I do not want to start a religious war. Some people wholeheartedly believe in placing such things in the FE. I wholeheartedly believe otherwise. Often a belief is created in the distant past when we make a decision of some sort that sways the argument in one direction or the other. We often then stop "thinking" about it and simply "believe" it. If enough time passes, we may completely lose track of why we even believe something. In this case I would guess that those who place such tables in the FE have either never thought of or considered caching it, or considered and rejected it. In those cases having it in the FE solves a speed problem. Now these people have "solved" their speed problem and the "reason" fades into a belief. I started using data caches some time ago and, while I never used data tables in the FE even before that, having the cache simply makes the FE Data Tables concept a non-starter. In all other respects (IMHO) having data in a BE is the accepted practice. Since my caches solve my speed issues I truly do not need them in the FE. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > " I am not going to get into the "this is a local table so it goes in the > FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are > for data (in my world)." > > In my case, where the 'data' is really static, and is needed by each user, > wouldn't the design be better with the language tables in the FE? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com From JHewson at nciinc.com Fri Feb 20 15:05:06 2009 From: JHewson at nciinc.com (Hewson, Jim ) Date: Fri, 20 Feb 2009 15:05:06 -0600 Subject: [AccessD] OLEDB Connection Message-ID: <7E02B06E41E5404589EDDDA2BAA1C5A83ECA20@sanex101.nciinc.com> How do you connect to SQL Server from Access using OLEDB? I've used ODBC using a DSN but I don't have any idea how to use OLEDB. I did some research on the issue, but all I found was the connection string but nothing that told me what to do with it. Where do I put it? Is it better than using a DSN? Are there any maintenance issues when deploying to multiple machines on a LAN? Many Thanks in advance. Jim ################################################################################ If you have received this message in error, please contact the sender immediately and be aware that the use, copying, or dissemination of this information is prohibited. This email transmission contains information from NCI Information Systems, Inc. that may be considered privileged or confidential and is intended solely for the named recipient. ################################################################################ From jwcolby at colbyconsulting.com Fri Feb 20 15:05:09 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 20 Feb 2009 16:05:09 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <003a01c99399$b795b190$0301a8c0@trudy> References: <003a01c99399$b795b190$0301a8c0@trudy> Message-ID: <499F1B05.7060106@colbyconsulting.com> Now there is a reason that places the whole issue in a new light. Language data is indeed specific to a particular FE in a way that most other data is not. So perhaps for that specific task, a table in the FE makes perfect since. I would STILL cache it but that is another issue. Thanks Jennifer, John W. Colby www.ColbyConsulting.com Jennifer Gross wrote: > Hi Rocky, > > I have an application that uses a translation table is much the same way > yours does - from Michael Kaplan at Trigeminal. I keep the translation > table in the FE as well. One of the reasons for this is that as I add > objects to the FE I can get the captions translated and add the records > to the FE table. I don't need to append records to a BE table during > the dissemination of the FE to the individual users. I've just found it > easier of the years in terms of deployment - that I don't have to make > sure the live BE has been updated - it is all in the FE which for the > users just gets replaced when there is an update. > > Jennifer > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin > at Beach Access Software > Sent: Friday, February 20, 2009 12:06 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > > " I am not going to get into the "this is a local table so it goes in > the FE... oh damn, now I gotta go update the data in 5 different FEs". > BEs are for data (in my world)." > > In my case, where the 'data' is really static, and is needed by each > user, wouldn't the design be better with the language tables in the FE? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 20, 2009 11:03 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Jim, > > > So if your not comfortable with it then just ignore it? Humm. > > I was making a general observation, which I believe is true. People > tend to use the tools they know and are expert with, and only go outside > of their comfort zone when the tool fails them. I freely acknowledge > that this is true for me, and I am not accusing you of anything. > > > No, that is not correct. A seek on an open table won't cache the > entire recordset in of > itself. What might be sitting in JET's cache is a few buffers worth of > index pages and a couple of buffers worth of data pages, but I'd highly > doubt you'd have the entire thing unless you just went through every > single record or used them a lot in comparison to everything else (JET's > cache is LRU based, so the pages could add up in the cache over time). > > By definition you have to have all of the data that is used for doing > any particular form. > > >Since a language table would be local to the FE, this would not be a > pull over the wire and it would be quite fast. > > It might be in your systems but it would not be in mine. I use a BE > because that is where data goes. I personally do not have ANY local > tables in the FE except for temp tables for processes. I have many > cases where there are different FEs for different purposes. I am not > going to get into the "this is a local table so it goes in the FE... oh > damn, now I gotta go update the data in 5 different FEs". BEs are for > data (in my world). > > >It's quite possible to that the disk drive would still have the data > in its own cache, so you might not even end up doing a hard hit to the > disk at all. > > Unlikely. The disk is also pulling forms, reports, running the browser > as the user goofs off, working on buffering music that the user is > listening to, and any of the other million things that go on in a > Windows environment. The probability that the data for a form opened > sometime previously would still be in the disk buffer is pretty low I > would guess. > > > But with the seek approach, you would not be tying up a chunk of > memory > to be used for only one > purpose. > > I have to say that with Windows XP requiring 256 megs just for it to > load, and Vista pushing twice that just for it to load, I am not > worrying about caching my "seldom changing / frequently used" > data. If I take even a few hundred K to cache the language strings for > every form in the system, I will not lose any sleep at all for doing > that. I would in fact just cache the form's opened... > > > It is when considering that point that I would not choose to do an > array based approach either, which would be really simple to write as I > could use > GetRows() to dump the set into an array. Since the array would already > be sorted, I could even do a B-tree search on it rather then a > sequential one. That might even beat out a class (hard to say with VBA) > in terms of speed. > > Even if I used a Getrows() to dump into an array I would promptly move > the data to a collection and get rid of the array. > > I think that a lot of stuff goes into determining when to use what > tools. I do not have a b-tree search algorithm for a generic array but > even if I did (and assuming that it was faster, doubtful), a collection > is USUALLY fast enough that it wouldn't be worth the complexity of using > such a tool, at least not on a routine basis. > > I use collections because: > > 1) They are DEAD simple. The syntax is simple, the usage is simple. > 2) It is easy code to read and maintain. > 3) They can hold a ton of stuff easily. > 4) They can hold just about anything, from simple variables to objects > and class instances (which are objects). > 5) They are very fast. > > If you think about it, Access uses collections EVERYWHERE, and I want to > emphasize the EVERYWHERE. > Every single thing that you do with Access from forms (a collection of) > to controls on forms (a collection of), to properties of controls and > forms (a collection of), to fields (a collection of), to querydefs (a > collection of) etc etc ad nasium, are all stored internally to Access > (and when loaded into > memory) as collections. Notice that Microsoft doesn't store all these > items in tables. > If tables are so blazing fast, if all the things that you think are > true (jet cache / disk cache > etc) really are true, why does Access store everything in collections > instead of just leaving it in records on a disk? Can you say > programming / overhead nightmare? > > Microsoft has spent a lot of time and energy optimizing collections in > order to make Access itself fast. IMHO, why would I NOT use what > Microsoft uses and has spent so much effort to make fast and easy to > use? > > > John W. Colby > www.ColbyConsulting.com > > > Jim Dettman wrote: >> John, >> >> <> comfortable to us as individual programmers and to heck with ....>> >> >> So if your not comfortable with it then just ignore it? Humm. >> >> <> associated junk - indexes etc. My way caches exactly and only the >> strings for one specific language.>> >> >> No, that is not correct. A seek on an open table won't cache the >> entire recordset in of itself. What might be sitting in JET's cache >> is a few buffers worth of index pages and a couple of buffers worth of > >> data pages, but I'd highly doubt you'd have the entire thing unless >> you just went through every single record or used them a lot in >> comparison to everything else (JET's cache is LRU based, so the pages >> could add up in the cache over time). >> >> But even if nothing is in the cache, a seek is based on an index and >> since JET indexes are B-tree based, you'd have your record within 2-3 >> disk hits at most, especially on a 2500 record table. Since a >> language table would be local to the FE, this would not be a pull over > >> the wire and it would be quite fast. It's quite possible to that the >> disk drive would still have the data in its own cache, so you might >> not even end up doing a hard hit to the disk at all. >> >> But if the data does happen to be in the JET cache, then I doubt >> there would be much of a difference between the two methods. I think >> the class approach would still be a tad faster, but not by much. And >> let me be clear; it's not the class approach that I don't agree with >> but the point that as an application developer do I cache things in > memory > on my own or not? >> It is when considering that point that I would not choose to do an >> array based approach either, which would be really simple to write as >> I could use >> GetRows() to dump the set into an array. Since the array would already > >> be sorted, I could even do a B-tree search on it rather then a > sequential > one. >> That might even beat out a class (hard to say with VBA) in terms of >> speed. >> >> But with the seek approach, you would not be tying up a chunk of >> memory to be used for only one purpose. >> >> From my viewpoint the seek approach is the best of both worlds, >> stuff gets cached if it is used a lot and if it is not, then it is not > >> cached. In that case, the memory gets used for something productive >> rather then sitting there. And I would be really surprised if > performance > wasn't acceptable. >> Jim. >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Friday, February 20, 2009 9:44 AM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? >> >> The bottom line is that to a large extent we all do what is >> comfortable to us as individual programmers and to heck with .... >> >> > You mentioned that JET always goes across the wire and that's not > true. >> If a page is in the >> local JET cache, then it won't. >> >> > But if every programmer were to approach application design with > the >> "load it into memory" >> approach because it's fast, then very quickly you can find that the OS > >> will start paging out to disk. So your really not in memory any more. >> >> Well... Hmmm... your way caches the entire recordset and all its >> associated junk - indexes etc. My way caches exactly and only the >> strings for one specific language. >> >> However your way (done on a form by form basis on demand) sounds like >> it could be flushing the jet cache as other processes run so that it >> may very well have to hit the disk again for the next form to load. >> At best it kind of sounds like "six of one, half a dozen of the >> other". >> >> > If I have an application that is a couple of hundred forms and user >> Jim D uses only one form, then that's a big waste. >> >> True, but if you cache the data as the form loads the first time then >> that goes away. I was proposing exactly that. Now you have the best >> of both worlds, you don't use time and resources until a form is >> actually loaded, but once it is loaded it can be loaded twice or a >> million times and always be fast. You should know from my JIT >> subforms I am all about doing stuff as / when needed. >> >> Notice that I am not caching constantly changing data, nor data that >> doesn't change but is rarely used, only data that rarely changes and >> is used constantly in the program. >> That "rarely changes / >> constantly used" is not a rare occasion in complex systems. To go to >> the disk dozens or hundreds or thousands of times a day to get the >> same data over and over IMHO is just silly, when I can just cache it >> and be done. It is even sillier when caching it is a trivial >> programming exercise. It is sillier yet when caching the data >> significantly speeds up the program. >> >> I learned a long time ago to organize my program into classes, each >> class performs a systemic task. >> I learned that when a set of data is in constant use in the program >> (and form translation fits that bill) then I would build a class >> system to cache it and the program always works faster. The "cache >> class system" looks very similar from data set to data set. It >> doesn't take me long to set it up because I have done it so often. >> >> So that is what I do. I do understand that it is only fast / >> efficient for me because I use classes all day every day, but so can >> any Access programmer as my lectures are intended to show. >> >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Jim Dettman wrote: >>> John, >>> >>> I posted a couple of comments yesterday to you and Drew, which >>> still haven't shown up on the list, but I'll answer the question you >>> just asked with "It depends on how big the collection is". >>> >>> What I wrote yesterday is that I would use a global recordset >>> variable, thus avoiding opening/closing the recordset repeatedly and > I'd > use seek. >>> You mentioned that JET always goes across the wire and that's not >>> true. If a page is in the local JET cache, then it won't. >>> >>> But here that is really not an issue because a language translation >> table >>> is certainly going to be part of the front end, so the table will be >> local. >>> It's not going to change unless the app changes. >>> >>> Rocky has been talking about pulling 2500 records; if all that is >>> pulled into memory, that is a fair sized chunk. I'd much rather let >>> the system >> use >>> that memory as it sees fit rather then tying it up with one specific > task. >>> If I have an application that is a couple of hundred forms and user >>> Jim D uses only one form, then that's a big waste. Of course you >>> could mitigate that somewhat by only loading the translation when the > >>> form loads and for the specific language as you mentioned. >>> >>> But if every programmer were to approach application design with >>> the >> "load >>> it into memory" approach because it's fast, then very quickly you can >>> find that the OS will start paging out to disk. So your really not >>> in memory >> any >>> more. >>> >>> That's why I think pulling something into memory like this is a >>> waste. >>> >>> FWIW, >>> Jim. > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jengross at gte.net Fri Feb 20 15:05:21 2009 From: jengross at gte.net (Jennifer Gross) Date: Fri, 20 Feb 2009 13:05:21 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: <5B493F7927FC46DFB7D6CD36323C26FB@XPS> Message-ID: <004601c9939e$f166c5d0$0301a8c0@trudy> Agreed. This is another area where I use FE tables. My reasons is more for ease of deployment though, rather than bandwidth issues. Jennifer -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman Sent: Friday, February 20, 2009 12:55 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? Ditto for table that drives menus... I would not put that in my BE either. Waste of network bandwidth. I believe if the data in the table will only change when the app changes, then it belongs in the FE. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Friday, February 20, 2009 3:06 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? " I am not going to get into the "this is a local table so it goes in the FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are for data (in my world)." In my case, where the 'data' is really static, and is needed by each user, wouldn't the design be better with the language tables in the FE? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 20, 2009 11:03 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Jim, > So if your not comfortable with it then just ignore it? Humm. I was making a general observation, which I believe is true. People tend to use the tools they know and are expert with, and only go outside of their comfort zone when the tool fails them. I freely acknowledge that this is true for me, and I am not accusing you of anything. > No, that is not correct. A seek on an open table won't cache the entire recordset in of itself. What might be sitting in JET's cache is a few buffers worth of index pages and a couple of buffers worth of data pages, but I'd highly doubt you'd have the entire thing unless you just went through every single record or used them a lot in comparison to everything else (JET's cache is LRU based, so the pages could add up in the cache over time). By definition you have to have all of the data that is used for doing any particular form. >Since a language table would be local to the FE, this would not be a pull over the wire and it would be quite fast. It might be in your systems but it would not be in mine. I use a BE because that is where data goes. I personally do not have ANY local tables in the FE except for temp tables for processes. I have many cases where there are different FEs for different purposes. I am not going to get into the "this is a local table so it goes in the FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are for data (in my world). >It's quite possible to that the disk drive would still have the data in its own cache, so you might not even end up doing a hard hit to the disk at all. Unlikely. The disk is also pulling forms, reports, running the browser as the user goofs off, working on buffering music that the user is listening to, and any of the other million things that go on in a Windows environment. The probability that the data for a form opened sometime previously would still be in the disk buffer is pretty low I would guess. > But with the seek approach, you would not be tying up a chunk of memory to be used for only one purpose. I have to say that with Windows XP requiring 256 megs just for it to load, and Vista pushing twice that just for it to load, I am not worrying about caching my "seldom changing / frequently used" data. If I take even a few hundred K to cache the language strings for every form in the system, I will not lose any sleep at all for doing that. I would in fact just cache the form's opened... > It is when considering that point that I would not choose to do an array based approach either, which would be really simple to write as I could use GetRows() to dump the set into an array. Since the array would already be sorted, I could even do a B-tree search on it rather then a sequential one. That might even beat out a class (hard to say with VBA) in terms of speed. Even if I used a Getrows() to dump into an array I would promptly move the data to a collection and get rid of the array. I think that a lot of stuff goes into determining when to use what tools. I do not have a b-tree search algorithm for a generic array but even if I did (and assuming that it was faster, doubtful), a collection is USUALLY fast enough that it wouldn't be worth the complexity of using such a tool, at least not on a routine basis. I use collections because: 1) They are DEAD simple. The syntax is simple, the usage is simple. 2) It is easy code to read and maintain. 3) They can hold a ton of stuff easily. 4) They can hold just about anything, from simple variables to objects and class instances (which are objects). 5) They are very fast. If you think about it, Access uses collections EVERYWHERE, and I want to emphasize the EVERYWHERE. Every single thing that you do with Access from forms (a collection of) to controls on forms (a collection of), to properties of controls and forms (a collection of), to fields (a collection of), to querydefs (a collection of) etc etc ad nasium, are all stored internally to Access (and when loaded into memory) as collections. Notice that Microsoft doesn't store all these items in tables. If tables are so blazing fast, if all the things that you think are true (jet cache / disk cache etc) really are true, why does Access store everything in collections instead of just leaving it in records on a disk? Can you say programming / overhead nightmare? Microsoft has spent a lot of time and energy optimizing collections in order to make Access itself fast. IMHO, why would I NOT use what Microsoft uses and has spent so much effort to make fast and easy to use? John W. Colby www.ColbyConsulting.com Jim Dettman wrote: > John, > > < comfortable to us as individual programmers and to heck with ....>> > > So if your not comfortable with it then just ignore it? Humm. > > < associated junk - indexes etc. My way caches exactly and only the > strings for one specific language.>> > > No, that is not correct. A seek on an open table won't cache the > entire recordset in of itself. What might be sitting in JET's cache > is a few buffers worth of index pages and a couple of buffers worth of > data pages, but I'd highly doubt you'd have the entire thing unless > you just went through every single record or used them a lot in > comparison to everything else (JET's cache is LRU based, so the pages > could add up in the cache over time). > > But even if nothing is in the cache, a seek is based on an index and > since JET indexes are B-tree based, you'd have your record within 2-3 > disk hits at most, especially on a 2500 record table. Since a > language table would be local to the FE, this would not be a pull over > the wire and it would be quite fast. It's quite possible to that the > disk drive would still have the data in its own cache, so you might > not even end up doing a hard hit to the disk at all. > > But if the data does happen to be in the JET cache, then I doubt > there would be much of a difference between the two methods. I think > the class approach would still be a tad faster, but not by much. And > let me be clear; it's not the class approach that I don't agree with > but the point that as an application developer do I cache things in memory on my own or not? > > It is when considering that point that I would not choose to do an > array based approach either, which would be really simple to write as > I could use > GetRows() to dump the set into an array. Since the array would already > be sorted, I could even do a B-tree search on it rather then a sequential one. > That might even beat out a class (hard to say with VBA) in terms of > speed. > > But with the seek approach, you would not be tying up a chunk of > memory to be used for only one purpose. > > From my viewpoint the seek approach is the best of both worlds, > stuff gets cached if it is used a lot and if it is not, then it is not > cached. In that case, the memory gets used for something productive > rather then sitting there. And I would be really surprised if performance wasn't acceptable. > > Jim. > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 20, 2009 9:44 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > The bottom line is that to a large extent we all do what is > comfortable to us as individual programmers and to heck with .... > > > You mentioned that JET always goes across the wire and that's not true. > If a page is in the > local JET cache, then it won't. > > > But if every programmer were to approach application design with the > "load it into memory" > approach because it's fast, then very quickly you can find that the OS > will start paging out to disk. So your really not in memory any more. > > Well... Hmmm... your way caches the entire recordset and all its > associated junk - indexes etc. My way caches exactly and only the > strings for one specific language. > > However your way (done on a form by form basis on demand) sounds like > it could be flushing the jet cache as other processes run so that it > may very well have to hit the disk again for the next form to load. > At best it kind of sounds like "six of one, half a dozen of the > other". > > > If I have an application that is a couple of hundred forms and user > Jim D uses only one form, then that's a big waste. > > True, but if you cache the data as the form loads the first time then > that goes away. I was proposing exactly that. Now you have the best > of both worlds, you don't use time and resources until a form is > actually loaded, but once it is loaded it can be loaded twice or a > million times and always be fast. You should know from my JIT > subforms I am all about doing stuff as / when needed. > > Notice that I am not caching constantly changing data, nor data that > doesn't change but is rarely used, only data that rarely changes and > is used constantly in the program. > That "rarely changes / > constantly used" is not a rare occasion in complex systems. To go to > the disk dozens or hundreds or thousands of times a day to get the > same data over and over IMHO is just silly, when I can just cache it > and be done. It is even sillier when caching it is a trivial > programming exercise. It is sillier yet when caching the data > significantly speeds up the program. > > I learned a long time ago to organize my program into classes, each > class performs a systemic task. > I learned that when a set of data is in constant use in the program > (and form translation fits that bill) then I would build a class > system to cache it and the program always works faster. The "cache > class system" looks very similar from data set to data set. It > doesn't take me long to set it up because I have done it so often. > > So that is what I do. I do understand that it is only fast / > efficient for me because I use classes all day every day, but so can > any Access programmer as my lectures are intended to show. > > > John W. Colby > www.ColbyConsulting.com > > > Jim Dettman wrote: >> John, >> >> I posted a couple of comments yesterday to you and Drew, which >> still haven't shown up on the list, but I'll answer the question you >> just asked with "It depends on how big the collection is". >> >> What I wrote yesterday is that I would use a global recordset >> variable, thus avoiding opening/closing the recordset repeatedly and I'd use seek. >> >> You mentioned that JET always goes across the wire and that's not >> true. If a page is in the local JET cache, then it won't. >> >> But here that is really not an issue because a language translation > table >> is certainly going to be part of the front end, so the table will be > local. >> It's not going to change unless the app changes. >> >> Rocky has been talking about pulling 2500 records; if all that is >> pulled into memory, that is a fair sized chunk. I'd much rather let >> the system > use >> that memory as it sees fit rather then tying it up with one specific task. >> If I have an application that is a couple of hundred forms and user >> Jim D uses only one form, then that's a big waste. Of course you >> could mitigate that somewhat by only loading the translation when the >> form loads and for the specific language as you mentioned. >> >> But if every programmer were to approach application design with >> the > "load >> it into memory" approach because it's fast, then very quickly you can >> find that the OS will start paging out to disk. So your really not >> in memory > any >> more. >> >> That's why I think pulling something into memory like this is a >> waste. >> >> FWIW, >> Jim. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com No virus found in this incoming message. Checked by AVG - www.avg.com Version: 8.0.237 / Virus Database: 270.11.1/1961 - Release Date: 02/19/09 18:45:00 From jwcolby at colbyconsulting.com Fri Feb 20 15:07:15 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 20 Feb 2009 16:07:15 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <5B493F7927FC46DFB7D6CD36323C26FB@XPS> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS> <499EFE58.6050703@colbyconsulting.com> <8475E883E0DF4EBB94B684E9525182D1@HAL9005> <5B493F7927FC46DFB7D6CD36323C26FB@XPS> Message-ID: <499F1B83.6080609@colbyconsulting.com> As it happens I use the switchboard which has a local table. So it appears that I do agree with you on this specific example. Additionally the amount of data is so small that caching it makes absolutely no sense at all. So you "win" on all counts on this one. ;) John W. Colby www.ColbyConsulting.com Jim Dettman wrote: > Ditto for table that drives menus... I would not put that in my BE either. > Waste of network bandwidth. I believe if the data in the table will only > change when the app changes, then it belongs in the FE. > > Jim. > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: Friday, February 20, 2009 3:06 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > " I am not going to get into the "this is a local table so it goes in the > FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are > for data (in my world)." > > In my case, where the 'data' is really static, and is needed by each user, > wouldn't the design be better with the language tables in the FE? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 20, 2009 11:03 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Jim, > > > So if your not comfortable with it then just ignore it? Humm. > > I was making a general observation, which I believe is true. People tend to > use the tools they know and are expert with, and only go outside of their > comfort zone when the tool fails them. I freely acknowledge that this is > true for me, and I am not accusing you of anything. > > > No, that is not correct. A seek on an open table won't cache the > entire recordset in of > itself. What might be sitting in JET's cache is a few buffers worth of > index pages and a couple of buffers worth of data pages, but I'd highly > doubt you'd have the entire thing unless you just went through every single > record or used them a lot in comparison to everything else (JET's cache is > LRU based, so the pages could add up in the cache over time). > > By definition you have to have all of the data that is used for doing any > particular form. > > >Since a language table would be local to the FE, this would not be a pull > over the wire and it would be quite fast. > > It might be in your systems but it would not be in mine. I use a BE because > that is where data goes. I personally do not have ANY local tables in the > FE except for temp tables for processes. I have many cases where there are > different FEs for different purposes. I am not going to get into the "this > is a local table so it goes in the FE... oh damn, now I gotta go update the > data in 5 different FEs". BEs are for data (in my world). > > >It's quite possible to that the disk drive would still have the data in > its own cache, so you might not even end up doing a hard hit to the disk at > all. > > Unlikely. The disk is also pulling forms, reports, running the browser as > the user goofs off, working on buffering music that the user is listening > to, and any of the other million things that go on in a Windows environment. > The probability that the data for a form opened sometime previously would > still be in the disk buffer is pretty low I would guess. > > > But with the seek approach, you would not be tying up a chunk of memory > to be used for only one > purpose. > > I have to say that with Windows XP requiring 256 megs just for it to load, > and Vista pushing twice that just for it to load, I am not worrying about > caching my "seldom changing / frequently used" > data. If I take even a few hundred K to cache the language strings for > every form in the system, I will not lose any sleep at all for doing that. > I would in fact just cache the form's opened... > > > It is when considering that point that I would not choose to do an array > based approach either, which would be really simple to write as I could use > GetRows() to dump the set into an array. Since the array would already be > sorted, I could even do a B-tree search on it rather then a sequential one. > That might even beat out a class (hard to say with VBA) in terms of speed. > > Even if I used a Getrows() to dump into an array I would promptly move the > data to a collection and get rid of the array. > > I think that a lot of stuff goes into determining when to use what tools. I > do not have a b-tree search algorithm for a generic array but even if I did > (and assuming that it was faster, doubtful), a collection is USUALLY fast > enough that it wouldn't be worth the complexity of using such a tool, at > least not on a routine basis. > > I use collections because: > > 1) They are DEAD simple. The syntax is simple, the usage is simple. > 2) It is easy code to read and maintain. > 3) They can hold a ton of stuff easily. > 4) They can hold just about anything, from simple variables to objects and > class instances (which are objects). > 5) They are very fast. > > If you think about it, Access uses collections EVERYWHERE, and I want to > emphasize the EVERYWHERE. > Every single thing that you do with Access from forms (a collection of) to > controls on forms (a collection of), to properties of controls and forms (a > collection of), to fields (a collection of), to querydefs (a collection of) > etc etc ad nasium, are all stored internally to Access (and when loaded into > memory) as collections. Notice that Microsoft doesn't store all these items > in tables. > If tables are so blazing fast, if all the things that you think are true > (jet cache / disk cache > etc) really are true, why does Access store everything in collections > instead of just leaving it in records on a disk? Can you say programming / > overhead nightmare? > > Microsoft has spent a lot of time and energy optimizing collections in order > to make Access itself fast. IMHO, why would I NOT use what Microsoft uses > and has spent so much effort to make fast and easy to use? > > > John W. Colby > www.ColbyConsulting.com > > > Jim Dettman wrote: >> John, >> >> <> comfortable to us as individual programmers and to heck with ....>> >> >> So if your not comfortable with it then just ignore it? Humm. >> >> <> associated junk - indexes etc. My way caches exactly and only the >> strings for one specific language.>> >> >> No, that is not correct. A seek on an open table won't cache the >> entire recordset in of itself. What might be sitting in JET's cache >> is a few buffers worth of index pages and a couple of buffers worth of >> data pages, but I'd highly doubt you'd have the entire thing unless >> you just went through every single record or used them a lot in >> comparison to everything else (JET's cache is LRU based, so the pages >> could add up in the cache over time). >> >> But even if nothing is in the cache, a seek is based on an index and >> since JET indexes are B-tree based, you'd have your record within 2-3 >> disk hits at most, especially on a 2500 record table. Since a >> language table would be local to the FE, this would not be a pull over >> the wire and it would be quite fast. It's quite possible to that the >> disk drive would still have the data in its own cache, so you might >> not even end up doing a hard hit to the disk at all. >> >> But if the data does happen to be in the JET cache, then I doubt >> there would be much of a difference between the two methods. I think >> the class approach would still be a tad faster, but not by much. And >> let me be clear; it's not the class approach that I don't agree with >> but the point that as an application developer do I cache things in memory > on my own or not? >> It is when considering that point that I would not choose to do an >> array based approach either, which would be really simple to write as >> I could use >> GetRows() to dump the set into an array. Since the array would already >> be sorted, I could even do a B-tree search on it rather then a sequential > one. >> That might even beat out a class (hard to say with VBA) in terms of speed. >> >> But with the seek approach, you would not be tying up a chunk of >> memory to be used for only one purpose. >> >> From my viewpoint the seek approach is the best of both worlds, >> stuff gets cached if it is used a lot and if it is not, then it is not >> cached. In that case, the memory gets used for something productive >> rather then sitting there. And I would be really surprised if performance > wasn't acceptable. >> Jim. >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Friday, February 20, 2009 9:44 AM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? >> >> The bottom line is that to a large extent we all do what is >> comfortable to us as individual programmers and to heck with .... >> >> > You mentioned that JET always goes across the wire and that's not > true. >> If a page is in the >> local JET cache, then it won't. >> >> > But if every programmer were to approach application design with the >> "load it into memory" >> approach because it's fast, then very quickly you can find that the OS >> will start paging out to disk. So your really not in memory any more. >> >> Well... Hmmm... your way caches the entire recordset and all its >> associated junk - indexes etc. My way caches exactly and only the >> strings for one specific language. >> >> However your way (done on a form by form basis on demand) sounds like >> it could be flushing the jet cache as other processes run so that it >> may very well have to hit the disk again for the next form to load. >> At best it kind of sounds like "six of one, half a dozen of the >> other". >> >> > If I have an application that is a couple of hundred forms and user >> Jim D uses only one form, then that's a big waste. >> >> True, but if you cache the data as the form loads the first time then >> that goes away. I was proposing exactly that. Now you have the best >> of both worlds, you don't use time and resources until a form is >> actually loaded, but once it is loaded it can be loaded twice or a >> million times and always be fast. You should know from my JIT >> subforms I am all about doing stuff as / when needed. >> >> Notice that I am not caching constantly changing data, nor data that >> doesn't change but is rarely used, only data that rarely changes and >> is used constantly in the program. >> That "rarely changes / >> constantly used" is not a rare occasion in complex systems. To go to >> the disk dozens or hundreds or thousands of times a day to get the >> same data over and over IMHO is just silly, when I can just cache it >> and be done. It is even sillier when caching it is a trivial >> programming exercise. It is sillier yet when caching the data >> significantly speeds up the program. >> >> I learned a long time ago to organize my program into classes, each >> class performs a systemic task. >> I learned that when a set of data is in constant use in the program >> (and form translation fits that bill) then I would build a class >> system to cache it and the program always works faster. The "cache >> class system" looks very similar from data set to data set. It >> doesn't take me long to set it up because I have done it so often. >> >> So that is what I do. I do understand that it is only fast / >> efficient for me because I use classes all day every day, but so can >> any Access programmer as my lectures are intended to show. >> >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Jim Dettman wrote: >>> John, >>> >>> I posted a couple of comments yesterday to you and Drew, which >>> still haven't shown up on the list, but I'll answer the question you >>> just asked with "It depends on how big the collection is". >>> >>> What I wrote yesterday is that I would use a global recordset >>> variable, thus avoiding opening/closing the recordset repeatedly and I'd > use seek. >>> You mentioned that JET always goes across the wire and that's not true. >>> If a page is in the local JET cache, then it won't. >>> >>> But here that is really not an issue because a language translation >> table >>> is certainly going to be part of the front end, so the table will be >> local. >>> It's not going to change unless the app changes. >>> >>> Rocky has been talking about pulling 2500 records; if all that is >>> pulled into memory, that is a fair sized chunk. I'd much rather let >>> the system >> use >>> that memory as it sees fit rather then tying it up with one specific > task. >>> If I have an application that is a couple of hundred forms and user >>> Jim D uses only one form, then that's a big waste. Of course you >>> could mitigate that somewhat by only loading the translation when the >>> form loads and for the specific language as you mentioned. >>> >>> But if every programmer were to approach application design with >>> the >> "load >>> it into memory" approach because it's fast, then very quickly you can >>> find that the OS will start paging out to disk. So your really not >>> in memory >> any >>> more. >>> >>> That's why I think pulling something into memory like this is a waste. >>> >>> FWIW, >>> Jim. > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jengross at gte.net Fri Feb 20 15:11:07 2009 From: jengross at gte.net (Jennifer Gross) Date: Fri, 20 Feb 2009 13:11:07 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: <499F1B05.7060106@colbyconsulting.com> Message-ID: <004901c9939f$bfa49fd0$0301a8c0@trudy> Wow, to sway the great John Colby. And in a "religious" argument no less. Now that made my day. Seriously smiling, Jennifer -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 20, 2009 1:05 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Now there is a reason that places the whole issue in a new light. Language data is indeed specific to a particular FE in a way that most other data is not. So perhaps for that specific task, a table in the FE makes perfect since. I would STILL cache it but that is another issue. Thanks Jennifer, John W. Colby www.ColbyConsulting.com Jennifer Gross wrote: > Hi Rocky, > > I have an application that uses a translation table is much the same > way yours does - from Michael Kaplan at Trigeminal. I keep the > translation table in the FE as well. One of the reasons for this is > that as I add objects to the FE I can get the captions translated and > add the records to the FE table. I don't need to append records to a > BE table during the dissemination of the FE to the individual users. > I've just found it easier of the years in terms of deployment - that I > don't have to make sure the live BE has been updated - it is all in > the FE which for the users just gets replaced when there is an update. > > Jennifer > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: Friday, February 20, 2009 12:06 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > > " I am not going to get into the "this is a local table so it goes in > the FE... oh damn, now I gotta go update the data in 5 different FEs". > BEs are for data (in my world)." > > In my case, where the 'data' is really static, and is needed by each > user, wouldn't the design be better with the language tables in the > FE? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 20, 2009 11:03 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Jim, > > > So if your not comfortable with it then just ignore it? Humm. > > I was making a general observation, which I believe is true. People > tend to use the tools they know and are expert with, and only go > outside of their comfort zone when the tool fails them. I freely > acknowledge that this is true for me, and I am not accusing you of > anything. > > > No, that is not correct. A seek on an open table won't cache the > entire recordset in of > itself. What might be sitting in JET's cache is a few buffers worth of > index pages and a couple of buffers worth of data pages, but I'd highly > doubt you'd have the entire thing unless you just went through every > single record or used them a lot in comparison to everything else (JET's > cache is LRU based, so the pages could add up in the cache over time). > > By definition you have to have all of the data that is used for doing > any particular form. > > >Since a language table would be local to the FE, this would not be a > pull over the wire and it would be quite fast. > > It might be in your systems but it would not be in mine. I use a BE > because that is where data goes. I personally do not have ANY local > tables in the FE except for temp tables for processes. I have many > cases where there are different FEs for different purposes. I am not > going to get into the "this is a local table so it goes in the FE... > oh damn, now I gotta go update the data in 5 different FEs". BEs are > for data (in my world). > > >It's quite possible to that the disk drive would still have the data > in its own cache, so you might not even end up doing a hard hit to the > disk at all. > > Unlikely. The disk is also pulling forms, reports, running the > browser as the user goofs off, working on buffering music that the > user is listening to, and any of the other million things that go on > in a Windows environment. The probability that the data for a form > opened sometime previously would still be in the disk buffer is pretty > low I would guess. > > > But with the seek approach, you would not be tying up a chunk of > memory > to be used for only one > purpose. > > I have to say that with Windows XP requiring 256 megs just for it to > load, and Vista pushing twice that just for it to load, I am not > worrying about caching my "seldom changing / frequently used" data. > If I take even a few hundred K to cache the language strings for every > form in the system, I will not lose any sleep at all for doing that. I > would in fact just cache the form's opened... > > > It is when considering that point that I would not choose to do an > array based approach either, which would be really simple to write as > I could use > GetRows() to dump the set into an array. Since the array would already > be sorted, I could even do a B-tree search on it rather then a > sequential one. That might even beat out a class (hard to say with > VBA) in terms of speed. > > Even if I used a Getrows() to dump into an array I would promptly move > the data to a collection and get rid of the array. > > I think that a lot of stuff goes into determining when to use what > tools. I do not have a b-tree search algorithm for a generic array > but even if I did (and assuming that it was faster, doubtful), a > collection is USUALLY fast enough that it wouldn't be worth the > complexity of using such a tool, at least not on a routine basis. > > I use collections because: > > 1) They are DEAD simple. The syntax is simple, the usage is simple. > 2) It is easy code to read and maintain. > 3) They can hold a ton of stuff easily. > 4) They can hold just about anything, from simple variables to objects > and class instances (which are objects). > 5) They are very fast. > > If you think about it, Access uses collections EVERYWHERE, and I want > to emphasize the EVERYWHERE. Every single thing that you do with > Access from forms (a collection of) to controls on forms (a collection > of), to properties of controls and forms (a collection of), to fields > (a collection of), to querydefs (a collection of) etc etc ad nasium, > are all stored internally to Access (and when loaded into > memory) as collections. Notice that Microsoft doesn't store all these > items in tables. > If tables are so blazing fast, if all the things that you think are > true (jet cache / disk cache > etc) really are true, why does Access store everything in collections > instead of just leaving it in records on a disk? Can you say > programming / overhead nightmare? > > Microsoft has spent a lot of time and energy optimizing collections in > order to make Access itself fast. IMHO, why would I NOT use what > Microsoft uses and has spent so much effort to make fast and easy to > use? > > > John W. Colby > www.ColbyConsulting.com > > > Jim Dettman wrote: >> John, >> >> <> comfortable to us as individual programmers and to heck with ....>> >> >> So if your not comfortable with it then just ignore it? Humm. >> >> <> associated junk - indexes etc. My way caches exactly and only the >> strings for one specific language.>> >> >> No, that is not correct. A seek on an open table won't cache the >> entire recordset in of itself. What might be sitting in JET's cache >> is a few buffers worth of index pages and a couple of buffers worth >> of > >> data pages, but I'd highly doubt you'd have the entire thing unless >> you just went through every single record or used them a lot in >> comparison to everything else (JET's cache is LRU based, so the pages >> could add up in the cache over time). >> >> But even if nothing is in the cache, a seek is based on an index >> and since JET indexes are B-tree based, you'd have your record within >> 2-3 disk hits at most, especially on a 2500 record table. Since a >> language table would be local to the FE, this would not be a pull >> over > >> the wire and it would be quite fast. It's quite possible to that the >> disk drive would still have the data in its own cache, so you might >> not even end up doing a hard hit to the disk at all. >> >> But if the data does happen to be in the JET cache, then I doubt >> there would be much of a difference between the two methods. I think >> the class approach would still be a tad faster, but not by much. And >> let me be clear; it's not the class approach that I don't agree with >> but the point that as an application developer do I cache things in > memory > on my own or not? >> It is when considering that point that I would not choose to do an >> array based approach either, which would be really simple to write as >> I could use >> GetRows() to dump the set into an array. Since the array would >> already > >> be sorted, I could even do a B-tree search on it rather then a > sequential > one. >> That might even beat out a class (hard to say with VBA) in terms of >> speed. >> >> But with the seek approach, you would not be tying up a chunk of >> memory to be used for only one purpose. >> >> From my viewpoint the seek approach is the best of both worlds, >> stuff gets cached if it is used a lot and if it is not, then it is >> not > >> cached. In that case, the memory gets used for something productive >> rather then sitting there. And I would be really surprised if > performance > wasn't acceptable. >> Jim. >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Friday, February 20, 2009 9:44 AM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? >> >> The bottom line is that to a large extent we all do what is >> comfortable to us as individual programmers and to heck with .... >> >> > You mentioned that JET always goes across the wire and that's not > true. >> If a page is in the >> local JET cache, then it won't. >> >> > But if every programmer were to approach application design with > the >> "load it into memory" >> approach because it's fast, then very quickly you can find that the >> OS > >> will start paging out to disk. So your really not in memory any >> more. >> >> Well... Hmmm... your way caches the entire recordset and all its >> associated junk - indexes etc. My way caches exactly and only the >> strings for one specific language. >> >> However your way (done on a form by form basis on demand) sounds like >> it could be flushing the jet cache as other processes run so that it >> may very well have to hit the disk again for the next form to load. >> At best it kind of sounds like "six of one, half a dozen of the >> other". >> >> > If I have an application that is a couple of hundred forms and >> user Jim D uses only one form, then that's a big waste. >> >> True, but if you cache the data as the form loads the first time then >> that goes away. I was proposing exactly that. Now you have the best >> of both worlds, you don't use time and resources until a form is >> actually loaded, but once it is loaded it can be loaded twice or a >> million times and always be fast. You should know from my JIT >> subforms I am all about doing stuff as / when needed. >> >> Notice that I am not caching constantly changing data, nor data that >> doesn't change but is rarely used, only data that rarely changes and >> is used constantly in the program. That "rarely changes / >> constantly used" is not a rare occasion in complex systems. To go to >> the disk dozens or hundreds or thousands of times a day to get the >> same data over and over IMHO is just silly, when I can just cache it >> and be done. It is even sillier when caching it is a trivial >> programming exercise. It is sillier yet when caching the data >> significantly speeds up the program. >> >> I learned a long time ago to organize my program into classes, each >> class performs a systemic task. >> I learned that when a set of data is in constant use in the program >> (and form translation fits that bill) then I would build a class >> system to cache it and the program always works faster. The "cache >> class system" looks very similar from data set to data set. It >> doesn't take me long to set it up because I have done it so often. >> >> So that is what I do. I do understand that it is only fast / >> efficient for me because I use classes all day every day, but so can >> any Access programmer as my lectures are intended to show. >> >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Jim Dettman wrote: >>> John, >>> >>> I posted a couple of comments yesterday to you and Drew, which >>> still haven't shown up on the list, but I'll answer the question you >>> just asked with "It depends on how big the collection is". >>> >>> What I wrote yesterday is that I would use a global recordset >>> variable, thus avoiding opening/closing the recordset repeatedly and > I'd > use seek. >>> You mentioned that JET always goes across the wire and that's not >>> true. If a page is in the local JET cache, then it won't. >>> >>> But here that is really not an issue because a language >>> translation >> table >>> is certainly going to be part of the front end, so the table will be >> local. >>> It's not going to change unless the app changes. >>> >>> Rocky has been talking about pulling 2500 records; if all that is >>> pulled into memory, that is a fair sized chunk. I'd much rather let >>> the system >> use >>> that memory as it sees fit rather then tying it up with one specific > task. >>> If I have an application that is a couple of hundred forms and user >>> Jim D uses only one form, then that's a big waste. Of course you >>> could mitigate that somewhat by only loading the translation when >>> the > >>> form loads and for the specific language as you mentioned. >>> >>> But if every programmer were to approach application design with >>> the >> "load >>> it into memory" approach because it's fast, then very quickly you >>> can find that the OS will start paging out to disk. So your really >>> not in memory >> any >>> more. >>> >>> That's why I think pulling something into memory like this is a >>> waste. >>> >>> FWIW, >>> Jim. > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com No virus found in this incoming message. Checked by AVG - www.avg.com Version: 8.0.237 / Virus Database: 270.11.1/1961 - Release Date: 02/19/09 18:45:00 From jwcolby at colbyconsulting.com Fri Feb 20 15:15:16 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 20 Feb 2009 16:15:16 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <95A859511D164805A5EA8288B9AC5449@HAL9005> References: <8475E883E0DF4EBB94B684E9525182D1@HAL9005> <003a01c99399$b795b190$0301a8c0@trudy> <95A859511D164805A5EA8288B9AC5449@HAL9005> Message-ID: <499F1D64.7090409@colbyconsulting.com> Another fine reason to place them in the FE. It is obvious that I do not have to deal with this issue and so have never spent any time doing a system analysis of it. Given these two carefully thought out reasons, I would almost certainly place this specific table in the FE. Given the size of the data I would almost certainly cache it though. I have systems with main forms, with tabs with subforms, even tabs on subforms, with subforms on those tabs. Having such forms load quickly becomes imperative. Caching this data would go a long way towards speeding up the load times. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > That was my thinking, too, when I put the tables in the front end - ease of > update. Also, my app supports multiple back ends. So it would be a question > of looking at each BE that was opened to see if it had the latest > translation. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jennifer Gross > Sent: Friday, February 20, 2009 12:28 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > Hi Rocky, > > I have an application that uses a translation table is much the same way > yours does - from Michael Kaplan at Trigeminal. I keep the translation > table in the FE as well. One of the reasons for this is that as I add > objects to the FE I can get the captions translated and add the records to > the FE table. I don't need to append records to a BE table during the > dissemination of the FE to the individual users. I've just found it easier > of the years in terms of deployment - that I don't have to make sure the > live BE has been updated - it is all in the FE which for the users just gets > replaced when there is an update. > > Jennifer > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: Friday, February 20, 2009 12:06 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > > " I am not going to get into the "this is a local table so it goes in the > FE... oh damn, now I gotta go update the data in 5 different FEs". > BEs are for data (in my world)." > > In my case, where the 'data' is really static, and is needed by each user, > wouldn't the design be better with the language tables in the FE? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 20, 2009 11:03 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Jim, > > > So if your not comfortable with it then just ignore it? Humm. > > I was making a general observation, which I believe is true. People tend to > use the tools they know and are expert with, and only go outside of their > comfort zone when the tool fails them. I freely acknowledge that this is > true for me, and I am not accusing you of anything. > > > No, that is not correct. A seek on an open table won't cache the > entire recordset in of > itself. What might be sitting in JET's cache is a few buffers worth of > index pages and a couple of buffers worth of data pages, but I'd highly > doubt you'd have the entire thing unless you just went through every single > record or used them a lot in comparison to everything else (JET's cache is > LRU based, so the pages could add up in the cache over time). > > By definition you have to have all of the data that is used for doing any > particular form. > > >Since a language table would be local to the FE, this would not be a pull > over the wire and it would be quite fast. > > It might be in your systems but it would not be in mine. I use a BE because > that is where data goes. I personally do not have ANY local tables in the > FE except for temp tables for processes. I have many cases where there are > different FEs for different purposes. I am not going to get into the "this > is a local table so it goes in the FE... oh damn, now I gotta go update the > data in 5 different FEs". BEs are for data (in my world). > > >It's quite possible to that the disk drive would still have the data in > its own cache, so you might not even end up doing a hard hit to the disk at > all. > > Unlikely. The disk is also pulling forms, reports, running the browser as > the user goofs off, working on buffering music that the user is listening > to, and any of the other million things that go on in a Windows environment. > The probability that the data for a form opened sometime previously would > still be in the disk buffer is pretty low I would guess. > > > But with the seek approach, you would not be tying up a chunk of > memory > to be used for only one > purpose. > > I have to say that with Windows XP requiring 256 megs just for it to load, > and Vista pushing twice that just for it to load, I am not worrying about > caching my "seldom changing / frequently used" > data. If I take even a few hundred K to cache the language strings for > every form in the system, I will not lose any sleep at all for doing that. I > would in fact just cache the form's opened... > > > It is when considering that point that I would not choose to do an array > based approach either, which would be really simple to write as I could use > GetRows() to dump the set into an array. Since the array would already be > sorted, I could even do a B-tree search on it rather then a sequential one. > That might even beat out a class (hard to say with VBA) in terms of speed. > > Even if I used a Getrows() to dump into an array I would promptly move the > data to a collection and get rid of the array. > > I think that a lot of stuff goes into determining when to use what tools. I > do not have a b-tree search algorithm for a generic array but even if I did > (and assuming that it was faster, doubtful), a collection is USUALLY fast > enough that it wouldn't be worth the complexity of using such a tool, at > least not on a routine basis. > > I use collections because: > > 1) They are DEAD simple. The syntax is simple, the usage is simple. > 2) It is easy code to read and maintain. > 3) They can hold a ton of stuff easily. > 4) They can hold just about anything, from simple variables to objects and > class instances (which are objects). > 5) They are very fast. > > If you think about it, Access uses collections EVERYWHERE, and I want to > emphasize the EVERYWHERE. > Every single thing that you do with Access from forms (a collection of) to > controls on forms (a collection of), to properties of controls and forms (a > collection of), to fields (a collection of), to querydefs (a collection of) > etc etc ad nasium, are all stored internally to Access (and when loaded into > memory) as collections. Notice that Microsoft doesn't store all these items > in tables. > If tables are so blazing fast, if all the things that you think are true > (jet cache / disk cache > etc) really are true, why does Access store everything in collections > instead of just leaving it in records on a disk? Can you say programming / > overhead nightmare? > > Microsoft has spent a lot of time and energy optimizing collections in order > to make Access itself fast. IMHO, why would I NOT use what Microsoft uses > and has spent so much effort to make fast and easy to use? > > > John W. Colby > www.ColbyConsulting.com > > > Jim Dettman wrote: >> John, >> >> <> comfortable to us as individual programmers and to heck with ....>> >> >> So if your not comfortable with it then just ignore it? Humm. >> >> <> associated junk - indexes etc. My way caches exactly and only the >> strings for one specific language.>> >> >> No, that is not correct. A seek on an open table won't cache the >> entire recordset in of itself. What might be sitting in JET's cache >> is a few buffers worth of index pages and a couple of buffers worth of > >> data pages, but I'd highly doubt you'd have the entire thing unless >> you just went through every single record or used them a lot in >> comparison to everything else (JET's cache is LRU based, so the pages >> could add up in the cache over time). >> >> But even if nothing is in the cache, a seek is based on an index and >> since JET indexes are B-tree based, you'd have your record within 2-3 >> disk hits at most, especially on a 2500 record table. Since a >> language table would be local to the FE, this would not be a pull over > >> the wire and it would be quite fast. It's quite possible to that the >> disk drive would still have the data in its own cache, so you might >> not even end up doing a hard hit to the disk at all. >> >> But if the data does happen to be in the JET cache, then I doubt >> there would be much of a difference between the two methods. I think >> the class approach would still be a tad faster, but not by much. And >> let me be clear; it's not the class approach that I don't agree with >> but the point that as an application developer do I cache things in > memory > on my own or not? >> It is when considering that point that I would not choose to do an >> array based approach either, which would be really simple to write as >> I could use >> GetRows() to dump the set into an array. Since the array would already > >> be sorted, I could even do a B-tree search on it rather then a > sequential > one. >> That might even beat out a class (hard to say with VBA) in terms of >> speed. >> >> But with the seek approach, you would not be tying up a chunk of >> memory to be used for only one purpose. >> >> From my viewpoint the seek approach is the best of both worlds, >> stuff gets cached if it is used a lot and if it is not, then it is not > >> cached. In that case, the memory gets used for something productive >> rather then sitting there. And I would be really surprised if > performance > wasn't acceptable. >> Jim. >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Friday, February 20, 2009 9:44 AM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? >> >> The bottom line is that to a large extent we all do what is >> comfortable to us as individual programmers and to heck with .... >> >> > You mentioned that JET always goes across the wire and that's not > true. >> If a page is in the >> local JET cache, then it won't. >> >> > But if every programmer were to approach application design with > the >> "load it into memory" >> approach because it's fast, then very quickly you can find that the OS > >> will start paging out to disk. So your really not in memory any more. >> >> Well... Hmmm... your way caches the entire recordset and all its >> associated junk - indexes etc. My way caches exactly and only the >> strings for one specific language. >> >> However your way (done on a form by form basis on demand) sounds like >> it could be flushing the jet cache as other processes run so that it >> may very well have to hit the disk again for the next form to load. >> At best it kind of sounds like "six of one, half a dozen of the >> other". >> >> > If I have an application that is a couple of hundred forms and user >> Jim D uses only one form, then that's a big waste. >> >> True, but if you cache the data as the form loads the first time then >> that goes away. I was proposing exactly that. Now you have the best >> of both worlds, you don't use time and resources until a form is >> actually loaded, but once it is loaded it can be loaded twice or a >> million times and always be fast. You should know from my JIT >> subforms I am all about doing stuff as / when needed. >> >> Notice that I am not caching constantly changing data, nor data that >> doesn't change but is rarely used, only data that rarely changes and >> is used constantly in the program. >> That "rarely changes / >> constantly used" is not a rare occasion in complex systems. To go to >> the disk dozens or hundreds or thousands of times a day to get the >> same data over and over IMHO is just silly, when I can just cache it >> and be done. It is even sillier when caching it is a trivial >> programming exercise. It is sillier yet when caching the data >> significantly speeds up the program. >> >> I learned a long time ago to organize my program into classes, each >> class performs a systemic task. >> I learned that when a set of data is in constant use in the program >> (and form translation fits that bill) then I would build a class >> system to cache it and the program always works faster. The "cache >> class system" looks very similar from data set to data set. It >> doesn't take me long to set it up because I have done it so often. >> >> So that is what I do. I do understand that it is only fast / >> efficient for me because I use classes all day every day, but so can >> any Access programmer as my lectures are intended to show. >> >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Jim Dettman wrote: >>> John, >>> >>> I posted a couple of comments yesterday to you and Drew, which >>> still haven't shown up on the list, but I'll answer the question you >>> just asked with "It depends on how big the collection is". >>> >>> What I wrote yesterday is that I would use a global recordset >>> variable, thus avoiding opening/closing the recordset repeatedly and > I'd > use seek. >>> You mentioned that JET always goes across the wire and that's not >>> true. If a page is in the local JET cache, then it won't. >>> >>> But here that is really not an issue because a language translation >> table >>> is certainly going to be part of the front end, so the table will be >> local. >>> It's not going to change unless the app changes. >>> >>> Rocky has been talking about pulling 2500 records; if all that is >>> pulled into memory, that is a fair sized chunk. I'd much rather let >>> the system >> use >>> that memory as it sees fit rather then tying it up with one specific > task. >>> If I have an application that is a couple of hundred forms and user >>> Jim D uses only one form, then that's a big waste. Of course you >>> could mitigate that somewhat by only loading the translation when the > >>> form loads and for the specific language as you mentioned. >>> >>> But if every programmer were to approach application design with >>> the >> "load >>> it into memory" approach because it's fast, then very quickly you can >>> find that the OS will start paging out to disk. So your really not >>> in memory >> any >>> more. >>> >>> That's why I think pulling something into memory like this is a >>> waste. >>> >>> FWIW, >>> Jim. > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com No virus found in this incoming > message. > Checked by AVG - www.avg.com > Version: 8.0.237 / Virus Database: 270.11.1/1961 - Release Date: > 02/19/09 18:45:00 > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From cfoust at infostatsystems.com Fri Feb 20 15:16:37 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Fri, 20 Feb 2009 13:16:37 -0800 Subject: [AccessD] OLEDB Connection In-Reply-To: <7E02B06E41E5404589EDDDA2BAA1C5A83ECA20@sanex101.nciinc.com> References: <7E02B06E41E5404589EDDDA2BAA1C5A83ECA20@sanex101.nciinc.com> Message-ID: You're going to be using the ADODB library. Try searching on that. You'll use the connection string to create and open a connection object. Then you create a command object, which is where your SQL goes, and you work with the command object after you make the connection object its active connection. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Hewson, Jim Sent: Friday, February 20, 2009 1:05 PM To: Access Developers discussion and problem solving Subject: [AccessD] OLEDB Connection How do you connect to SQL Server from Access using OLEDB? I've used ODBC using a DSN but I don't have any idea how to use OLEDB. I did some research on the issue, but all I found was the connection string but nothing that told me what to do with it. Where do I put it? Is it better than using a DSN? Are there any maintenance issues when deploying to multiple machines on a LAN? Many Thanks in advance. Jim ######################################################################## ######## If you have received this message in error, please contact the sender immediately and be aware that the use, copying, or dissemination of this information is prohibited. This email transmission contains information from NCI Information Systems, Inc. that may be considered privileged or confidential and is intended solely for the named recipient. ######################################################################## ######## -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Fri Feb 20 15:18:14 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Fri, 20 Feb 2009 13:18:14 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: <499F1A38.50706@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS> <499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <499F1A38.50706@colbyconsulting.com> Message-ID: <964E4EEEA95D45F691E54BAB8160E912@HAL9005> Well, all that is exactly why I asked the question. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 20, 2009 1:02 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Rocky, I was not addressing anything other than the "assumption" that was expressed that certain tables "would be in the FE". If you as the owner / developer want them there that is all that needs to be said. In MY systems I never place such tables in the FE. If I were to "purchase" or other be placed in charge of your systems, I would move the tables to the BE. Remember though that I DO cache my "rarely modified / often used" data so it does not matter that it is on in a BE on the server. It will cross the wire only once per form per user. Thereafter it will almost certainly be as fast or faster than a local FE table. To address your question: > In my case, where the 'data' is really static, and is needed by each user, wouldn't the design be better with the language tables in the FE? This is one of those things that is purely opinion, and often near religious in conviction, and I do not want to start a religious war. Some people wholeheartedly believe in placing such things in the FE. I wholeheartedly believe otherwise. Often a belief is created in the distant past when we make a decision of some sort that sways the argument in one direction or the other. We often then stop "thinking" about it and simply "believe" it. If enough time passes, we may completely lose track of why we even believe something. In this case I would guess that those who place such tables in the FE have either never thought of or considered caching it, or considered and rejected it. In those cases having it in the FE solves a speed problem. Now these people have "solved" their speed problem and the "reason" fades into a belief. I started using data caches some time ago and, while I never used data tables in the FE even before that, having the cache simply makes the FE Data Tables concept a non-starter. In all other respects (IMHO) having data in a BE is the accepted practice. Since my caches solve my speed issues I truly do not need them in the FE. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > " I am not going to get into the "this is a local table so it goes in > the FE... oh damn, now I gotta go update the data in 5 different FEs". > BEs are for data (in my world)." > > In my case, where the 'data' is really static, and is needed by each > user, wouldn't the design be better with the language tables in the FE? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From DWUTKA at Marlow.com Fri Feb 20 15:20:38 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Fri, 20 Feb 2009 15:20:38 -0600 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <15769CDACB90431FA108E3CA24615E19@HAL9005> <499de585.1c05d00a.3006.ffffca6c@mx.google.com> <499E05DC.3060907@colbyconsulting.com><499EC6DC.1000106@colbyconsulting.com> Message-ID: dwutka at marlow.com Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Friday, February 20, 2009 11:24 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? What address is best? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Friday, February 20, 2009 9:07 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Send it to me, and I'll put up a working class example. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Friday, February 20, 2009 10:28 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? Would it help if I sent you the table with the translations? And maybe a form or two with a bunch of controls? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 20, 2009 7:06 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? > ...I'd still like to see you refactor Rocky's code as a class/collection solution. I will do that William. My problem in this is that I need a table, a form that needs translation, translation data for that form and then I can write the classes. However I do think that this is a useful example of using a class "system" where there is more than one class doing the work. I will try to get this done over the weekend. John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...lol ...I'm in the process of a complete rewrite of a major ap I did > more than ten years ago ...in my case, your 50% estimate is low by a > wide margin ...very wide! :) > > ...I'd still like to see you refactor Rocky's code as a > class/collection solution. > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Thursday, February 19, 2009 8:22 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] Find First in an Array? > >> Code reviews? OMG! >> >> But yea, best practices is a learned skill. I can't tell you the >> times (when I was learning to >> program) that I would do whatever just to make it work, rather than >> do it right. Then it was refactoring because... There are just so >> many times when "the right way" >> takes 10% longer than the >> easy way, but refactoring the easy way takes 50% longer than the >> right way. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Charlotte Foust wrote: >>> Then you MUST be an independent developer because if someone else >>> reviews your code, believe me, they look under the hood! >>> >>> Charlotte Foust >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max >>> Wanadoo >>> Sent: Thursday, February 19, 2009 3:05 PM >>> To: 'Access Developers discussion and problem solving' >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> That's my motto, now. No one ever looks under the hood, and I >>> always judge my programs from the outside. Matters not how the data >>> got on the form as long as it happens 1) fast and 2) accurate. >>> >>> >>> Spot on, Rocky. >>> >>> Max >>> >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From JHewson at nciinc.com Fri Feb 20 15:23:05 2009 From: JHewson at nciinc.com (Hewson, Jim ) Date: Fri, 20 Feb 2009 15:23:05 -0600 Subject: [AccessD] OLEDB Connection In-Reply-To: References: <7E02B06E41E5404589EDDDA2BAA1C5A83ECA20@sanex101.nciinc.com> Message-ID: <7E02B06E41E5404589EDDDA2BAA1C5A83ECA21@sanex101.nciinc.com> Thanks, Jim -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Friday, February 20, 2009 3:17 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OLEDB Connection You're going to be using the ADODB library. Try searching on that. You'll use the connection string to create and open a connection object. Then you create a command object, which is where your SQL goes, and you work with the command object after you make the connection object its active connection. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Hewson, Jim Sent: Friday, February 20, 2009 1:05 PM To: Access Developers discussion and problem solving Subject: [AccessD] OLEDB Connection How do you connect to SQL Server from Access using OLEDB? I've used ODBC using a DSN but I don't have any idea how to use OLEDB. I did some research on the issue, but all I found was the connection string but nothing that told me what to do with it. Where do I put it? Is it better than using a DSN? Are there any maintenance issues when deploying to multiple machines on a LAN? Many Thanks in advance. Jim ######################################################################## ######## If you have received this message in error, please contact the sender immediately and be aware that the use, copying, or dissemination of this information is prohibited. This email transmission contains information from NCI Information Systems, Inc. that may be considered privileged or confidential and is intended solely for the named recipient. ######################################################################## ######## -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ################################################################################ If you have received this message in error, please contact the sender immediately and be aware that the use, copying, or dissemination of this information is prohibited. This email transmission contains information from NCI Information Systems, Inc. that may be considered privileged or confidential and is intended solely for the named recipient. ################################################################################ From jwcolby at colbyconsulting.com Fri Feb 20 15:42:11 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 20 Feb 2009 16:42:11 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <004901c9939f$bfa49fd0$0301a8c0@trudy> References: <004901c9939f$bfa49fd0$0301a8c0@trudy> Message-ID: <499F23B3.9060304@colbyconsulting.com> ROTFL. Who is this "great John Colby" guy? Sounds like a magician or escape artist or something. When I think about "static data tables in the FE" (which isn't often!) I always thought of it in the "list table" context. Colors, gender, state, etc. My applications have so many list tables that it makes no sense TO ME to get into a "this one should, this one shouldn't" kind of thing. I just leave all such tables in the BE. I have enough things to think about without spending time on stuff like that. If the table doesn't change much but impacts performance I cache it. Otherwise I don't. I mean think about it, "list tables in the FE" are a cache of sorts, you are "caching" them in your FE on your local hard disk. My problem with the concept is simply spending time on evaluating the "content change" issue for each table. Obviously you can't cache (for example) a city table in the FE if the user can add cities on a daily basis. The state table OTOH probably never has records added. So you spend time trying to think about which should and which shouldn't. Get it wrong and the database starts to break. Basically any table in the FE simply cannot be updated by users. Bahhh. Data belongs in the BE, not on my desk making case by case decisions. Having said that, our good friend J?rgen Welz has an application where caching everything he could in the FE made perfect sense. His FEs had to work over very slow lines, over the internet IIRC and every byte of data transferred over the wire mattered. My clients OTOH don't do that so I just made a decision to spend my time on other things. I truly have never run into tables that were so FE specific and had ancillary reasons (sending out for translation) to have them in the FE. Anyway... glad I could light up your day. 8~) John W. Colby www.ColbyConsulting.com Jennifer Gross wrote: > Wow, to sway the great John Colby. And in a "religious" argument no > less. Now that made my day. > > Seriously smiling, > > Jennifer > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 20, 2009 1:05 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > > Now there is a reason that places the whole issue in a new light. > Language data is indeed specific > to a particular FE in a way that most other data is not. So perhaps for > that specific task, a table > in the FE makes perfect since. I would STILL cache it but that is > another issue. > > Thanks Jennifer, > > John W. Colby > www.ColbyConsulting.com From DWUTKA at Marlow.com Fri Feb 20 15:50:03 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Fri, 20 Feb 2009 15:50:03 -0600 Subject: [AccessD] Find First in an Array? In-Reply-To: <8475E883E0DF4EBB94B684E9525182D1@HAL9005> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com> <8475E883E0DF4EBB94B684E9525182D1@HAL9005> Message-ID: And this is where Global Classes come into play. In the case of your multi-lingual app, your data may not change very often, but it has the potential to change. That being the case, by putting the data in the BE, you don't have to update the FE for a simple data change. However, instead of constantly pulling the data across from the BE, you load the class when your app starts up, and the data is simply kept in memory. Pulling a few thousand records really isn't a big deal, as long as they aren't memo fields with megs of information. 2.5k records, with even 1k cay of information is only going to use 2.5 megs of RAM (roughly) In the case where you are storing a few bytes of info, it's negligent, especially on machines where 1 to 2 gig is standard RAM. Even in situations like a State table (TX, AL, FL, etc.). Sure, there are 50 states now, but putting lookup tables in the FE can lead to unnecessary mass updates. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Friday, February 20, 2009 2:06 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? " I am not going to get into the "this is a local table so it goes in the FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are for data (in my world)." In my case, where the 'data' is really static, and is needed by each user, wouldn't the design be better with the language tables in the FE? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From dwaters at usinternet.com Fri Feb 20 16:02:41 2009 From: dwaters at usinternet.com (Dan Waters) Date: Fri, 20 Feb 2009 16:02:41 -0600 Subject: [AccessD] OLEDB Connection In-Reply-To: <7E02B06E41E5404589EDDDA2BAA1C5A83ECA20@sanex101.nciinc.com> References: <7E02B06E41E5404589EDDDA2BAA1C5A83ECA20@sanex101.nciinc.com> Message-ID: <110193C7705F4986AA8E1998A1F07139@danwaters> Jim, Do you have "Microsoft Access Developer's Guide to SQL Server" or "Access 2002 Enterprise Developer's Handbook"? Both of these go into all the detail you need. Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Hewson, Jim Sent: Friday, February 20, 2009 3:05 PM To: Access Developers discussion and problem solving Subject: [AccessD] OLEDB Connection How do you connect to SQL Server from Access using OLEDB? I've used ODBC using a DSN but I don't have any idea how to use OLEDB. I did some research on the issue, but all I found was the connection string but nothing that told me what to do with it. Where do I put it? Is it better than using a DSN? Are there any maintenance issues when deploying to multiple machines on a LAN? Many Thanks in advance. Jim ############################################################################ #### If you have received this message in error, please contact the sender immediately and be aware that the use, copying, or dissemination of this information is prohibited. This email transmission contains information from NCI Information Systems, Inc. that may be considered privileged or confidential and is intended solely for the named recipient. ############################################################################ #### -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From JHewson at nciinc.com Fri Feb 20 16:07:58 2009 From: JHewson at nciinc.com (Hewson, Jim ) Date: Fri, 20 Feb 2009 16:07:58 -0600 Subject: [AccessD] OLEDB Connection In-Reply-To: <110193C7705F4986AA8E1998A1F07139@danwaters> References: <7E02B06E41E5404589EDDDA2BAA1C5A83ECA20@sanex101.nciinc.com> <110193C7705F4986AA8E1998A1F07139@danwaters> Message-ID: <7E02B06E41E5404589EDDDA2BAA1C5A83ECA22@sanex101.nciinc.com> Neither, but I'll have one of them before the weekend is over. Jim -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters Sent: Friday, February 20, 2009 4:03 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] OLEDB Connection Jim, Do you have "Microsoft Access Developer's Guide to SQL Server" or "Access 2002 Enterprise Developer's Handbook"? Both of these go into all the detail you need. Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Hewson, Jim Sent: Friday, February 20, 2009 3:05 PM To: Access Developers discussion and problem solving Subject: [AccessD] OLEDB Connection How do you connect to SQL Server from Access using OLEDB? I've used ODBC using a DSN but I don't have any idea how to use OLEDB. I did some research on the issue, but all I found was the connection string but nothing that told me what to do with it. Where do I put it? Is it better than using a DSN? Are there any maintenance issues when deploying to multiple machines on a LAN? Many Thanks in advance. Jim ######################################################################## #### #### If you have received this message in error, please contact the sender immediately and be aware that the use, copying, or dissemination of this information is prohibited. This email transmission contains information from NCI Information Systems, Inc. that may be considered privileged or confidential and is intended solely for the named recipient. ######################################################################## #### #### -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ################################################################################ If you have received this message in error, please contact the sender immediately and be aware that the use, copying, or dissemination of this information is prohibited. This email transmission contains information from NCI Information Systems, Inc. that may be considered privileged or confidential and is intended solely for the named recipient. ################################################################################ From jengross at gte.net Fri Feb 20 16:09:20 2009 From: jengross at gte.net (Jennifer Gross) Date: Fri, 20 Feb 2009 14:09:20 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: <499F23B3.9060304@colbyconsulting.com> Message-ID: <004c01c993a7$e17013d0$0301a8c0@trudy> If only I disagreed with you on bound forms and PKs, this would be the time to strike ;) Jennifer -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 20, 2009 1:42 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? ROTFL. Who is this "great John Colby" guy? Sounds like a magician or escape artist or something. When I think about "static data tables in the FE" (which isn't often!) I always thought of it in the "list table" context. Colors, gender, state, etc. My applications have so many list tables that it makes no sense TO ME to get into a "this one should, this one shouldn't" kind of thing. I just leave all such tables in the BE. I have enough things to think about without spending time on stuff like that. If the table doesn't change much but impacts performance I cache it. Otherwise I don't. I mean think about it, "list tables in the FE" are a cache of sorts, you are "caching" them in your FE on your local hard disk. My problem with the concept is simply spending time on evaluating the "content change" issue for each table. Obviously you can't cache (for example) a city table in the FE if the user can add cities on a daily basis. The state table OTOH probably never has records added. So you spend time trying to think about which should and which shouldn't. Get it wrong and the database starts to break. Basically any table in the FE simply cannot be updated by users. Bahhh. Data belongs in the BE, not on my desk making case by case decisions. Having said that, our good friend J?rgen Welz has an application where caching everything he could in the FE made perfect sense. His FEs had to work over very slow lines, over the internet IIRC and every byte of data transferred over the wire mattered. My clients OTOH don't do that so I just made a decision to spend my time on other things. I truly have never run into tables that were so FE specific and had ancillary reasons (sending out for translation) to have them in the FE. Anyway... glad I could light up your day. 8~) John W. Colby www.ColbyConsulting.com Jennifer Gross wrote: > Wow, to sway the great John Colby. And in a "religious" argument no > less. Now that made my day. > > Seriously smiling, > > Jennifer > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 20, 2009 1:05 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > > Now there is a reason that places the whole issue in a new light. > Language data is indeed specific to a particular FE in a way that most > other data is not. So perhaps for that specific task, a table > in the FE makes perfect since. I would STILL cache it but that is > another issue. > > Thanks Jennifer, > > John W. Colby > www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com No virus found in this incoming message. Checked by AVG - www.avg.com Version: 8.0.237 / Virus Database: 270.11.1/1961 - Release Date: 02/19/09 18:45:00 From Gustav at cactus.dk Fri Feb 20 16:52:26 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Fri, 20 Feb 2009 23:52:26 +0100 Subject: [AccessD] Find First in an Array? Message-ID: Hi Rocky The language data could be held in a separate database, a resource database, just like temp tables should be held in a separate (fourth) database. Microsoft knows how to handle this in Visual Studio and .Net where you can have languages, language versions (like French and Canadian French), and even company or business versions of such a language version. For example, a project may be labeled Project, Case, or Job in English UK for different businesses like construction, law, and media. Very flexible and at least backwards compatible with the frontend versions. /gustav >>> rockysmolin at bchacc.com 20-02-2009 21:05 >>> " I am not going to get into the "this is a local table so it goes in the FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are for data (in my world)." In my case, where the 'data' is really static, and is needed by each user, wouldn't the design be better with the language tables in the FE? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com From rockysmolin at bchacc.com Fri Feb 20 17:47:36 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Fri, 20 Feb 2009 15:47:36 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> Message-ID: <82745B5E88DE4DF2873544CB371BED1B@HAL9005> In the case of this app, however, there can be multiple back ends in different locations. So to get them updated I'd have to send out an update program. Or embed the updates in the next release of the front end. And check each back end that gets opened to see if the latest updates were in there. Actually, keeping the latest Language table in the front end and transferring it to the back end on opening each time would ensure that the back end was up to date. But at that point, with the language table in the front end anyway, wouldn't it make sense just to run the translations from the front end table? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Friday, February 20, 2009 1:50 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? And this is where Global Classes come into play. In the case of your multi-lingual app, your data may not change very often, but it has the potential to change. That being the case, by putting the data in the BE, you don't have to update the FE for a simple data change. However, instead of constantly pulling the data across from the BE, you load the class when your app starts up, and the data is simply kept in memory. Pulling a few thousand records really isn't a big deal, as long as they aren't memo fields with megs of information. 2.5k records, with even 1k cay of information is only going to use 2.5 megs of RAM (roughly) In the case where you are storing a few bytes of info, it's negligent, especially on machines where 1 to 2 gig is standard RAM. Even in situations like a State table (TX, AL, FL, etc.). Sure, there are 50 states now, but putting lookup tables in the FE can lead to unnecessary mass updates. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Friday, February 20, 2009 2:06 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? " I am not going to get into the "this is a local table so it goes in the FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are for data (in my world)." In my case, where the 'data' is really static, and is needed by each user, wouldn't the design be better with the language tables in the FE? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Fri Feb 20 17:48:23 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Sat, 21 Feb 2009 09:48:23 +1000 Subject: [AccessD] Find First in an Array? In-Reply-To: <499F1A38.50706@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <8475E883E0DF4EBB94B684E9525182D1@HAL9005>, <499F1A38.50706@colbyconsulting.com> Message-ID: <499FCDE7.940.42B5008@stuart.lexacorp.com.pg> Pot - Kettle - Black? Instead of relying on "accepted practice", maybe you should think about it. You are missing the whole point of putting the translation tables, menu tables etc in the FE. It's nothing to do with speed. This type of "program" data falls into a completely different category to the "operational" data in the BE. It is guaranteed to be static for the life of the FE and is almost certain to change with each new FE version. One of the primary advantages of splitting an Access application into FE/BE is the ease of updating the application without touching the "operational" data simply by dropping a new FE in the appropriate location(s). As soon as you put this "program data" into tbe BE, you have to jump through hoops to update your application. -- Stuart On 20 Feb 2009 at 16:01, jwcolby wrote: > Often a belief is created in the distant past when we make a decision of > some sort that sways the argument in one direction or the other. We often > then stop "thinking" about it and simply "believe" it. If enough time > passes, we may completely lose track of why we even believe something. > > In this case I would guess that those who place such tables in the FE have either never thought of > or considered caching it, or considered and rejected it. In those cases having it in the FE solves > a speed problem. Now these people have "solved" their speed problem and the "reason" fades into a > belief. > > I started using data caches some time ago and, while I never used data tables in the FE even before > that, having the cache simply makes the FE Data Tables concept a non-starter. In all other respects > (IMHO) having data in a BE is the accepted practice. Since my caches solve my speed issues I truly > do not need them in the FE. From cfoust at infostatsystems.com Fri Feb 20 17:53:47 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Fri, 20 Feb 2009 15:53:47 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: <499FCDE7.940.42B5008@stuart.lexacorp.com.pg> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <8475E883E0DF4EBB94B684E9525182D1@HAL9005>, <499F1A38.50706@colbyconsulting.com> <499FCDE7.940.42B5008@stuart.lexacorp.com.pg> Message-ID: Or putting the static information into xml files and including them with your application. That's basically what we do with similar information in .Net, stuff like units of measure and lookup codes. Chrlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Friday, February 20, 2009 3:48 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? Pot - Kettle - Black? Instead of relying on "accepted practice", maybe you should think about it. You are missing the whole point of putting the translation tables, menu tables etc in the FE. It's nothing to do with speed. This type of "program" data falls into a completely different category to the "operational" data in the BE. It is guaranteed to be static for the life of the FE and is almost certain to change with each new FE version. One of the primary advantages of splitting an Access application into FE/BE is the ease of updating the application without touching the "operational" data simply by dropping a new FE in the appropriate location(s). As soon as you put this "program data" into tbe BE, you have to jump through hoops to update your application. -- Stuart On 20 Feb 2009 at 16:01, jwcolby wrote: > Often a belief is created in the distant past when we make a decision > of some sort that sways the argument in one direction or the other. > We often then stop "thinking" about it and simply "believe" it. If > enough time passes, we may completely lose track of why we even believe something. > > In this case I would guess that those who place such tables in the FE > have either never thought of or considered caching it, or considered > and rejected it. In those cases having it in the FE solves a speed > problem. Now these people have "solved" their speed problem and the "reason" fades into a belief. > > I started using data caches some time ago and, while I never used data > tables in the FE even before that, having the cache simply makes the > FE Data Tables concept a non-starter. In all other respects > (IMHO) having data in a BE is the accepted practice. Since my caches > solve my speed issues I truly do not need them in the FE. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Fri Feb 20 18:22:59 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Fri, 20 Feb 2009 16:22:59 -0800 Subject: [AccessD] Find First in an Array? In-Reply-To: References: Message-ID: <8ACFE393E62B4324A681C46B1E043D6B@HAL9005> True. If I could get the users to put that language database somewhere where the program could find it. Have to keep in mind my users - low tech - don't know a folder from their elbow - have to have foolproof install or I'm on the phone trying to explain where the any key is. So, even though from a technical standpoint, you're right about separating the language db, from a Rolaids standpoint, I think I'd prefer to leave it in the front end. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Friday, February 20, 2009 2:52 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Find First in an Array? Hi Rocky The language data could be held in a separate database, a resource database, just like temp tables should be held in a separate (fourth) database. Microsoft knows how to handle this in Visual Studio and .Net where you can have languages, language versions (like French and Canadian French), and even company or business versions of such a language version. For example, a project may be labeled Project, Case, or Job in English UK for different businesses like construction, law, and media. Very flexible and at least backwards compatible with the frontend versions. /gustav >>> rockysmolin at bchacc.com 20-02-2009 21:05 >>> " I am not going to get into the "this is a local table so it goes in the FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are for data (in my world)." In my case, where the 'data' is really static, and is needed by each user, wouldn't the design be better with the language tables in the FE? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Fri Feb 20 23:35:13 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Sat, 21 Feb 2009 00:35:13 -0500 Subject: [AccessD] Complete rewrite (was: Find First in an Array?) References: Message-ID: <4240E4E85AD14BD4998846B3673F3C70@jislaptopdev> ...depends on the client ...they pay, I play ...I can sing and dance as well ...but only if they're deaf, blind, and rich :) William -------------------------------------------------- From: "Gustav Brock" Sent: Friday, February 20, 2009 9:16 AM To: Subject: [AccessD] Complete rewrite (was: Find First in an Array?) > Hi William > > I had the impression that you converted everything to web form > applications as fast as you could do the typing ...? > > Yesterday I played with the report viewer in asp.net and that is awesome - > works "just like that", ready for export to Excel or PDF - exactly what > clients request. > > /gustav > >>>> wdhindman at dejpolsystems.com 20-02-2009 15:01 >>> > ...lol ...I'm in the process of a complete rewrite of a major ap I did > more > than ten years ago ...in my case, your 50% estimate is low by a wide > margin > ...very wide! :) > > ...I'd still like to see you refactor Rocky's code as a class/collection > solution. > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Thursday, February 19, 2009 8:22 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] Find First in an Array? > >> Code reviews? OMG! >> >> But yea, best practices is a learned skill. I can't tell you the times >> (when I was learning to >> program) that I would do whatever just to make it work, rather than do it >> right. Then it was >> refactoring because... There are just so many times when "the right way" >> takes 10% longer than the >> easy way, but refactoring the easy way takes 50% longer than the right >> way. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Charlotte Foust wrote: >>> Then you MUST be an independent developer because if someone else >>> reviews your code, believe me, they look under the hood! >>> >>> Charlotte Foust >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo >>> Sent: Thursday, February 19, 2009 3:05 PM >>> To: 'Access Developers discussion and problem solving' >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> That's my motto, now. No one ever looks under the hood, and I always >>> judge my programs from the outside. Matters not how the data got on the >>> form as long as it happens 1) fast and 2) accurate. >>> >>> >>> Spot on, Rocky. >>> >>> Max > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From wdhindman at dejpolsystems.com Fri Feb 20 23:59:09 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Sat, 21 Feb 2009 00:59:09 -0500 Subject: [AccessD] Should I use an adp or an mdb References: <49A286ABF515E94A8505CD14DEB721700367E214@CPIEMAIL-EVS1.CPIQPC.NET> <4FB29335AD9446CAAF43D6D90C4BBA8D@danwaters> Message-ID: ...word is that Access 14 keeps the ribbon and digs it deeper into everything ...where I have a choice of tools, I'm converting to .net ...Access is still the best prototype tool available and some clients just are not ready to make the leap from something their power users can play around the edges with to one where they are essentially locked out ...but unless Access 14 does something radical to keep developers in the fold, its going to lose them/us/me forever ...I'm still on A2k3 and have refused a number of A2k7 inquiries. ...I never made the move to ado ...I tried it and it seemed slow and limited in comparison to dao against mdb be's which was all I used at the time ...and now that I'm playing with SQL Server be's I still much prefer using dao. ...OT a bit but anyone else noticing the increasing disappearance of Access sites and the lack of updates/changes to many long standing ones ...I spent a couple of days last week going through my favorites list and a surprising number of them have disappeared or not been updated in years now ...bad sign :( William -------------------------------------------------- From: "Dan Waters" Sent: Friday, February 20, 2009 3:28 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Should I use an adp or an mdb > That would be my guess - but that's really just based on MS's lack of > improvement for developers in Access 2007. They already have Visual > Studio > - should they continue to improve Access for developers? Or does Access > simply cannibalize SQL Server? > > And - what's the next version of Access going to look like? Will VBA be > more like VB.Net? Will there be more unprogrammable 'ribbons'? > > I bet someone on this list knows what's next for Access - but they just > can't say yet! > > Dan > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of > rusty.hammond at cpiqpc.com > Sent: Friday, February 20, 2009 2:16 PM > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Should I use an adp or an mdb > > Thanks for the reply. Since the SQL server is 2005 I have to use SQL > Server > Management Studio anyway. > >>From the search you used it sounds like most people prefer to go with the > mdb and with the release of SQL 2008, an Access 2007 adp can't make > changes > to the SQL objects either so you really can't count on being able to use > that feature consistently as time goes on. > > I really like the ability to change the connection from a test back end to > production very easily from an adp, but there's code out there to work > around that issue in an mdb. Seems like the advantages of an adp are > going > away. You think that's planned? > > > Thanks, > > Rusty > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters > Sent: Friday, February 20, 2009 10:58 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Should I use an adp or an mdb > > Use an mdb! The primary goal of using an adp was that it gave you the > ability to manage objects in the SQL Server database you are using from > within Access - an mdb can't do that. > > But, since SQL Server 2005 Express (free) was released, you can easily > manage those objects with SQL Server Express Management Studio (also > free). > This wasn't easily possible with MSDE. > > So, by using an Access mdb and SQL Server Express Management Studio you > can > get all the benefits of both. > > With an mdb, you can use either table links for use on a LAN, or you can > connect using OLEDB (like an adp would) for use on a WAN. Also in an mdb, > you can have temp tables in the FE. > > I did a search on 'Access mdb vs adp' and got many good sites. > > Dan > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of > rusty.hammond at cpiqpc.com > Sent: Friday, February 20, 2009 10:34 AM > To: accessd at databaseadvisors.com > Subject: [AccessD] Should I use an adp or an mdb > > I'm getting ready to create a new application with a SQL server backend. > I'm familiar enough with using SQL server but my question is, do I use an > Access Data Project or a regular mdb with links to the tables as a front > end. > > I've used both and would like to use the adp but I've heard rumblings that > they will be going away and don't want to rewrite this app in the near > future. I'm currently using Access 2003. > > Any suggestions? > > Rusty Hammond > IT Dept. - B-20 > CPI Qualified Plan Consultants, Inc. > (620) 793-8473 ext. 416 > rusty.hammond at cpiqpc.com > > > ********************************************************************** > WARNING: All e-mail sent to and from this address will be received, > scanned > or otherwise recorded by the CPI Qualified Plan Consultants, Inc. > corporate e-mail system and is subject to archival, monitoring or review > by, > and/or disclosure to, someone other than the recipient. > ********************************************************************** > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > ********************************************************************** > WARNING: All e-mail sent to and from this address will be received, > scanned or otherwise recorded by the CPI Qualified Plan Consultants, Inc. > corporate e-mail system and is subject to archival, monitoring or review > by, and/or disclosure to, someone other than the recipient. > ********************************************************************** > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From wdhindman at dejpolsystems.com Sat Feb 21 00:02:47 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Sat, 21 Feb 2009 01:02:47 -0500 Subject: [AccessD] Find First in an Array? References: <03DC01E6037D4BE3931BF41095651721@HAL9005><499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS><499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <5B493F7927FC46DFB7D6CD36323C26FB@XPS> Message-ID: <82279A012E8E45FC94A57A2A19FD0358@jislaptopdev> ...whoa! ...never ever considered that anyone would put such in the be ...the be is for "shared, dynamic data" not static data. William -------------------------------------------------- From: "Jim Dettman" Sent: Friday, February 20, 2009 3:55 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Find First in an Array? > > Ditto for table that drives menus... I would not put that in my BE > either. > Waste of network bandwidth. I believe if the data in the table will only > change when the app changes, then it belongs in the FE. > > Jim. > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: Friday, February 20, 2009 3:06 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > " I am not going to get into the "this is a local table so it goes in the > FE... oh damn, now I gotta go update the data in 5 different FEs". BEs > are > for data (in my world)." > > In my case, where the 'data' is really static, and is needed by each user, > wouldn't the design be better with the language tables in the FE? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 20, 2009 11:03 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Jim, > > > So if your not comfortable with it then just ignore it? Humm. > > I was making a general observation, which I believe is true. People tend > to > use the tools they know and are expert with, and only go outside of their > comfort zone when the tool fails them. I freely acknowledge that this is > true for me, and I am not accusing you of anything. > > > No, that is not correct. A seek on an open table won't cache the > entire recordset in of > itself. What might be sitting in JET's cache is a few buffers worth of > index pages and a couple of buffers worth of data pages, but I'd highly > doubt you'd have the entire thing unless you just went through every > single > record or used them a lot in comparison to everything else (JET's cache is > LRU based, so the pages could add up in the cache over time). > > By definition you have to have all of the data that is used for doing any > particular form. > > >Since a language table would be local to the FE, this would not be a pull > over the wire and it would be quite fast. > > It might be in your systems but it would not be in mine. I use a BE > because > that is where data goes. I personally do not have ANY local tables in the > FE except for temp tables for processes. I have many cases where there > are > different FEs for different purposes. I am not going to get into the > "this > is a local table so it goes in the FE... oh damn, now I gotta go update > the > data in 5 different FEs". BEs are for data (in my world). > > >It's quite possible to that the disk drive would still have the data in > its own cache, so you might not even end up doing a hard hit to the disk > at > all. > > Unlikely. The disk is also pulling forms, reports, running the browser as > the user goofs off, working on buffering music that the user is listening > to, and any of the other million things that go on in a Windows > environment. > The probability that the data for a form opened sometime previously would > still be in the disk buffer is pretty low I would guess. > > > But with the seek approach, you would not be tying up a chunk of > > memory > to be used for only one > purpose. > > I have to say that with Windows XP requiring 256 megs just for it to load, > and Vista pushing twice that just for it to load, I am not worrying about > caching my "seldom changing / frequently used" > data. If I take even a few hundred K to cache the language strings for > every form in the system, I will not lose any sleep at all for doing that. > I would in fact just cache the form's opened... > > > It is when considering that point that I would not choose to do an array > based approach either, which would be really simple to write as I could > use > GetRows() to dump the set into an array. Since the array would already be > sorted, I could even do a B-tree search on it rather then a sequential > one. > That might even beat out a class (hard to say with VBA) in terms of speed. > > Even if I used a Getrows() to dump into an array I would promptly move the > data to a collection and get rid of the array. > > I think that a lot of stuff goes into determining when to use what tools. > I > do not have a b-tree search algorithm for a generic array but even if I > did > (and assuming that it was faster, doubtful), a collection is USUALLY fast > enough that it wouldn't be worth the complexity of using such a tool, at > least not on a routine basis. > > I use collections because: > > 1) They are DEAD simple. The syntax is simple, the usage is simple. > 2) It is easy code to read and maintain. > 3) They can hold a ton of stuff easily. > 4) They can hold just about anything, from simple variables to objects and > class instances (which are objects). > 5) They are very fast. > > If you think about it, Access uses collections EVERYWHERE, and I want to > emphasize the EVERYWHERE. > Every single thing that you do with Access from forms (a collection of) to > controls on forms (a collection of), to properties of controls and forms > (a > collection of), to fields (a collection of), to querydefs (a collection > of) > etc etc ad nasium, are all stored internally to Access (and when loaded > into > memory) as collections. Notice that Microsoft doesn't store all these > items > in tables. > If tables are so blazing fast, if all the things that you think are true > (jet cache / disk cache > etc) really are true, why does Access store everything in collections > instead of just leaving it in records on a disk? Can you say programming > / > overhead nightmare? > > Microsoft has spent a lot of time and energy optimizing collections in > order > to make Access itself fast. IMHO, why would I NOT use what Microsoft uses > and has spent so much effort to make fast and easy to use? > > > John W. Colby > www.ColbyConsulting.com > > > Jim Dettman wrote: >> John, >> >> <> comfortable to us as individual programmers and to heck with ....>> >> >> So if your not comfortable with it then just ignore it? Humm. >> >> <> associated junk - indexes etc. My way caches exactly and only the >> strings for one specific language.>> >> >> No, that is not correct. A seek on an open table won't cache the >> entire recordset in of itself. What might be sitting in JET's cache >> is a few buffers worth of index pages and a couple of buffers worth of >> data pages, but I'd highly doubt you'd have the entire thing unless >> you just went through every single record or used them a lot in >> comparison to everything else (JET's cache is LRU based, so the pages >> could add up in the cache over time). >> >> But even if nothing is in the cache, a seek is based on an index and >> since JET indexes are B-tree based, you'd have your record within 2-3 >> disk hits at most, especially on a 2500 record table. Since a >> language table would be local to the FE, this would not be a pull over >> the wire and it would be quite fast. It's quite possible to that the >> disk drive would still have the data in its own cache, so you might >> not even end up doing a hard hit to the disk at all. >> >> But if the data does happen to be in the JET cache, then I doubt >> there would be much of a difference between the two methods. I think >> the class approach would still be a tad faster, but not by much. And >> let me be clear; it's not the class approach that I don't agree with >> but the point that as an application developer do I cache things in >> memory > on my own or not? >> >> It is when considering that point that I would not choose to do an >> array based approach either, which would be really simple to write as >> I could use >> GetRows() to dump the set into an array. Since the array would already >> be sorted, I could even do a B-tree search on it rather then a sequential > one. >> That might even beat out a class (hard to say with VBA) in terms of >> speed. >> >> But with the seek approach, you would not be tying up a chunk of >> memory to be used for only one purpose. >> >> From my viewpoint the seek approach is the best of both worlds, >> stuff gets cached if it is used a lot and if it is not, then it is not >> cached. In that case, the memory gets used for something productive >> rather then sitting there. And I would be really surprised if >> performance > wasn't acceptable. >> >> Jim. >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Friday, February 20, 2009 9:44 AM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? >> >> The bottom line is that to a large extent we all do what is >> comfortable to us as individual programmers and to heck with .... >> >> > You mentioned that JET always goes across the wire and that's not > true. >> If a page is in the >> local JET cache, then it won't. >> >> > But if every programmer were to approach application design with the >> "load it into memory" >> approach because it's fast, then very quickly you can find that the OS >> will start paging out to disk. So your really not in memory any more. >> >> Well... Hmmm... your way caches the entire recordset and all its >> associated junk - indexes etc. My way caches exactly and only the >> strings for one specific language. >> >> However your way (done on a form by form basis on demand) sounds like >> it could be flushing the jet cache as other processes run so that it >> may very well have to hit the disk again for the next form to load. >> At best it kind of sounds like "six of one, half a dozen of the >> other". >> >> > If I have an application that is a couple of hundred forms and user >> Jim D uses only one form, then that's a big waste. >> >> True, but if you cache the data as the form loads the first time then >> that goes away. I was proposing exactly that. Now you have the best >> of both worlds, you don't use time and resources until a form is >> actually loaded, but once it is loaded it can be loaded twice or a >> million times and always be fast. You should know from my JIT >> subforms I am all about doing stuff as / when needed. >> >> Notice that I am not caching constantly changing data, nor data that >> doesn't change but is rarely used, only data that rarely changes and >> is used constantly in the program. >> That "rarely changes / >> constantly used" is not a rare occasion in complex systems. To go to >> the disk dozens or hundreds or thousands of times a day to get the >> same data over and over IMHO is just silly, when I can just cache it >> and be done. It is even sillier when caching it is a trivial >> programming exercise. It is sillier yet when caching the data >> significantly speeds up the program. >> >> I learned a long time ago to organize my program into classes, each >> class performs a systemic task. >> I learned that when a set of data is in constant use in the program >> (and form translation fits that bill) then I would build a class >> system to cache it and the program always works faster. The "cache >> class system" looks very similar from data set to data set. It >> doesn't take me long to set it up because I have done it so often. >> >> So that is what I do. I do understand that it is only fast / >> efficient for me because I use classes all day every day, but so can >> any Access programmer as my lectures are intended to show. >> >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Jim Dettman wrote: >>> John, >>> >>> I posted a couple of comments yesterday to you and Drew, which >>> still haven't shown up on the list, but I'll answer the question you >>> just asked with "It depends on how big the collection is". >>> >>> What I wrote yesterday is that I would use a global recordset >>> variable, thus avoiding opening/closing the recordset repeatedly and I'd > use seek. >>> >>> You mentioned that JET always goes across the wire and that's not >>> true. >>> If a page is in the local JET cache, then it won't. >>> >>> But here that is really not an issue because a language translation >> table >>> is certainly going to be part of the front end, so the table will be >> local. >>> It's not going to change unless the app changes. >>> >>> Rocky has been talking about pulling 2500 records; if all that is >>> pulled into memory, that is a fair sized chunk. I'd much rather let >>> the system >> use >>> that memory as it sees fit rather then tying it up with one specific > task. >>> If I have an application that is a couple of hundred forms and user >>> Jim D uses only one form, then that's a big waste. Of course you >>> could mitigate that somewhat by only loading the translation when the >>> form loads and for the specific language as you mentioned. >>> >>> But if every programmer were to approach application design with >>> the >> "load >>> it into memory" approach because it's fast, then very quickly you can >>> find that the OS will start paging out to disk. So your really not >>> in memory >> any >>> more. >>> >>> That's why I think pulling something into memory like this is a waste. >>> >>> FWIW, >>> Jim. > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From wdhindman at dejpolsystems.com Sat Feb 21 00:07:00 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Sat, 21 Feb 2009 01:07:00 -0500 Subject: [AccessD] Find First in an Array? References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS> <499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <499F1A38.50706@colbyconsulting.com> Message-ID: <4A3B454C93CC4282BB74DCEFC210BF6C@jislaptopdev> ...yikes! ...the JIT tab war ...then the bound/unbound war ...and now you want to start another one? ...static data goes in the fe ...the cache has better uses ...imnsho :) William -------------------------------------------------- From: "jwcolby" Sent: Friday, February 20, 2009 4:01 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Find First in an Array? > Rocky, > > I was not addressing anything other than the "assumption" that was > expressed that certain tables > "would be in the FE". If you as the owner / developer want them there > that is all that needs to be > said. > > In MY systems I never place such tables in the FE. If I were to > "purchase" or other be placed in > charge of your systems, I would move the tables to the BE. > > Remember though that I DO cache my "rarely modified / often used" data so > it does not matter that it > is on in a BE on the server. It will cross the wire only once per form > per user. Thereafter it > will almost certainly be as fast or faster than a local FE table. > > To address your question: > > > In my case, where the 'data' is really static, and is needed by each > > user, wouldn't the design be > better with the language tables in the FE? > > This is one of those things that is purely opinion, and often near > religious in conviction, and I do > not want to start a religious war. Some people wholeheartedly believe in > placing such things in the > FE. I wholeheartedly believe otherwise. > > Often a belief is created in the distant past when we make a decision of > some sort that sways the > argument in one direction or the other. We often then stop "thinking" > about it and simply "believe" > it. If enough time passes, we may completely lose track of why we even > believe something. > > In this case I would guess that those who place such tables in the FE have > either never thought of > or considered caching it, or considered and rejected it. In those cases > having it in the FE solves > a speed problem. Now these people have "solved" their speed problem and > the "reason" fades into a > belief. > > I started using data caches some time ago and, while I never used data > tables in the FE even before > that, having the cache simply makes the FE Data Tables concept a > non-starter. In all other respects > (IMHO) having data in a BE is the accepted practice. Since my caches > solve my speed issues I truly > do not need them in the FE. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: >> " I am not going to get into the "this is a local table so it goes in the >> FE... oh damn, now I gotta go update the data in 5 different FEs". BEs >> are >> for data (in my world)." >> >> In my case, where the 'data' is really static, and is needed by each >> user, >> wouldn't the design be better with the language tables in the FE? >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Sat Feb 21 00:20:01 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 21 Feb 2009 01:20:01 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <4A3B454C93CC4282BB74DCEFC210BF6C@jislaptopdev> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS> <499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <499F1A38.50706@colbyconsulting.com> <4A3B454C93CC4282BB74DCEFC210BF6C@jislaptopdev> Message-ID: <499F9D11.4050406@colbyconsulting.com> LOL. Nothing like a religious war to get the blood pumping. ;) John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...yikes! ...the JIT tab war ...then the bound/unbound war ...and now you > want to start another one? > ...static data goes in the fe ...the cache has better uses ...imnsho :) > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Friday, February 20, 2009 4:01 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] Find First in an Array? > >> Rocky, >> >> I was not addressing anything other than the "assumption" that was >> expressed that certain tables >> "would be in the FE". If you as the owner / developer want them there >> that is all that needs to be >> said. >> >> In MY systems I never place such tables in the FE. If I were to >> "purchase" or other be placed in >> charge of your systems, I would move the tables to the BE. >> >> Remember though that I DO cache my "rarely modified / often used" data so >> it does not matter that it >> is on in a BE on the server. It will cross the wire only once per form >> per user. Thereafter it >> will almost certainly be as fast or faster than a local FE table. >> >> To address your question: >> >>> In my case, where the 'data' is really static, and is needed by each >>> user, wouldn't the design be >> better with the language tables in the FE? >> >> This is one of those things that is purely opinion, and often near >> religious in conviction, and I do >> not want to start a religious war. Some people wholeheartedly believe in >> placing such things in the >> FE. I wholeheartedly believe otherwise. >> >> Often a belief is created in the distant past when we make a decision of >> some sort that sways the >> argument in one direction or the other. We often then stop "thinking" >> about it and simply "believe" >> it. If enough time passes, we may completely lose track of why we even >> believe something. >> >> In this case I would guess that those who place such tables in the FE have >> either never thought of >> or considered caching it, or considered and rejected it. In those cases >> having it in the FE solves >> a speed problem. Now these people have "solved" their speed problem and >> the "reason" fades into a >> belief. >> >> I started using data caches some time ago and, while I never used data >> tables in the FE even before >> that, having the cache simply makes the FE Data Tables concept a >> non-starter. In all other respects >> (IMHO) having data in a BE is the accepted practice. Since my caches >> solve my speed issues I truly >> do not need them in the FE. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Rocky Smolin at Beach Access Software wrote: >>> " I am not going to get into the "this is a local table so it goes in the >>> FE... oh damn, now I gotta go update the data in 5 different FEs". BEs >>> are >>> for data (in my world)." >>> >>> In my case, where the 'data' is really static, and is needed by each >>> user, >>> wouldn't the design be better with the language tables in the FE? >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From jwcolby at colbyconsulting.com Sat Feb 21 00:40:32 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 21 Feb 2009 01:40:32 -0500 Subject: [AccessD] Rocky's translation tool finished. Message-ID: <499FA1E0.10007@colbyconsulting.com> Roughly 1.5 hours from receipt of email to back out the door to Rocky Two classes, clsXlateFrm and clsXlateSupervisor and a simple module for initialization. Each form loads the form class from its open event. Translation happens then and there. Strings cached to a collection for that form and will load from the cache each time. Understand this is just the basics, no fancy error handling or interface around the translation. The important thing for me is to have the code for the system in a known place to add functionality (additional properties such as tool tip etc.) should there ever be a need. Neatly organized, easy to understand, fast, efficient, easy to program. '--------------------------------------------------------------------------------------- ' Module : clsXlateFrm ' Author : jwcolby ' Date : 2/21/2009 ' Purpose : This class loads all of the phrase strings into a collection for a single form ' the first time the form loads, keyed on control name. It ignores control ' names not in the language table. ' ' It then uses those strings in the collection to translate the form. ' The second and subsequent times the form loads, the class already has the ' strings in the collection so the collection load does not happen again (cached) ' and the translation happens from the collection. '--------------------------------------------------------------------------------------- Const cstrModule As String = "clsXlateFrm" Option Compare Database Option Explicit Private mcolPhrase As Collection Private mstrName As String Private mstrLanguageFldName As String Private Sub Class_Initialize() Set mcolPhrase = New Collection End Sub Private Sub Class_Terminate() Set mcolPhrase = Nothing End Sub '--------------------------------------------------------------------------------------- ' Procedure : mInit ' Author : jwcolby ' Date : 2/21/2009 ' Purpose : Called the first time the form loads. Loads the translation phrases from the table ' and translates the form. '--------------------------------------------------------------------------------------- ' Function mInit(lfrm As Form, lstrLanguageFldName As String) mstrName = lfrm.Name mstrLanguageFldName = lstrLanguageFldName ' 'If nothing in the collection then load the collection ' If Not mcolPhrase.Count Then mLoadColPhrase End If ' 'Now translate the form ' mXlateFrm lfrm End Function Property Get pName() As String pName = mstrName End Property Function colPhrase() As Collection Set colPhrase = mcolPhrase End Function '--------------------------------------------------------------------------------------- ' Procedure : mXlateFrm ' Author : jwcolby ' Date : 2/21/2009 ' Purpose : This function trnaslates the form. By the time this function is called the ' collection already contains all of the translation strings keyed by the ' control name. All it has to do is attempt to index into the collection ' using each control name. If there is something in the collection for that ' control name then the string is returned from the collection and placed in ' the control property. ' ' if nothing there, the error is ignored and the next control is tried. '--------------------------------------------------------------------------------------- ' Function mXlateFrm(frm As Form) Dim ctl As Control On Error GoTo Err_mXlateFrm ' 'Check every control on the form 'Expand this case to add new control types. For Each ctl In frm.Controls Select Case ctl.ControlType Case acLabel ' 'Try to get a translation phrase from the collection 'Any errors will be ignored ctl.Caption = mcolPhrase(ctl.Name) Case acCommandButton ctl.Caption = mcolPhrase(ctl.Name) Case Else End Select Next ctl Exit_mXlateFrm: On Error Resume Next Exit Function Err_mXlateFrm: Select Case Err Case 0 '.insert Errors you wish to ignore here Resume Next Case 5 'Control name not in translation table, ignore the error Resume Next Case Else '.All other errors will trap Beep MsgBox Err.Number & ":" & Err.Description Resume Exit_mXlateFrm End Select Resume 0 '.FOR TROUBLESHOOTING End Function '--------------------------------------------------------------------------------------- ' Procedure : mLoadColPhrase ' Author : jwcolby ' Date : 2/21/2009 ' Purpose : Loads the translation phrase strings out of the table for one form ' Builds a query dynamically based on the form name and the translation ' language field name '--------------------------------------------------------------------------------------- ' Private Function mLoadColPhrase() Dim db As DAO.Database Dim rst As DAO.Recordset Dim strSQL As String On Error GoTo Err_mLoadColPhrase ' 'Dynamically build the query to pull the translation strings for a specific form and language ' strSQL = "SELECT fldLanguageForm, fldLanguageControl, " & mstrLanguageFldName & " " & _ "FROM [tblLanguage-Controls] " & _ "WHERE ((([tblLanguage-Controls].fldLanguageForm)='" & mstrName & "'));" Set db = CurrentDb Set rst = db.OpenRecordset(strSQL) With rst While Not .EOF ' 'Drop all phrases found into the phrase collection 'Keyed on the control name fldLanguageControl ' mcolPhrase.Add .Fields(mstrLanguageFldName).Value, .Fields("fldLanguageControl").Value .MoveNext Wend End With Exit_mLoadColPhrase: On Error Resume Next Exit Function Err_mLoadColPhrase: Select Case Err Case 0 '.insert Errors you wish to ignore here Resume Next Case Else '.All other errors will trap Beep MsgBox Err.Number & ":" & Err.Description Resume Exit_mLoadColPhrase End Select Resume 0 '.FOR TROUBLESHOOTING End Function Option Compare Database Option Explicit Private mcolClsXlateFrm As Collection Private Sub Class_Initialize() Set mcolClsXlateFrm = New Collection End Sub Private Sub Class_Terminate() Set mcolClsXlateFrm = Nothing End Sub '--------------------------------------------------------------------------------------- ' Procedure : mTranslateFrm ' Author : jwcolby ' Date : 2/21/2009 ' Purpose : Performs the translation for one form passed in. '--------------------------------------------------------------------------------------- ' Function mTranslateFrm(lfrm As Form, lstrLanguageFldName As String) Dim lclsXlateFrm As clsXlateFrm On Error GoTo Err_mTranslateFrm On Error Resume Next ' 'Try to get an instance of the clsXlateFrm from the collection for this form ' Set lclsXlateFrm = mcolClsXlateFrm(lfrm.Name) If Err Then ' 'If that fials then this is the first time so perform the initialize ' Set lclsXlateFrm = New clsXlateFrm ' 'Now that we have an instance for this form perform the load and translation ' lclsXlateFrm.mInit lfrm, lstrLanguageFldName ' 'And save the instance to the collection for the next time ' mcolClsXlateFrm.Add lclsXlateFrm, lfrm.Name Else ' 'We have already loaded this form once so perform the translation ' lclsXlateFrm.mXlateFrm lfrm End If Exit_mTranslateFrm: On Error Resume Next Exit Function Err_mTranslateFrm: Select Case Err Case 0 '.insert Errors you wish to ignore here Resume Next Case Else '.All other errors will trap Beep MsgBox Err.Number & ":" & Err.Description Resume Exit_mTranslateFrm End Select Resume 0 '.FOR TROUBLESHOOTING End Function ' 'Return a pointer to colClsXlateFrm ' Property Get colClsXlateFrm() As Collection Set colClsXlateFrm = mcolClsXlateFrm End Property '--------------------------------------------------------------------------------------- ' Module : basXlate ' Author : jwcolby ' Date : 2/21/2009 ' Purpose : Functions to initialize, terminate and return a pointer to clsXlateSupervisor ' as well as a global variable for the translation string field name. '--------------------------------------------------------------------------------------- Const cstrModule As String = "basXlate" Option Compare Database Option Explicit Private mclsXlateSupervisor As clsXlateSupervisor ' 'Set this variable to the name of the field holding the translation language strings ' 'fldLanguageEnglish 'fldLanguageChineseComplex 'etc ' Public mstrLanguageFldName As String Function mXlateSupervisorInit() If mclsXlateSupervisor Is Nothing Then Set mclsXlateSupervisor = New clsXlateSupervisor mstrLanguageFldName = "fldLanguageSpanish" 'Default language to English End If Set mXlateSupervisorInit = mclsXlateSupervisor End Function Function mXlateSupervisorTerm() Set mclsXlateSupervisor = Nothing End Function Function cXS() As clsXlateSupervisor Set cXS = mXlateSupervisorInit() End Function -- John W. Colby www.ColbyConsulting.com From wdhindman at dejpolsystems.com Sat Feb 21 00:41:38 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Sat, 21 Feb 2009 01:41:38 -0500 Subject: [AccessD] Conversion Time: Access to VB.Net (cross-posted) References: <278A1782E6FD426A82984651EAE0E1F5@danwaters> Message-ID: <77BD20FE07CE4F4988C3F9019928B0D8@jislaptopdev> Dan ...first time out you will have a significant learning curve ...plus outlays of money and time for tools and resources necessary to dupe what Access does by its lonesome ...time to build your own code library ...time to learn which web resources know what they are doing and which don't (too damn many of those) ...and looking for a replacement for AccessD which there isn't even as much as dba-vb tries (maybe you can help) ...and you will spend a lot more time getting a prototype to work. ...depends on how much of that cost you can absorb and how much you want to charge the client for ...my rough guess would be a minimum of 2.5 x the same app in Access ...but that's me and my apps and there are a LOT of things you could run into that will take you days to figure out ...things that are givens in Access or simply don't exist in the .net world. ...but then you learn classes and inheritance and you start to figure out that .net has one heck of a lot of more stuff already built in than access if you just know how to find and use it ...and then you find yourself doing things you never thought possible ...and your next .net app is a lot easier and quicker to produce ...and a lot more fun. ...I'm working in access again now because that's what the client wants ...I find it ...um ...stodgy ...for lack of a better word ...what it does, it does pretty well and I've built a nice gui over the years so it doesn't look like access ...but if you can get over that first hump, you'll find that .net and visual studio are awesome by comparison. ...btw ...don't just assume that vb.net is the right tool for you ...its not vba and the syntax is deceptively different ...I spent a lot of time in vb.net before I swallowed hard and started playing with c#.net because, among other reasons, the quality and quantity of .net code resources in c# is much higher than it is in vb ...if you take the work, sign up for the dba-vb list ...gustav and shamil are already there waiting. ...hth William -------------------------------------------------- From: "Dan Waters" Sent: Friday, February 20, 2009 2:54 PM To: "'Access Developers discussion and problem solving'" ; "'Discussion concerning Visual Basic and related programming issues.'" Subject: [AccessD] Conversion Time: Access to VB.Net (cross-posted) > Does anyone have any rough estimates on converting an Access FE to a > VB.Net > FE? I know this depends on many factors, but a client has asked me to > provide a rough estimate today. I have just begun learning this, so I > don't > know yet. > > Any thoughts? > > Thanks! > Dan > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Sat Feb 21 00:47:16 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 21 Feb 2009 01:47:16 -0500 Subject: [AccessD] Rocky's translation tool finished. In-Reply-To: <499FA1E0.10007@colbyconsulting.com> References: <499FA1E0.10007@colbyconsulting.com> Message-ID: <499FA374.1090106@colbyconsulting.com> Sorry, I forgot. The code in the form to perform the translation: Option Compare Database Option Explicit Private Sub Form_Open(Cancel As Integer) ' 'Call the mTranslateFrm method of the translation supervisor and 'pass in a reference to this form, and a language field name ' cXS.mTranslateFrm Me, mstrLanguageFldName End Sub John W. Colby www.ColbyConsulting.com From wdhindman at dejpolsystems.com Sat Feb 21 00:56:04 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Sat, 21 Feb 2009 01:56:04 -0500 Subject: [AccessD] Rocky's translation tool finished. References: <499FA1E0.10007@colbyconsulting.com> Message-ID: ...thank you ...another toy to play with ...just what I needed :) William -------------------------------------------------- From: "jwcolby" Sent: Saturday, February 21, 2009 1:40 AM To: "Access Developers discussion and problem solving" Subject: [AccessD] Rocky's translation tool finished. > Roughly 1.5 hours from receipt of email to back out the door to Rocky > > Two classes, clsXlateFrm and clsXlateSupervisor and a simple module for > initialization. Each form > loads the form class from its open event. Translation happens then and > there. Strings cached to a > collection for that form and will load from the cache each time. > > Understand this is just the basics, no fancy error handling or interface > around the translation. > The important thing for me is to have the code for the system in a known > place to add functionality > (additional properties such as tool tip etc.) should there ever be a need. > Neatly organized, easy > to understand, fast, efficient, easy to program. > > '--------------------------------------------------------------------------------------- > ' Module : clsXlateFrm > ' Author : jwcolby > ' Date : 2/21/2009 > ' Purpose : This class loads all of the phrase strings into a collection > for a single form > ' the first time the form loads, keyed on control name. It > ignores control > ' names not in the language table. > ' > ' It then uses those strings in the collection to translate > the form. > ' The second and subsequent times the form loads, the class > already has the > ' strings in the collection so the collection load does not > happen again (cached) > ' and the translation happens from the collection. > '--------------------------------------------------------------------------------------- > Const cstrModule As String = "clsXlateFrm" > Option Compare Database > Option Explicit > > Private mcolPhrase As Collection > Private mstrName As String > Private mstrLanguageFldName As String > > Private Sub Class_Initialize() > Set mcolPhrase = New Collection > End Sub > > Private Sub Class_Terminate() > Set mcolPhrase = Nothing > End Sub > > '--------------------------------------------------------------------------------------- > ' Procedure : mInit > ' Author : jwcolby > ' Date : 2/21/2009 > ' Purpose : Called the first time the form loads. Loads the translation > phrases from the table > ' and translates the form. > '--------------------------------------------------------------------------------------- > ' > Function mInit(lfrm As Form, lstrLanguageFldName As String) > mstrName = lfrm.Name > mstrLanguageFldName = lstrLanguageFldName > ' > 'If nothing in the collection then load the collection > ' > If Not mcolPhrase.Count Then > mLoadColPhrase > End If > ' > 'Now translate the form > ' > mXlateFrm lfrm > End Function > > Property Get pName() As String > pName = mstrName > End Property > > Function colPhrase() As Collection > Set colPhrase = mcolPhrase > End Function > '--------------------------------------------------------------------------------------- > ' Procedure : mXlateFrm > ' Author : jwcolby > ' Date : 2/21/2009 > ' Purpose : This function trnaslates the form. By the time this > function is called the > ' collection already contains all of the translation strings > keyed by the > ' control name. All it has to do is attempt to index into > the collection > ' using each control name. If there is something in the > collection for that > ' control name then the string is returned from the > collection and placed in > ' the control property. > ' > ' if nothing there, the error is ignored and the next > control is tried. > '--------------------------------------------------------------------------------------- > ' > Function mXlateFrm(frm As Form) > Dim ctl As Control > On Error GoTo Err_mXlateFrm > > ' > 'Check every control on the form > 'Expand this case to add new control types. > For Each ctl In frm.Controls > Select Case ctl.ControlType > Case acLabel > ' > 'Try to get a translation phrase from the collection > 'Any errors will be ignored > ctl.Caption = mcolPhrase(ctl.Name) > Case acCommandButton > ctl.Caption = mcolPhrase(ctl.Name) > Case Else > End Select > Next ctl > > Exit_mXlateFrm: > On Error Resume Next > Exit Function > Err_mXlateFrm: > Select Case Err > Case 0 '.insert Errors you wish to ignore here > Resume Next > Case 5 'Control name not in translation table, ignore the error > Resume Next > Case Else '.All other errors will trap > Beep > MsgBox Err.Number & ":" & Err.Description > Resume Exit_mXlateFrm > End Select > Resume 0 '.FOR TROUBLESHOOTING > End Function > '--------------------------------------------------------------------------------------- > ' Procedure : mLoadColPhrase > ' Author : jwcolby > ' Date : 2/21/2009 > ' Purpose : Loads the translation phrase strings out of the table for > one form > ' Builds a query dynamically based on the form name and the > translation > ' language field name > '--------------------------------------------------------------------------------------- > ' > Private Function mLoadColPhrase() > Dim db As DAO.Database > Dim rst As DAO.Recordset > Dim strSQL As String > > On Error GoTo Err_mLoadColPhrase > > ' > 'Dynamically build the query to pull the translation strings for a > specific form and language > ' > strSQL = "SELECT fldLanguageForm, fldLanguageControl, " & > mstrLanguageFldName & " " & _ > "FROM [tblLanguage-Controls] " & _ > "WHERE ((([tblLanguage-Controls].fldLanguageForm)='" & > mstrName & "'));" > Set db = CurrentDb > Set rst = db.OpenRecordset(strSQL) > With rst > While Not .EOF > ' > 'Drop all phrases found into the phrase collection > 'Keyed on the control name fldLanguageControl > ' > mcolPhrase.Add .Fields(mstrLanguageFldName).Value, > .Fields("fldLanguageControl").Value > .MoveNext > Wend > End With > > Exit_mLoadColPhrase: > On Error Resume Next > Exit Function > Err_mLoadColPhrase: > Select Case Err > Case 0 '.insert Errors you wish to ignore here > Resume Next > Case Else '.All other errors will trap > Beep > MsgBox Err.Number & ":" & Err.Description > Resume Exit_mLoadColPhrase > End Select > Resume 0 '.FOR TROUBLESHOOTING > End Function > > Option Compare Database > Option Explicit > > Private mcolClsXlateFrm As Collection > > Private Sub Class_Initialize() > Set mcolClsXlateFrm = New Collection > End Sub > > Private Sub Class_Terminate() > Set mcolClsXlateFrm = Nothing > End Sub > > '--------------------------------------------------------------------------------------- > ' Procedure : mTranslateFrm > ' Author : jwcolby > ' Date : 2/21/2009 > ' Purpose : Performs the translation for one form passed in. > '--------------------------------------------------------------------------------------- > ' > Function mTranslateFrm(lfrm As Form, lstrLanguageFldName As String) > Dim lclsXlateFrm As clsXlateFrm > On Error GoTo Err_mTranslateFrm > > On Error Resume Next > ' > 'Try to get an instance of the clsXlateFrm from the collection for > this form > ' > Set lclsXlateFrm = mcolClsXlateFrm(lfrm.Name) > If Err Then > ' > 'If that fials then this is the first time so perform the > initialize > ' > Set lclsXlateFrm = New clsXlateFrm > ' > 'Now that we have an instance for this form perform the load and > translation > ' > lclsXlateFrm.mInit lfrm, lstrLanguageFldName > ' > 'And save the instance to the collection for the next time > ' > mcolClsXlateFrm.Add lclsXlateFrm, lfrm.Name > Else > ' > 'We have already loaded this form once so perform the translation > ' > lclsXlateFrm.mXlateFrm lfrm > End If > > Exit_mTranslateFrm: > On Error Resume Next > Exit Function > Err_mTranslateFrm: > Select Case Err > Case 0 '.insert Errors you wish to ignore here > Resume Next > Case Else '.All other errors will trap > Beep > MsgBox Err.Number & ":" & Err.Description > Resume Exit_mTranslateFrm > End Select > Resume 0 '.FOR TROUBLESHOOTING > End Function > ' > 'Return a pointer to colClsXlateFrm > ' > Property Get colClsXlateFrm() As Collection > Set colClsXlateFrm = mcolClsXlateFrm > End Property > > > '--------------------------------------------------------------------------------------- > ' Module : basXlate > ' Author : jwcolby > ' Date : 2/21/2009 > ' Purpose : Functions to initialize, terminate and return a pointer to > clsXlateSupervisor > ' as well as a global variable for the translation string > field name. > '--------------------------------------------------------------------------------------- > Const cstrModule As String = "basXlate" > Option Compare Database > Option Explicit > > Private mclsXlateSupervisor As clsXlateSupervisor > ' > 'Set this variable to the name of the field holding the translation > language strings > ' > 'fldLanguageEnglish > 'fldLanguageChineseComplex > 'etc > ' > Public mstrLanguageFldName As String > > Function mXlateSupervisorInit() > If mclsXlateSupervisor Is Nothing Then > Set mclsXlateSupervisor = New clsXlateSupervisor > mstrLanguageFldName = "fldLanguageSpanish" 'Default language to > English > End If > Set mXlateSupervisorInit = mclsXlateSupervisor > End Function > Function mXlateSupervisorTerm() > Set mclsXlateSupervisor = Nothing > End Function > Function cXS() As clsXlateSupervisor > Set cXS = mXlateSupervisorInit() > End Function > > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Sat Feb 21 01:10:27 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 21 Feb 2009 02:10:27 -0500 Subject: [AccessD] Rocky's translation tool finished. In-Reply-To: References: <499FA1E0.10007@colbyconsulting.com> Message-ID: <499FA8E3.7020402@colbyconsulting.com> We will have to see if Rocky will let us post his database example forms & tables. John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...thank you ...another toy to play with ...just what I needed :) > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Saturday, February 21, 2009 1:40 AM > To: "Access Developers discussion and problem solving" > > Subject: [AccessD] Rocky's translation tool finished. > >> Roughly 1.5 hours from receipt of email to back out the door to Rocky >> >> Two classes, clsXlateFrm and clsXlateSupervisor and a simple module for >> initialization. Each form >> loads the form class from its open event. Translation happens then and >> there. Strings cached to a >> collection for that form and will load from the cache each time. >> >> Understand this is just the basics, no fancy error handling or interface >> around the translation. >> The important thing for me is to have the code for the system in a known >> place to add functionality >> (additional properties such as tool tip etc.) should there ever be a need. >> Neatly organized, easy >> to understand, fast, efficient, easy to program. >> >> '--------------------------------------------------------------------------------------- >> ' Module : clsXlateFrm >> ' Author : jwcolby >> ' Date : 2/21/2009 >> ' Purpose : This class loads all of the phrase strings into a collection >> for a single form >> ' the first time the form loads, keyed on control name. It >> ignores control >> ' names not in the language table. >> ' >> ' It then uses those strings in the collection to translate >> the form. >> ' The second and subsequent times the form loads, the class >> already has the >> ' strings in the collection so the collection load does not >> happen again (cached) >> ' and the translation happens from the collection. >> '--------------------------------------------------------------------------------------- >> Const cstrModule As String = "clsXlateFrm" >> Option Compare Database >> Option Explicit >> >> Private mcolPhrase As Collection >> Private mstrName As String >> Private mstrLanguageFldName As String >> >> Private Sub Class_Initialize() >> Set mcolPhrase = New Collection >> End Sub >> >> Private Sub Class_Terminate() >> Set mcolPhrase = Nothing >> End Sub >> >> '--------------------------------------------------------------------------------------- >> ' Procedure : mInit >> ' Author : jwcolby >> ' Date : 2/21/2009 >> ' Purpose : Called the first time the form loads. Loads the translation >> phrases from the table >> ' and translates the form. >> '--------------------------------------------------------------------------------------- >> ' >> Function mInit(lfrm As Form, lstrLanguageFldName As String) >> mstrName = lfrm.Name >> mstrLanguageFldName = lstrLanguageFldName >> ' >> 'If nothing in the collection then load the collection >> ' >> If Not mcolPhrase.Count Then >> mLoadColPhrase >> End If >> ' >> 'Now translate the form >> ' >> mXlateFrm lfrm >> End Function >> >> Property Get pName() As String >> pName = mstrName >> End Property >> >> Function colPhrase() As Collection >> Set colPhrase = mcolPhrase >> End Function >> '--------------------------------------------------------------------------------------- >> ' Procedure : mXlateFrm >> ' Author : jwcolby >> ' Date : 2/21/2009 >> ' Purpose : This function trnaslates the form. By the time this >> function is called the >> ' collection already contains all of the translation strings >> keyed by the >> ' control name. All it has to do is attempt to index into >> the collection >> ' using each control name. If there is something in the >> collection for that >> ' control name then the string is returned from the >> collection and placed in >> ' the control property. >> ' >> ' if nothing there, the error is ignored and the next >> control is tried. >> '--------------------------------------------------------------------------------------- >> ' >> Function mXlateFrm(frm As Form) >> Dim ctl As Control >> On Error GoTo Err_mXlateFrm >> >> ' >> 'Check every control on the form >> 'Expand this case to add new control types. >> For Each ctl In frm.Controls >> Select Case ctl.ControlType >> Case acLabel >> ' >> 'Try to get a translation phrase from the collection >> 'Any errors will be ignored >> ctl.Caption = mcolPhrase(ctl.Name) >> Case acCommandButton >> ctl.Caption = mcolPhrase(ctl.Name) >> Case Else >> End Select >> Next ctl >> >> Exit_mXlateFrm: >> On Error Resume Next >> Exit Function >> Err_mXlateFrm: >> Select Case Err >> Case 0 '.insert Errors you wish to ignore here >> Resume Next >> Case 5 'Control name not in translation table, ignore the error >> Resume Next >> Case Else '.All other errors will trap >> Beep >> MsgBox Err.Number & ":" & Err.Description >> Resume Exit_mXlateFrm >> End Select >> Resume 0 '.FOR TROUBLESHOOTING >> End Function >> '--------------------------------------------------------------------------------------- >> ' Procedure : mLoadColPhrase >> ' Author : jwcolby >> ' Date : 2/21/2009 >> ' Purpose : Loads the translation phrase strings out of the table for >> one form >> ' Builds a query dynamically based on the form name and the >> translation >> ' language field name >> '--------------------------------------------------------------------------------------- >> ' >> Private Function mLoadColPhrase() >> Dim db As DAO.Database >> Dim rst As DAO.Recordset >> Dim strSQL As String >> >> On Error GoTo Err_mLoadColPhrase >> >> ' >> 'Dynamically build the query to pull the translation strings for a >> specific form and language >> ' >> strSQL = "SELECT fldLanguageForm, fldLanguageControl, " & >> mstrLanguageFldName & " " & _ >> "FROM [tblLanguage-Controls] " & _ >> "WHERE ((([tblLanguage-Controls].fldLanguageForm)='" & >> mstrName & "'));" >> Set db = CurrentDb >> Set rst = db.OpenRecordset(strSQL) >> With rst >> While Not .EOF >> ' >> 'Drop all phrases found into the phrase collection >> 'Keyed on the control name fldLanguageControl >> ' >> mcolPhrase.Add .Fields(mstrLanguageFldName).Value, >> .Fields("fldLanguageControl").Value >> .MoveNext >> Wend >> End With >> >> Exit_mLoadColPhrase: >> On Error Resume Next >> Exit Function >> Err_mLoadColPhrase: >> Select Case Err >> Case 0 '.insert Errors you wish to ignore here >> Resume Next >> Case Else '.All other errors will trap >> Beep >> MsgBox Err.Number & ":" & Err.Description >> Resume Exit_mLoadColPhrase >> End Select >> Resume 0 '.FOR TROUBLESHOOTING >> End Function >> >> Option Compare Database >> Option Explicit >> >> Private mcolClsXlateFrm As Collection >> >> Private Sub Class_Initialize() >> Set mcolClsXlateFrm = New Collection >> End Sub >> >> Private Sub Class_Terminate() >> Set mcolClsXlateFrm = Nothing >> End Sub >> >> '--------------------------------------------------------------------------------------- >> ' Procedure : mTranslateFrm >> ' Author : jwcolby >> ' Date : 2/21/2009 >> ' Purpose : Performs the translation for one form passed in. >> '--------------------------------------------------------------------------------------- >> ' >> Function mTranslateFrm(lfrm As Form, lstrLanguageFldName As String) >> Dim lclsXlateFrm As clsXlateFrm >> On Error GoTo Err_mTranslateFrm >> >> On Error Resume Next >> ' >> 'Try to get an instance of the clsXlateFrm from the collection for >> this form >> ' >> Set lclsXlateFrm = mcolClsXlateFrm(lfrm.Name) >> If Err Then >> ' >> 'If that fials then this is the first time so perform the >> initialize >> ' >> Set lclsXlateFrm = New clsXlateFrm >> ' >> 'Now that we have an instance for this form perform the load and >> translation >> ' >> lclsXlateFrm.mInit lfrm, lstrLanguageFldName >> ' >> 'And save the instance to the collection for the next time >> ' >> mcolClsXlateFrm.Add lclsXlateFrm, lfrm.Name >> Else >> ' >> 'We have already loaded this form once so perform the translation >> ' >> lclsXlateFrm.mXlateFrm lfrm >> End If >> >> Exit_mTranslateFrm: >> On Error Resume Next >> Exit Function >> Err_mTranslateFrm: >> Select Case Err >> Case 0 '.insert Errors you wish to ignore here >> Resume Next >> Case Else '.All other errors will trap >> Beep >> MsgBox Err.Number & ":" & Err.Description >> Resume Exit_mTranslateFrm >> End Select >> Resume 0 '.FOR TROUBLESHOOTING >> End Function >> ' >> 'Return a pointer to colClsXlateFrm >> ' >> Property Get colClsXlateFrm() As Collection >> Set colClsXlateFrm = mcolClsXlateFrm >> End Property >> >> >> '--------------------------------------------------------------------------------------- >> ' Module : basXlate >> ' Author : jwcolby >> ' Date : 2/21/2009 >> ' Purpose : Functions to initialize, terminate and return a pointer to >> clsXlateSupervisor >> ' as well as a global variable for the translation string >> field name. >> '--------------------------------------------------------------------------------------- >> Const cstrModule As String = "basXlate" >> Option Compare Database >> Option Explicit >> >> Private mclsXlateSupervisor As clsXlateSupervisor >> ' >> 'Set this variable to the name of the field holding the translation >> language strings >> ' >> 'fldLanguageEnglish >> 'fldLanguageChineseComplex >> 'etc >> ' >> Public mstrLanguageFldName As String >> >> Function mXlateSupervisorInit() >> If mclsXlateSupervisor Is Nothing Then >> Set mclsXlateSupervisor = New clsXlateSupervisor >> mstrLanguageFldName = "fldLanguageSpanish" 'Default language to >> English >> End If >> Set mXlateSupervisorInit = mclsXlateSupervisor >> End Function >> Function mXlateSupervisorTerm() >> Set mclsXlateSupervisor = Nothing >> End Function >> Function cXS() As clsXlateSupervisor >> Set cXS = mXlateSupervisorInit() >> End Function >> >> >> -- >> John W. Colby >> www.ColbyConsulting.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From wdhindman at dejpolsystems.com Sat Feb 21 02:00:57 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Sat, 21 Feb 2009 03:00:57 -0500 Subject: [AccessD] Color listbox rows References: <8786a4c00902201158n1e28b8c1m26a34e365bf9e6d9@mail.gmail.com> Message-ID: ...not the listbox ...too many problems ...but I have used his field list which has a check box that you can flag ...but then you have to distribute the dll and reg it on the client ...currently I just sub form a continuous list and condition code it William -------------------------------------------------- From: "David McAfee" Sent: Friday, February 20, 2009 2:58 PM To: "Access Developers discussion and problem solving" ; "access-l" Subject: [AccessD] Color listbox rows > Has anyone ever improved, or even got a working example of Stephen > Leban's ListBoxEnhanced sample? > > http://www.lebans.com/listboxenhanced.htm > > I have an existing app in place but the powers that be currently would > like to flag or color certain rows of a couple of listboxes if they > are past due. > > I know that I can recreate this with a subform such as Candace Tripp's > sample provides. > > I was just wondering if anyone has actually used Leban's sample (or > found another work around). > > Thanks, > David McAfee > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From max.wanadoo at gmail.com Sat Feb 21 03:19:07 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sat, 21 Feb 2009 09:19:07 -0000 Subject: [AccessD] Should I use an adp or an mdb In-Reply-To: References: <49A286ABF515E94A8505CD14DEB721700367E214@CPIEMAIL-EVS1.CPIQPC.NET> <4FB29335AD9446CAAF43D6D90C4BBA8D@danwaters> Message-ID: <499fc70e.1c07d00a.27b0.fffff949@mx.google.com> William said.. >...I'm still on A2k3 and have refused a number of A2k7 inquiries. >...I never made the move to ado ...I tried it and it seemed slow and limited in comparison to dao against mdb be's which was all I used at the time >...and now that I'm playing with SQL Server be's I still much prefer using dao. Couldn't agree more. A2K7 is horrible but I persevere with it on my laptop because it forces me to stumble my way around it but even previously simple tasks when developing forms requires me to keep switching back and forth between different ribbons just to get the option I want. With regards to ADO, it lacks the properties visibility that you get from DAO. For that reason I'm out! Max From Gustav at cactus.dk Sat Feb 21 03:23:33 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Sat, 21 Feb 2009 10:23:33 +0100 Subject: [AccessD] Conversion Time: Access to VB.Net (cross-posted) Message-ID: Hi Dan Nearly my words, except that I haven't spent a single Euro on neither tools nor resources. I was prepared to for reporting but the report viewer of VS2008 is great. Also, I've found that VS and .Net can easily keep you busy 24 hours a day should you feel so, so no need for further items to investigate. I too moved to C#. After 15 years with Access Basic and VBA I felt that a challenge would be fine. MS does a good job to provide code examples in both VB.NET and C# but, if you look around for tips and code, C# is the rule and VB.NET is the exception. It tool me half a year to feel that my feet was on the ground. Now I love it. Visual Studio is really a star of MS. /gustav >>> wdhindman at dejpolsystems.com 21-02-2009 07:41 >>> Dan ...first time out you will have a significant learning curve ...plus outlays of money and time for tools and resources necessary to dupe what Access does by its lonesome ...time to build your own code library ...time to learn which web resources know what they are doing and which don't (too damn many of those) ...and looking for a replacement for AccessD which there isn't even as much as dba-vb tries (maybe you can help) ...and you will spend a lot more time getting a prototype to work. ...depends on how much of that cost you can absorb and how much you want to charge the client for ...my rough guess would be a minimum of 2.5 x the same app in Access ...but that's me and my apps and there are a LOT of things you could run into that will take you days to figure out ...things that are givens in Access or simply don't exist in the .net world. ...but then you learn classes and inheritance and you start to figure out that .net has one heck of a lot of more stuff already built in than access if you just know how to find and use it ...and then you find yourself doing things you never thought possible ...and your next .net app is a lot easier and quicker to produce ...and a lot more fun. ...I'm working in access again now because that's what the client wants ...I find it ...um ...stodgy ...for lack of a better word ...what it does, it does pretty well and I've built a nice gui over the years so it doesn't look like access ...but if you can get over that first hump, you'll find that .net and visual studio are awesome by comparison. ...btw ...don't just assume that vb.net is the right tool for you ...its not vba and the syntax is deceptively different ...I spent a lot of time in vb.net before I swallowed hard and started playing with c#.net because, among other reasons, the quality and quantity of .net code resources in c# is much higher than it is in vb ...if you take the work, sign up for the dba-vb list ...gustav and shamil are already there waiting. ...hth William -------------------------------------------------- From: "Dan Waters" Sent: Friday, February 20, 2009 2:54 PM To: "'Access Developers discussion and problem solving'" ; "'Discussion concerning Visual Basic and related programming issues.'" Subject: [AccessD] Conversion Time: Access to VB.Net (cross-posted) > Does anyone have any rough estimates on converting an Access FE to a VB.Net > FE? I know this depends on many factors, but a client has asked me to > provide a rough estimate today. I have just begun learning this, so I don't > know yet. > > Any thoughts? > > Thanks! > Dan From max.wanadoo at gmail.com Sat Feb 21 06:47:19 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sat, 21 Feb 2009 12:47:19 -0000 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <82745B5E88DE4DF2873544CB371BED1B@HAL9005> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <82745B5E88DE4DF2873544CB371BED1B@HAL9005> Message-ID: <499ff7dc.0a04d00a.7b19.593f@mx.google.com> Hello Rocky, Well, I have read with interest all the to-ing and fro-ing from the various contributors. So, I laid me down laterally and started thinking laterally. The solution came to be sometime around my 3rd drink. I consolidated my thoughts in bed. When I woke this morning, I tested them out with a sample mdb using English, French and German. All work beautifully. Add as many languages as you want. The solution I have has the following benefits: Instantaneous No variables No Collections No Classes (although the solution could be said to be upper class No Arrays No Memory overheads Forms shown the language required every time with no overheads. Unlimited Languages Should I post the sample mdb to you? Max Ps. Bet your intrigued - you will love this solution. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 20 February 2009 23:48 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? In the case of this app, however, there can be multiple back ends in different locations. So to get them updated I'd have to send out an update program. Or embed the updates in the next release of the front end. And check each back end that gets opened to see if the latest updates were in there. Actually, keeping the latest Language table in the front end and transferring it to the back end on opening each time would ensure that the back end was up to date. But at that point, with the language table in the front end anyway, wouldn't it make sense just to run the translations from the front end table? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Friday, February 20, 2009 1:50 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? And this is where Global Classes come into play. In the case of your multi-lingual app, your data may not change very often, but it has the potential to change. That being the case, by putting the data in the BE, you don't have to update the FE for a simple data change. However, instead of constantly pulling the data across from the BE, you load the class when your app starts up, and the data is simply kept in memory. Pulling a few thousand records really isn't a big deal, as long as they aren't memo fields with megs of information. 2.5k records, with even 1k cay of information is only going to use 2.5 megs of RAM (roughly) In the case where you are storing a few bytes of info, it's negligent, especially on machines where 1 to 2 gig is standard RAM. Even in situations like a State table (TX, AL, FL, etc.). Sure, there are 50 states now, but putting lookup tables in the FE can lead to unnecessary mass updates. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Friday, February 20, 2009 2:06 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? " I am not going to get into the "this is a local table so it goes in the FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are for data (in my world)." In my case, where the 'data' is really static, and is needed by each user, wouldn't the design be better with the language tables in the FE? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Sat Feb 21 07:00:34 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Sat, 21 Feb 2009 14:00:34 +0100 Subject: [AccessD] Find First in an Array? - The Solution Message-ID: Hi Max How about sharing the recipe for those hallucinating(!) drinks? /gustav >>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> Hello Rocky, Well, I have read with interest all the to-ing and fro-ing from the various contributors. So, I laid me down laterally and started thinking laterally. The solution came to be sometime around my 3rd drink. I consolidated my thoughts in bed. When I woke this morning, I tested them out with a sample mdb using English, French and German. All work beautifully. Add as many languages as you want. The solution I have has the following benefits: Instantaneous No variables No Collections No Classes (although the solution could be said to be upper class No Arrays No Memory overheads Forms shown the language required every time with no overheads. Unlimited Languages Should I post the sample mdb to you? Max Ps. Bet your intrigued - you will love this solution. From rockysmolin at bchacc.com Sat Feb 21 09:02:52 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Sat, 21 Feb 2009 07:02:52 -0800 Subject: [AccessD] Rocky's translation tool finished. In-Reply-To: <499FA8E3.7020402@colbyconsulting.com> References: <499FA1E0.10007@colbyconsulting.com> <499FA8E3.7020402@colbyconsulting.com> Message-ID: <2DBD546553394D80B8C38542FE787B0A@HAL9005> John: Thanks so much for your efforts. I'm just hitting the deck here so I haven't tried it but I have no objection to posting it to AccessD - it's the least I could do to contribute to the class class. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 20, 2009 11:10 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Rocky's translation tool finished. We will have to see if Rocky will let us post his database example forms & tables. John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...thank you ...another toy to play with ...just what I needed :) > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Saturday, February 21, 2009 1:40 AM > To: "Access Developers discussion and problem solving" > > Subject: [AccessD] Rocky's translation tool finished. > >> Roughly 1.5 hours from receipt of email to back out the door to Rocky >> >> Two classes, clsXlateFrm and clsXlateSupervisor and a simple module >> for initialization. Each form loads the form class from its open >> event. Translation happens then and there. Strings cached to a >> collection for that form and will load from the cache each time. >> >> Understand this is just the basics, no fancy error handling or >> interface around the translation. >> The important thing for me is to have the code for the system in a >> known place to add functionality (additional properties such as tool >> tip etc.) should there ever be a need. >> Neatly organized, easy >> to understand, fast, efficient, easy to program. >> >> '--------------------------------------------------------------------------- ------------ >> ' Module : clsXlateFrm >> ' Author : jwcolby >> ' Date : 2/21/2009 >> ' Purpose : This class loads all of the phrase strings into a collection >> for a single form >> ' the first time the form loads, keyed on control name. It >> ignores control >> ' names not in the language table. >> ' >> ' It then uses those strings in the collection to translate >> the form. >> ' The second and subsequent times the form loads, the class >> already has the >> ' strings in the collection so the collection load does not >> happen again (cached) >> ' and the translation happens from the collection. >> '-------------------------------------------------------------------- >> ------------------- Const cstrModule As String = "clsXlateFrm" >> Option Compare Database >> Option Explicit >> >> Private mcolPhrase As Collection >> Private mstrName As String >> Private mstrLanguageFldName As String >> >> Private Sub Class_Initialize() >> Set mcolPhrase = New Collection >> End Sub >> >> Private Sub Class_Terminate() >> Set mcolPhrase = Nothing >> End Sub >> >> '-------------------------------------------------------------------- >> ------------------- >> ' Procedure : mInit >> ' Author : jwcolby >> ' Date : 2/21/2009 >> ' Purpose : Called the first time the form loads. Loads the translation >> phrases from the table >> ' and translates the form. >> '-------------------------------------------------------------------- >> ------------------- >> ' >> Function mInit(lfrm As Form, lstrLanguageFldName As String) >> mstrName = lfrm.Name >> mstrLanguageFldName = lstrLanguageFldName >> ' >> 'If nothing in the collection then load the collection >> ' >> If Not mcolPhrase.Count Then >> mLoadColPhrase >> End If >> ' >> 'Now translate the form >> ' >> mXlateFrm lfrm >> End Function >> >> Property Get pName() As String >> pName = mstrName >> End Property >> >> Function colPhrase() As Collection >> Set colPhrase = mcolPhrase >> End Function >> '-------------------------------------------------------------------- >> ------------------- >> ' Procedure : mXlateFrm >> ' Author : jwcolby >> ' Date : 2/21/2009 >> ' Purpose : This function trnaslates the form. By the time this >> function is called the >> ' collection already contains all of the translation strings >> keyed by the >> ' control name. All it has to do is attempt to index into >> the collection >> ' using each control name. If there is something in the >> collection for that >> ' control name then the string is returned from the >> collection and placed in >> ' the control property. >> ' >> ' if nothing there, the error is ignored and the next >> control is tried. >> '-------------------------------------------------------------------- >> ------------------- >> ' >> Function mXlateFrm(frm As Form) >> Dim ctl As Control >> On Error GoTo Err_mXlateFrm >> >> ' >> 'Check every control on the form >> 'Expand this case to add new control types. >> For Each ctl In frm.Controls >> Select Case ctl.ControlType >> Case acLabel >> ' >> 'Try to get a translation phrase from the collection >> 'Any errors will be ignored >> ctl.Caption = mcolPhrase(ctl.Name) >> Case acCommandButton >> ctl.Caption = mcolPhrase(ctl.Name) >> Case Else >> End Select >> Next ctl >> >> Exit_mXlateFrm: >> On Error Resume Next >> Exit Function >> Err_mXlateFrm: >> Select Case Err >> Case 0 '.insert Errors you wish to ignore here >> Resume Next >> Case 5 'Control name not in translation table, ignore the error >> Resume Next >> Case Else '.All other errors will trap >> Beep >> MsgBox Err.Number & ":" & Err.Description >> Resume Exit_mXlateFrm >> End Select >> Resume 0 '.FOR TROUBLESHOOTING >> End Function >> '-------------------------------------------------------------------- >> ------------------- >> ' Procedure : mLoadColPhrase >> ' Author : jwcolby >> ' Date : 2/21/2009 >> ' Purpose : Loads the translation phrase strings out of the table for >> one form >> ' Builds a query dynamically based on the form name and the >> translation >> ' language field name >> '-------------------------------------------------------------------- >> ------------------- >> ' >> Private Function mLoadColPhrase() >> Dim db As DAO.Database >> Dim rst As DAO.Recordset >> Dim strSQL As String >> >> On Error GoTo Err_mLoadColPhrase >> >> ' >> 'Dynamically build the query to pull the translation strings for >> a specific form and language >> ' >> strSQL = "SELECT fldLanguageForm, fldLanguageControl, " & >> mstrLanguageFldName & " " & _ >> "FROM [tblLanguage-Controls] " & _ >> "WHERE ((([tblLanguage-Controls].fldLanguageForm)='" >> & mstrName & "'));" >> Set db = CurrentDb >> Set rst = db.OpenRecordset(strSQL) >> With rst >> While Not .EOF >> ' >> 'Drop all phrases found into the phrase collection >> 'Keyed on the control name fldLanguageControl >> ' >> mcolPhrase.Add .Fields(mstrLanguageFldName).Value, >> .Fields("fldLanguageControl").Value >> .MoveNext >> Wend >> End With >> >> Exit_mLoadColPhrase: >> On Error Resume Next >> Exit Function >> Err_mLoadColPhrase: >> Select Case Err >> Case 0 '.insert Errors you wish to ignore here >> Resume Next >> Case Else '.All other errors will trap >> Beep >> MsgBox Err.Number & ":" & Err.Description >> Resume Exit_mLoadColPhrase >> End Select >> Resume 0 '.FOR TROUBLESHOOTING >> End Function >> >> Option Compare Database >> Option Explicit >> >> Private mcolClsXlateFrm As Collection >> >> Private Sub Class_Initialize() >> Set mcolClsXlateFrm = New Collection End Sub >> >> Private Sub Class_Terminate() >> Set mcolClsXlateFrm = Nothing >> End Sub >> >> '-------------------------------------------------------------------- >> ------------------- >> ' Procedure : mTranslateFrm >> ' Author : jwcolby >> ' Date : 2/21/2009 >> ' Purpose : Performs the translation for one form passed in. >> '-------------------------------------------------------------------- >> ------------------- >> ' >> Function mTranslateFrm(lfrm As Form, lstrLanguageFldName As String) >> Dim lclsXlateFrm As clsXlateFrm On Error GoTo Err_mTranslateFrm >> >> On Error Resume Next >> ' >> 'Try to get an instance of the clsXlateFrm from the collection >> for this form >> ' >> Set lclsXlateFrm = mcolClsXlateFrm(lfrm.Name) >> If Err Then >> ' >> 'If that fials then this is the first time so perform the >> initialize >> ' >> Set lclsXlateFrm = New clsXlateFrm >> ' >> 'Now that we have an instance for this form perform the load >> and translation >> ' >> lclsXlateFrm.mInit lfrm, lstrLanguageFldName >> ' >> 'And save the instance to the collection for the next time >> ' >> mcolClsXlateFrm.Add lclsXlateFrm, lfrm.Name >> Else >> ' >> 'We have already loaded this form once so perform the translation >> ' >> lclsXlateFrm.mXlateFrm lfrm >> End If >> >> Exit_mTranslateFrm: >> On Error Resume Next >> Exit Function >> Err_mTranslateFrm: >> Select Case Err >> Case 0 '.insert Errors you wish to ignore here >> Resume Next >> Case Else '.All other errors will trap >> Beep >> MsgBox Err.Number & ":" & Err.Description >> Resume Exit_mTranslateFrm >> End Select >> Resume 0 '.FOR TROUBLESHOOTING >> End Function >> ' >> 'Return a pointer to colClsXlateFrm >> ' >> Property Get colClsXlateFrm() As Collection >> Set colClsXlateFrm = mcolClsXlateFrm End Property >> >> >> '--------------------------------------------------------------------------- ------------ >> ' Module : basXlate >> ' Author : jwcolby >> ' Date : 2/21/2009 >> ' Purpose : Functions to initialize, terminate and return a pointer to >> clsXlateSupervisor >> ' as well as a global variable for the translation string >> field name. >> '--------------------------------------------------------------------------- ------------ >> Const cstrModule As String = "basXlate" >> Option Compare Database >> Option Explicit >> >> Private mclsXlateSupervisor As clsXlateSupervisor >> ' >> 'Set this variable to the name of the field holding the translation >> language strings >> ' >> 'fldLanguageEnglish >> 'fldLanguageChineseComplex >> 'etc >> ' >> Public mstrLanguageFldName As String >> >> Function mXlateSupervisorInit() >> If mclsXlateSupervisor Is Nothing Then >> Set mclsXlateSupervisor = New clsXlateSupervisor >> mstrLanguageFldName = "fldLanguageSpanish" 'Default language to >> English >> End If >> Set mXlateSupervisorInit = mclsXlateSupervisor >> End Function >> Function mXlateSupervisorTerm() >> Set mclsXlateSupervisor = Nothing >> End Function >> Function cXS() As clsXlateSupervisor >> Set cXS = mXlateSupervisorInit() >> End Function >> >> >> -- >> John W. Colby >> www.ColbyConsulting.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Sat Feb 21 09:03:42 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Sat, 21 Feb 2009 07:03:42 -0800 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <499ff7dc.0a04d00a.7b19.593f@mx.google.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <82745B5E88DE4DF2873544CB371BED1B@HAL9005> <499ff7dc.0a04d00a.7b19.593f@mx.google.com> Message-ID: <9348165EACB84473BF8DFF66D7F51274@HAL9005> YES! Post it to the list. I'll drop it into Colby's demo and set a switch so it can go back and forth. In fact, that demo could be the template for making comparisons among all the solutions. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Saturday, February 21, 2009 4:47 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Hello Rocky, Well, I have read with interest all the to-ing and fro-ing from the various contributors. So, I laid me down laterally and started thinking laterally. The solution came to be sometime around my 3rd drink. I consolidated my thoughts in bed. When I woke this morning, I tested them out with a sample mdb using English, French and German. All work beautifully. Add as many languages as you want. The solution I have has the following benefits: Instantaneous No variables No Collections No Classes (although the solution could be said to be upper class No Arrays No Memory overheads Forms shown the language required every time with no overheads. Unlimited Languages Should I post the sample mdb to you? Max Ps. Bet your intrigued - you will love this solution. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 20 February 2009 23:48 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? In the case of this app, however, there can be multiple back ends in different locations. So to get them updated I'd have to send out an update program. Or embed the updates in the next release of the front end. And check each back end that gets opened to see if the latest updates were in there. Actually, keeping the latest Language table in the front end and transferring it to the back end on opening each time would ensure that the back end was up to date. But at that point, with the language table in the front end anyway, wouldn't it make sense just to run the translations from the front end table? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Friday, February 20, 2009 1:50 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? And this is where Global Classes come into play. In the case of your multi-lingual app, your data may not change very often, but it has the potential to change. That being the case, by putting the data in the BE, you don't have to update the FE for a simple data change. However, instead of constantly pulling the data across from the BE, you load the class when your app starts up, and the data is simply kept in memory. Pulling a few thousand records really isn't a big deal, as long as they aren't memo fields with megs of information. 2.5k records, with even 1k cay of information is only going to use 2.5 megs of RAM (roughly) In the case where you are storing a few bytes of info, it's negligent, especially on machines where 1 to 2 gig is standard RAM. Even in situations like a State table (TX, AL, FL, etc.). Sure, there are 50 states now, but putting lookup tables in the FE can lead to unnecessary mass updates. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Friday, February 20, 2009 2:06 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? " I am not going to get into the "this is a local table so it goes in the FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are for data (in my world)." In my case, where the 'data' is really static, and is needed by each user, wouldn't the design be better with the language tables in the FE? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Sat Feb 21 09:10:37 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Sat, 21 Feb 2009 16:10:37 +0100 Subject: [AccessD] Find First in an Array? - The Solution Message-ID: Hi Max Very good! You have point here. It's a bit like Drew's suggestion but with a clever twist which I will leave for others to figure out (I have seen the sample db from Max). I can, however, think of one minor reason to not use your approach. Who said you don't get bright ideas while sleeping? /gustav >>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> Hello Rocky, Well, I have read with interest all the to-ing and fro-ing from the various contributors. So, I laid me down laterally and started thinking laterally. The solution came to be sometime around my 3rd drink. I consolidated my thoughts in bed. When I woke this morning, I tested them out with a sample mdb using English, French and German. All work beautifully. Add as many languages as you want. The solution I have has the following benefits: Instantaneous No variables No Collections No Classes (although the solution could be said to be upper class No Arrays No Memory overheads Forms shown the language required every time with no overheads. Unlimited Languages Should I post the sample mdb to you? Max Ps. Bet your intrigued - you will love this solution. From max.wanadoo at gmail.com Sat Feb 21 09:57:39 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sat, 21 Feb 2009 15:57:39 -0000 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: References: Message-ID: <49a02478.0506d00a.3335.ffff8ee5@mx.google.com> ha! who said I was sleeping? Dream Programming is what I do....Wake up with the answer most of the time (well "a" answer if not "the" answer) Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 21 February 2009 15:11 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Find First in an Array? - The Solution Hi Max Very good! You have point here. It's a bit like Drew's suggestion but with a clever twist which I will leave for others to figure out (I have seen the sample db from Max). I can, however, think of one minor reason to not use your approach. Who said you don't get bright ideas while sleeping? /gustav >>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> Hello Rocky, Well, I have read with interest all the to-ing and fro-ing from the various contributors. So, I laid me down laterally and started thinking laterally. The solution came to be sometime around my 3rd drink. I consolidated my thoughts in bed. When I woke this morning, I tested them out with a sample mdb using English, French and German. All work beautifully. Add as many languages as you want. The solution I have has the following benefits: Instantaneous No variables No Collections No Classes (although the solution could be said to be upper class No Arrays No Memory overheads Forms shown the language required every time with no overheads. Unlimited Languages Should I post the sample mdb to you? Max Ps. Bet your intrigued - you will love this solution. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sat Feb 21 09:59:54 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sat, 21 Feb 2009 15:59:54 -0000 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <9348165EACB84473BF8DFF66D7F51274@HAL9005> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <82745B5E88DE4DF2873544CB371BED1B@HAL9005> <499ff7dc.0a04d00a.7b19.593f@mx.google.com> <9348165EACB84473BF8DFF66D7F51274@HAL9005> Message-ID: <49a02500.0508d00a.4eb0.ffffbe67@mx.google.com> There is no comparison. Nothing else comes even close. Can't post to list as it is an mdb -I will send to your email. Off to pub now. Hope you like it. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 21 February 2009 15:04 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution YES! Post it to the list. I'll drop it into Colby's demo and set a switch so it can go back and forth. In fact, that demo could be the template for making comparisons among all the solutions. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Saturday, February 21, 2009 4:47 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Hello Rocky, Well, I have read with interest all the to-ing and fro-ing from the various contributors. So, I laid me down laterally and started thinking laterally. The solution came to be sometime around my 3rd drink. I consolidated my thoughts in bed. When I woke this morning, I tested them out with a sample mdb using English, French and German. All work beautifully. Add as many languages as you want. The solution I have has the following benefits: Instantaneous No variables No Collections No Classes (although the solution could be said to be upper class No Arrays No Memory overheads Forms shown the language required every time with no overheads. Unlimited Languages Should I post the sample mdb to you? Max Ps. Bet your intrigued - you will love this solution. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 20 February 2009 23:48 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? In the case of this app, however, there can be multiple back ends in different locations. So to get them updated I'd have to send out an update program. Or embed the updates in the next release of the front end. And check each back end that gets opened to see if the latest updates were in there. Actually, keeping the latest Language table in the front end and transferring it to the back end on opening each time would ensure that the back end was up to date. But at that point, with the language table in the front end anyway, wouldn't it make sense just to run the translations from the front end table? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Friday, February 20, 2009 1:50 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? And this is where Global Classes come into play. In the case of your multi-lingual app, your data may not change very often, but it has the potential to change. That being the case, by putting the data in the BE, you don't have to update the FE for a simple data change. However, instead of constantly pulling the data across from the BE, you load the class when your app starts up, and the data is simply kept in memory. Pulling a few thousand records really isn't a big deal, as long as they aren't memo fields with megs of information. 2.5k records, with even 1k cay of information is only going to use 2.5 megs of RAM (roughly) In the case where you are storing a few bytes of info, it's negligent, especially on machines where 1 to 2 gig is standard RAM. Even in situations like a State table (TX, AL, FL, etc.). Sure, there are 50 states now, but putting lookup tables in the FE can lead to unnecessary mass updates. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Friday, February 20, 2009 2:06 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? " I am not going to get into the "this is a local table so it goes in the FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are for data (in my world)." In my case, where the 'data' is really static, and is needed by each user, wouldn't the design be better with the language tables in the FE? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sat Feb 21 10:03:23 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sat, 21 Feb 2009 16:03:23 -0000 Subject: [AccessD] Rocky's translation tool finished. In-Reply-To: <2DBD546553394D80B8C38542FE787B0A@HAL9005> References: <499FA1E0.10007@colbyconsulting.com> <499FA8E3.7020402@colbyconsulting.com> <2DBD546553394D80B8C38542FE787B0A@HAL9005> Message-ID: <49a025d1.0a1ad00a.4ea1.6027@mx.google.com> Yes but is it First Class or Working Class? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 21 February 2009 15:03 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Rocky's translation tool finished. John: Thanks so much for your efforts. I'm just hitting the deck here so I haven't tried it but I have no objection to posting it to AccessD - it's the least I could do to contribute to the class class. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 20, 2009 11:10 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Rocky's translation tool finished. We will have to see if Rocky will let us post his database example forms & tables. John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...thank you ...another toy to play with ...just what I needed :) > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Saturday, February 21, 2009 1:40 AM > To: "Access Developers discussion and problem solving" > > Subject: [AccessD] Rocky's translation tool finished. > >> Roughly 1.5 hours from receipt of email to back out the door to Rocky >> >> Two classes, clsXlateFrm and clsXlateSupervisor and a simple module >> for initialization. Each form loads the form class from its open >> event. Translation happens then and there. Strings cached to a >> collection for that form and will load from the cache each time. >> >> Understand this is just the basics, no fancy error handling or >> interface around the translation. >> The important thing for me is to have the code for the system in a >> known place to add functionality (additional properties such as tool >> tip etc.) should there ever be a need. >> Neatly organized, easy >> to understand, fast, efficient, easy to program. >> >> '--------------------------------------------------------------------------- ------------ >> ' Module : clsXlateFrm >> ' Author : jwcolby >> ' Date : 2/21/2009 >> ' Purpose : This class loads all of the phrase strings into a collection >> for a single form >> ' the first time the form loads, keyed on control name. It >> ignores control >> ' names not in the language table. >> ' >> ' It then uses those strings in the collection to translate >> the form. >> ' The second and subsequent times the form loads, the class >> already has the >> ' strings in the collection so the collection load does not >> happen again (cached) >> ' and the translation happens from the collection. >> '-------------------------------------------------------------------- >> ------------------- Const cstrModule As String = "clsXlateFrm" >> Option Compare Database >> Option Explicit >> >> Private mcolPhrase As Collection >> Private mstrName As String >> Private mstrLanguageFldName As String >> >> Private Sub Class_Initialize() >> Set mcolPhrase = New Collection >> End Sub >> >> Private Sub Class_Terminate() >> Set mcolPhrase = Nothing >> End Sub >> >> '-------------------------------------------------------------------- >> ------------------- >> ' Procedure : mInit >> ' Author : jwcolby >> ' Date : 2/21/2009 >> ' Purpose : Called the first time the form loads. Loads the translation >> phrases from the table >> ' and translates the form. >> '-------------------------------------------------------------------- >> ------------------- >> ' >> Function mInit(lfrm As Form, lstrLanguageFldName As String) >> mstrName = lfrm.Name >> mstrLanguageFldName = lstrLanguageFldName >> ' >> 'If nothing in the collection then load the collection >> ' >> If Not mcolPhrase.Count Then >> mLoadColPhrase >> End If >> ' >> 'Now translate the form >> ' >> mXlateFrm lfrm >> End Function >> >> Property Get pName() As String >> pName = mstrName >> End Property >> >> Function colPhrase() As Collection >> Set colPhrase = mcolPhrase >> End Function >> '-------------------------------------------------------------------- >> ------------------- >> ' Procedure : mXlateFrm >> ' Author : jwcolby >> ' Date : 2/21/2009 >> ' Purpose : This function trnaslates the form. By the time this >> function is called the >> ' collection already contains all of the translation strings >> keyed by the >> ' control name. All it has to do is attempt to index into >> the collection >> ' using each control name. If there is something in the >> collection for that >> ' control name then the string is returned from the >> collection and placed in >> ' the control property. >> ' >> ' if nothing there, the error is ignored and the next >> control is tried. >> '-------------------------------------------------------------------- >> ------------------- >> ' >> Function mXlateFrm(frm As Form) >> Dim ctl As Control >> On Error GoTo Err_mXlateFrm >> >> ' >> 'Check every control on the form >> 'Expand this case to add new control types. >> For Each ctl In frm.Controls >> Select Case ctl.ControlType >> Case acLabel >> ' >> 'Try to get a translation phrase from the collection >> 'Any errors will be ignored >> ctl.Caption = mcolPhrase(ctl.Name) >> Case acCommandButton >> ctl.Caption = mcolPhrase(ctl.Name) >> Case Else >> End Select >> Next ctl >> >> Exit_mXlateFrm: >> On Error Resume Next >> Exit Function >> Err_mXlateFrm: >> Select Case Err >> Case 0 '.insert Errors you wish to ignore here >> Resume Next >> Case 5 'Control name not in translation table, ignore the error >> Resume Next >> Case Else '.All other errors will trap >> Beep >> MsgBox Err.Number & ":" & Err.Description >> Resume Exit_mXlateFrm >> End Select >> Resume 0 '.FOR TROUBLESHOOTING >> End Function >> '-------------------------------------------------------------------- >> ------------------- >> ' Procedure : mLoadColPhrase >> ' Author : jwcolby >> ' Date : 2/21/2009 >> ' Purpose : Loads the translation phrase strings out of the table for >> one form >> ' Builds a query dynamically based on the form name and the >> translation >> ' language field name >> '-------------------------------------------------------------------- >> ------------------- >> ' >> Private Function mLoadColPhrase() >> Dim db As DAO.Database >> Dim rst As DAO.Recordset >> Dim strSQL As String >> >> On Error GoTo Err_mLoadColPhrase >> >> ' >> 'Dynamically build the query to pull the translation strings for >> a specific form and language >> ' >> strSQL = "SELECT fldLanguageForm, fldLanguageControl, " & >> mstrLanguageFldName & " " & _ >> "FROM [tblLanguage-Controls] " & _ >> "WHERE ((([tblLanguage-Controls].fldLanguageForm)='" >> & mstrName & "'));" >> Set db = CurrentDb >> Set rst = db.OpenRecordset(strSQL) >> With rst >> While Not .EOF >> ' >> 'Drop all phrases found into the phrase collection >> 'Keyed on the control name fldLanguageControl >> ' >> mcolPhrase.Add .Fields(mstrLanguageFldName).Value, >> .Fields("fldLanguageControl").Value >> .MoveNext >> Wend >> End With >> >> Exit_mLoadColPhrase: >> On Error Resume Next >> Exit Function >> Err_mLoadColPhrase: >> Select Case Err >> Case 0 '.insert Errors you wish to ignore here >> Resume Next >> Case Else '.All other errors will trap >> Beep >> MsgBox Err.Number & ":" & Err.Description >> Resume Exit_mLoadColPhrase >> End Select >> Resume 0 '.FOR TROUBLESHOOTING >> End Function >> >> Option Compare Database >> Option Explicit >> >> Private mcolClsXlateFrm As Collection >> >> Private Sub Class_Initialize() >> Set mcolClsXlateFrm = New Collection End Sub >> >> Private Sub Class_Terminate() >> Set mcolClsXlateFrm = Nothing >> End Sub >> >> '-------------------------------------------------------------------- >> ------------------- >> ' Procedure : mTranslateFrm >> ' Author : jwcolby >> ' Date : 2/21/2009 >> ' Purpose : Performs the translation for one form passed in. >> '-------------------------------------------------------------------- >> ------------------- >> ' >> Function mTranslateFrm(lfrm As Form, lstrLanguageFldName As String) >> Dim lclsXlateFrm As clsXlateFrm On Error GoTo Err_mTranslateFrm >> >> On Error Resume Next >> ' >> 'Try to get an instance of the clsXlateFrm from the collection >> for this form >> ' >> Set lclsXlateFrm = mcolClsXlateFrm(lfrm.Name) >> If Err Then >> ' >> 'If that fials then this is the first time so perform the >> initialize >> ' >> Set lclsXlateFrm = New clsXlateFrm >> ' >> 'Now that we have an instance for this form perform the load >> and translation >> ' >> lclsXlateFrm.mInit lfrm, lstrLanguageFldName >> ' >> 'And save the instance to the collection for the next time >> ' >> mcolClsXlateFrm.Add lclsXlateFrm, lfrm.Name >> Else >> ' >> 'We have already loaded this form once so perform the translation >> ' >> lclsXlateFrm.mXlateFrm lfrm >> End If >> >> Exit_mTranslateFrm: >> On Error Resume Next >> Exit Function >> Err_mTranslateFrm: >> Select Case Err >> Case 0 '.insert Errors you wish to ignore here >> Resume Next >> Case Else '.All other errors will trap >> Beep >> MsgBox Err.Number & ":" & Err.Description >> Resume Exit_mTranslateFrm >> End Select >> Resume 0 '.FOR TROUBLESHOOTING >> End Function >> ' >> 'Return a pointer to colClsXlateFrm >> ' >> Property Get colClsXlateFrm() As Collection >> Set colClsXlateFrm = mcolClsXlateFrm End Property >> >> >> '--------------------------------------------------------------------------- ------------ >> ' Module : basXlate >> ' Author : jwcolby >> ' Date : 2/21/2009 >> ' Purpose : Functions to initialize, terminate and return a pointer to >> clsXlateSupervisor >> ' as well as a global variable for the translation string >> field name. >> '--------------------------------------------------------------------------- ------------ >> Const cstrModule As String = "basXlate" >> Option Compare Database >> Option Explicit >> >> Private mclsXlateSupervisor As clsXlateSupervisor >> ' >> 'Set this variable to the name of the field holding the translation >> language strings >> ' >> 'fldLanguageEnglish >> 'fldLanguageChineseComplex >> 'etc >> ' >> Public mstrLanguageFldName As String >> >> Function mXlateSupervisorInit() >> If mclsXlateSupervisor Is Nothing Then >> Set mclsXlateSupervisor = New clsXlateSupervisor >> mstrLanguageFldName = "fldLanguageSpanish" 'Default language to >> English >> End If >> Set mXlateSupervisorInit = mclsXlateSupervisor >> End Function >> Function mXlateSupervisorTerm() >> Set mclsXlateSupervisor = Nothing >> End Function >> Function cXS() As clsXlateSupervisor >> Set cXS = mXlateSupervisorInit() >> End Function >> >> >> -- >> John W. Colby >> www.ColbyConsulting.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Sat Feb 21 10:53:47 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 21 Feb 2009 11:53:47 -0500 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <49a02500.0508d00a.4eb0.ffffbe67@mx.google.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <82745B5E88DE4DF2873544CB371BED1B@HAL9005> <499ff7dc.0a04d00a.7b19.593f@mx.google.com> <9348165EACB84473BF8DFF66D7F51274@HAL9005> <49a02500.0508d00a.4eb0.ffffbe67@mx.google.com> Message-ID: <49A0319B.70600@colbyconsulting.com> Have you patented it yet? ;) John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > There is no comparison. Nothing else comes even close. > > Can't post to list as it is an mdb -I will send to your email. > > Off to pub now. Hope you like it. > > Max > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: 21 February 2009 15:04 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > YES! Post it to the list. I'll drop it into Colby's demo and set a switch so > it can go back and forth. > > In fact, that demo could be the template for making comparisons among all > the solutions. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Saturday, February 21, 2009 4:47 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hello Rocky, > Well, I have read with interest all the to-ing and fro-ing from the various > contributors. > So, I laid me down laterally and started thinking laterally. > The solution came to be sometime around my 3rd drink. > I consolidated my thoughts in bed. > When I woke this morning, I tested them out with a sample mdb using English, > French and German. All work beautifully. Add as many languages as you > want. > > The solution I have has the following benefits: > > Instantaneous > No variables > No Collections > No Classes (although the solution could be said to be upper class No > Arrays No Memory overheads Forms shown the language required every time with > no overheads. > Unlimited Languages > > Should I post the sample mdb to you? > > Max > Ps. Bet your intrigued - you will love this solution. > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: 20 February 2009 23:48 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > In the case of this app, however, there can be multiple back ends in > different locations. So to get them updated I'd have to send out an update > program. Or embed the updates in the next release of the front end. And > check each back end that gets opened to see if the latest updates were in > there. Actually, keeping the latest Language table in the front end and > transferring it to the back end on opening each time would ensure that the > back end was up to date. > > But at that point, with the language table in the front end anyway, wouldn't > it make sense just to run the translations from the front end table? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Friday, February 20, 2009 1:50 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > And this is where Global Classes come into play. > > In the case of your multi-lingual app, your data may not change very often, > but it has the potential to change. That being the case, by putting the > data in the BE, you don't have to update the FE for a simple data change. > However, instead of constantly pulling the data across from the BE, you load > the class when your app starts up, and the data is simply kept in memory. > > Pulling a few thousand records really isn't a big deal, as long as they > aren't memo fields with megs of information. 2.5k records, with even 1k cay > of information is only going to use 2.5 megs of RAM (roughly) In the case > where you are storing a few bytes of info, it's negligent, especially on > machines where 1 to 2 gig is standard RAM. > > Even in situations like a State table (TX, AL, FL, etc.). Sure, there are > 50 states now, but putting lookup tables in the FE can lead to unnecessary > mass updates. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: Friday, February 20, 2009 2:06 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > " I am not going to get into the "this is a local table so it goes in the > FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are > for data (in my world)." > > In my case, where the 'data' is really static, and is needed by each user, > wouldn't the design be better with the language tables in the FE? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI Proprietary > and/or II-VI Business Sensitive material. If you are not the intended > recipient, please contact the sender immediately and destroy the material in > its entirety, whether electronic or hard copy. You are notified that any > review, retransmission, copying, disclosure, dissemination, or other use of, > or taking of any action in reliance upon this information by persons or > entities other than the intended recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Sat Feb 21 10:57:53 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 21 Feb 2009 11:57:53 -0500 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <49a02500.0508d00a.4eb0.ffffbe67@mx.google.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <82745B5E88DE4DF2873544CB371BED1B@HAL9005> <499ff7dc.0a04d00a.7b19.593f@mx.google.com> <9348165EACB84473BF8DFF66D7F51274@HAL9005> <49a02500.0508d00a.4eb0.ffffbe67@mx.google.com> Message-ID: <49A03291.7040904@colbyconsulting.com> Tell me you are not using the tag for each control. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > There is no comparison. Nothing else comes even close. > > Can't post to list as it is an mdb -I will send to your email. > > Off to pub now. Hope you like it. > > Max > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: 21 February 2009 15:04 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > YES! Post it to the list. I'll drop it into Colby's demo and set a switch so > it can go back and forth. > > In fact, that demo could be the template for making comparisons among all > the solutions. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Saturday, February 21, 2009 4:47 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hello Rocky, > Well, I have read with interest all the to-ing and fro-ing from the various > contributors. > So, I laid me down laterally and started thinking laterally. > The solution came to be sometime around my 3rd drink. > I consolidated my thoughts in bed. > When I woke this morning, I tested them out with a sample mdb using English, > French and German. All work beautifully. Add as many languages as you > want. > > The solution I have has the following benefits: > > Instantaneous > No variables > No Collections > No Classes (although the solution could be said to be upper class No > Arrays No Memory overheads Forms shown the language required every time with > no overheads. > Unlimited Languages > > Should I post the sample mdb to you? > > Max > Ps. Bet your intrigued - you will love this solution. > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: 20 February 2009 23:48 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > In the case of this app, however, there can be multiple back ends in > different locations. So to get them updated I'd have to send out an update > program. Or embed the updates in the next release of the front end. And > check each back end that gets opened to see if the latest updates were in > there. Actually, keeping the latest Language table in the front end and > transferring it to the back end on opening each time would ensure that the > back end was up to date. > > But at that point, with the language table in the front end anyway, wouldn't > it make sense just to run the translations from the front end table? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Friday, February 20, 2009 1:50 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > And this is where Global Classes come into play. > > In the case of your multi-lingual app, your data may not change very often, > but it has the potential to change. That being the case, by putting the > data in the BE, you don't have to update the FE for a simple data change. > However, instead of constantly pulling the data across from the BE, you load > the class when your app starts up, and the data is simply kept in memory. > > Pulling a few thousand records really isn't a big deal, as long as they > aren't memo fields with megs of information. 2.5k records, with even 1k cay > of information is only going to use 2.5 megs of RAM (roughly) In the case > where you are storing a few bytes of info, it's negligent, especially on > machines where 1 to 2 gig is standard RAM. > > Even in situations like a State table (TX, AL, FL, etc.). Sure, there are > 50 states now, but putting lookup tables in the FE can lead to unnecessary > mass updates. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: Friday, February 20, 2009 2:06 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > " I am not going to get into the "this is a local table so it goes in the > FE... oh damn, now I gotta go update the data in 5 different FEs". BEs are > for data (in my world)." > > In my case, where the 'data' is really static, and is needed by each user, > wouldn't the design be better with the language tables in the FE? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI Proprietary > and/or II-VI Business Sensitive material. If you are not the intended > recipient, please contact the sender immediately and destroy the material in > its entirety, whether electronic or hard copy. You are notified that any > review, retransmission, copying, disclosure, dissemination, or other use of, > or taking of any action in reliance upon this information by persons or > entities other than the intended recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From rockysmolin at bchacc.com Sat Feb 21 11:03:30 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Sat, 21 Feb 2009 09:03:30 -0800 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <49A0319B.70600@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <82745B5E88DE4DF2873544CB371BED1B@HAL9005> <499ff7dc.0a04d00a.7b19.593f@mx.google.com> <9348165EACB84473BF8DFF66D7F51274@HAL9005><49a02500.0508d00a.4eb0.ffffbe67@mx.google.com> <49A0319B.70600@colbyconsulting.com> Message-ID: So, I'll spill the beans. When the user changes languages Max's solution opens the form hidden in design mode, updates the captions from the language table, and save it back. Then you have to restart the app to see then new captions. Two problems for me: 1) since there are about 90 forms and 60 reports, so there would be some delay in changing languages but since that wouldn't happen very often I suppose it would be tolerable, and 2) and more important, I distribute my app as an mde so I don't think I can open the forms in design view at run time. But for an mdb, good solution. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, February 21, 2009 8:54 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Have you patented it yet? ;) John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > There is no comparison. Nothing else comes even close. > > Can't post to list as it is an mdb -I will send to your email. > > Off to pub now. Hope you like it. > > Max > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 21 February 2009 15:04 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > YES! Post it to the list. I'll drop it into Colby's demo and set a > switch so it can go back and forth. > > In fact, that demo could be the template for making comparisons among all > the solutions. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Saturday, February 21, 2009 4:47 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hello Rocky, > Well, I have read with interest all the to-ing and fro-ing from the > various contributors. > So, I laid me down laterally and started thinking laterally. > The solution came to be sometime around my 3rd drink. > I consolidated my thoughts in bed. > When I woke this morning, I tested them out with a sample mdb using > English, French and German. All work beautifully. Add as many > languages as you want. > > The solution I have has the following benefits: > > Instantaneous > No variables > No Collections > No Classes (although the solution could be said to be upper class > No Arrays No Memory overheads Forms shown the language required > every time with no overheads. > Unlimited Languages > > Should I post the sample mdb to you? > > Max > Ps. Bet your intrigued - you will love this solution. > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 20 February 2009 23:48 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > In the case of this app, however, there can be multiple back ends in > different locations. So to get them updated I'd have to send out an > update program. Or embed the updates in the next release of the front > end. And check each back end that gets opened to see if the latest > updates were in there. Actually, keeping the latest Language table in > the front end and transferring it to the back end on opening each time > would ensure that the back end was up to date. > > But at that point, with the language table in the front end anyway, > wouldn't it make sense just to run the translations from the front end table? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Friday, February 20, 2009 1:50 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > And this is where Global Classes come into play. > > In the case of your multi-lingual app, your data may not change very > often, but it has the potential to change. That being the case, by > putting the data in the BE, you don't have to update the FE for a simple data change. > However, instead of constantly pulling the data across from the BE, > you load the class when your app starts up, and the data is simply kept in memory. > > Pulling a few thousand records really isn't a big deal, as long as > they aren't memo fields with megs of information. 2.5k records, with > even 1k cay of information is only going to use 2.5 megs of RAM > (roughly) In the case where you are storing a few bytes of info, it's > negligent, especially on machines where 1 to 2 gig is standard RAM. > > Even in situations like a State table (TX, AL, FL, etc.). Sure, there > are 50 states now, but putting lookup tables in the FE can lead to > unnecessary mass updates. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: Friday, February 20, 2009 2:06 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > " I am not going to get into the "this is a local table so it goes in > the FE... oh damn, now I gotta go update the data in 5 different FEs". > BEs are for data (in my world)." > > In my case, where the 'data' is really static, and is needed by each > user, wouldn't the design be better with the language tables in the FE? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > The information contained in this transmission is intended only for > the person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not > the intended recipient, please contact the sender immediately and > destroy the material in its entirety, whether electronic or hard copy. > You are notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance > upon this information by persons or entities other than the intended recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Sat Feb 21 11:27:50 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 21 Feb 2009 12:27:50 -0500 Subject: [AccessD] Translation data length (cache used) Message-ID: <49A03996.9040804@colbyconsulting.com> Using the following function I calculated the lengths of all of the translation strings in every translation field: Function mTotalDataLength() Dim db As DAO.Database Dim rst As DAO.Recordset Dim lngDataLength As Long Dim intFld As Integer Set db = CurrentDb Set rst = db.OpenRecordset("tblLanguage-Controls") With rst For intFld = 4 To 8 .MoveFirst While Not .EOF If Not (IsNull(rst(intFld).Value)) Then lngDataLength = lngDataLength + Len(rst(intFld).Value) End If .MoveNext Wend Debug.Print intFld & ":" & lngDataLength Next intFld End With End Function mTotalDataLength 4:43879 5:56558 6:69133 7:107050 8:140369 Spanish and French are by far the most verbose. In any event, if you are caching the data for every single form for a single language, the total data cached is about 140K. -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Sat Feb 21 11:28:10 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 21 Feb 2009 12:28:10 -0500 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <82745B5E88DE4DF2873544CB371BED1B@HAL9005> <499ff7dc.0a04d00a.7b19.593f@mx.google.com> <9348165EACB84473BF8DFF66D7F51274@HAL9005><49a02500.0508d00a.4eb0.ffffbe67@mx.google.com> <49A0319B.70600@colbyconsulting.com> Message-ID: <49A039AA.80903@colbyconsulting.com> Why do you have to restart the app? John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > So, I'll spill the beans. When the user changes languages Max's solution > opens the form hidden in design mode, updates the captions from the language > table, and save it back. Then you have to restart the app to see then new > captions. > > Two problems for me: 1) since there are about 90 forms and 60 reports, so > there would be some delay in changing languages but since that wouldn't > happen very often I suppose it would be tolerable, and 2) and more > important, I distribute my app as an mde so I don't think I can open the > forms in design view at run time. > > But for an mdb, good solution. > > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Saturday, February 21, 2009 8:54 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Have you patented it yet? > > ;) > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> There is no comparison. Nothing else comes even close. >> >> Can't post to list as it is an mdb -I will send to your email. >> >> Off to pub now. Hope you like it. >> >> Max >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >> Smolin at Beach Access Software >> Sent: 21 February 2009 15:04 >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Find First in an Array? - The Solution >> >> YES! Post it to the list. I'll drop it into Colby's demo and set a >> switch so it can go back and forth. >> >> In fact, that demo could be the template for making comparisons among all >> the solutions. >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo >> Sent: Saturday, February 21, 2009 4:47 AM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Find First in an Array? - The Solution >> >> Hello Rocky, >> Well, I have read with interest all the to-ing and fro-ing from the >> various contributors. >> So, I laid me down laterally and started thinking laterally. >> The solution came to be sometime around my 3rd drink. >> I consolidated my thoughts in bed. >> When I woke this morning, I tested them out with a sample mdb using >> English, French and German. All work beautifully. Add as many >> languages as you want. >> >> The solution I have has the following benefits: >> >> Instantaneous >> No variables >> No Collections >> No Classes (although the solution could be said to be upper class >> No Arrays No Memory overheads Forms shown the language required >> every time with no overheads. >> Unlimited Languages >> >> Should I post the sample mdb to you? >> >> Max >> Ps. Bet your intrigued - you will love this solution. >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >> Smolin at Beach Access Software >> Sent: 20 February 2009 23:48 >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Find First in an Array? >> >> In the case of this app, however, there can be multiple back ends in >> different locations. So to get them updated I'd have to send out an >> update program. Or embed the updates in the next release of the front >> end. And check each back end that gets opened to see if the latest >> updates were in there. Actually, keeping the latest Language table in >> the front end and transferring it to the back end on opening each time >> would ensure that the back end was up to date. >> >> But at that point, with the language table in the front end anyway, >> wouldn't it make sense just to run the translations from the front end > table? >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka >> Sent: Friday, February 20, 2009 1:50 PM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? >> >> And this is where Global Classes come into play. >> >> In the case of your multi-lingual app, your data may not change very >> often, but it has the potential to change. That being the case, by >> putting the data in the BE, you don't have to update the FE for a simple > data change. >> However, instead of constantly pulling the data across from the BE, >> you load the class when your app starts up, and the data is simply kept in > memory. >> Pulling a few thousand records really isn't a big deal, as long as >> they aren't memo fields with megs of information. 2.5k records, with >> even 1k cay of information is only going to use 2.5 megs of RAM >> (roughly) In the case where you are storing a few bytes of info, it's >> negligent, especially on machines where 1 to 2 gig is standard RAM. >> >> Even in situations like a State table (TX, AL, FL, etc.). Sure, there >> are 50 states now, but putting lookup tables in the FE can lead to >> unnecessary mass updates. >> >> Drew >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >> Smolin at Beach Access Software >> Sent: Friday, February 20, 2009 2:06 PM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Find First in an Array? >> >> " I am not going to get into the "this is a local table so it goes in >> the FE... oh damn, now I gotta go update the data in 5 different FEs". >> BEs are for data (in my world)." >> >> In my case, where the 'data' is really static, and is needed by each >> user, wouldn't the design be better with the language tables in the FE? >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> The information contained in this transmission is intended only for >> the person or entity to which it is addressed and may contain II-VI >> Proprietary and/or II-VI Business Sensitive material. If you are not >> the intended recipient, please contact the sender immediately and >> destroy the material in its entirety, whether electronic or hard copy. >> You are notified that any review, retransmission, copying, disclosure, >> dissemination, or other use of, or taking of any action in reliance >> upon this information by persons or entities other than the intended > recipient is prohibited. >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From rockysmolin at bchacc.com Sat Feb 21 11:40:06 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Sat, 21 Feb 2009 09:40:06 -0800 Subject: [AccessD] Translation data length (cache used) In-Reply-To: <49A03996.9040804@colbyconsulting.com> References: <49A03996.9040804@colbyconsulting.com> Message-ID: <244608D7F3C14B80A0B2269C8DDB33C4@HAL9005> The Chinese is double word length per character I think. Did you account for that? Also, I haven't tested your app with Chinese yet. Does it display OK? You have to have the East Asian language package implemented in Windows. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, February 21, 2009 9:28 AM To: Access Developers discussion and problem solving Subject: [AccessD] Translation data length (cache used) Using the following function I calculated the lengths of all of the translation strings in every translation field: Function mTotalDataLength() Dim db As DAO.Database Dim rst As DAO.Recordset Dim lngDataLength As Long Dim intFld As Integer Set db = CurrentDb Set rst = db.OpenRecordset("tblLanguage-Controls") With rst For intFld = 4 To 8 .MoveFirst While Not .EOF If Not (IsNull(rst(intFld).Value)) Then lngDataLength = lngDataLength + Len(rst(intFld).Value) End If .MoveNext Wend Debug.Print intFld & ":" & lngDataLength Next intFld End With End Function mTotalDataLength 4:43879 5:56558 6:69133 7:107050 8:140369 Spanish and French are by far the most verbose. In any event, if you are caching the data for every single form for a single language, the total data cached is about 140K. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Sat Feb 21 11:40:31 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Sat, 21 Feb 2009 09:40:31 -0800 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <49A039AA.80903@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <82745B5E88DE4DF2873544CB371BED1B@HAL9005> <499ff7dc.0a04d00a.7b19.593f@mx.google.com> <9348165EACB84473BF8DFF66D7F51274@HAL9005><49a02500.0508d00a.4eb0.ffffbe67@mx.google.com> <49A0319B.70600@colbyconsulting.com> <49A039AA.80903@colbyconsulting.com> Message-ID: Max said so. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, February 21, 2009 9:28 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Why do you have to restart the app? John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > So, I'll spill the beans. When the user changes languages Max's > solution opens the form hidden in design mode, updates the captions > from the language table, and save it back. Then you have to restart > the app to see then new captions. > > Two problems for me: 1) since there are about 90 forms and 60 reports, > so there would be some delay in changing languages but since that > wouldn't happen very often I suppose it would be tolerable, and 2) and > more important, I distribute my app as an mde so I don't think I can > open the forms in design view at run time. > > But for an mdb, good solution. > > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Saturday, February 21, 2009 8:54 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Have you patented it yet? > > ;) > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> There is no comparison. Nothing else comes even close. >> >> Can't post to list as it is an mdb -I will send to your email. >> >> Off to pub now. Hope you like it. >> >> Max >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >> Smolin at Beach Access Software >> Sent: 21 February 2009 15:04 >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Find First in an Array? - The Solution >> >> YES! Post it to the list. I'll drop it into Colby's demo and set a >> switch so it can go back and forth. >> >> In fact, that demo could be the template for making comparisons among all >> the solutions. >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max >> Wanadoo >> Sent: Saturday, February 21, 2009 4:47 AM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Find First in an Array? - The Solution >> >> Hello Rocky, >> Well, I have read with interest all the to-ing and fro-ing from the >> various contributors. >> So, I laid me down laterally and started thinking laterally. >> The solution came to be sometime around my 3rd drink. >> I consolidated my thoughts in bed. >> When I woke this morning, I tested them out with a sample mdb using >> English, French and German. All work beautifully. Add as many >> languages as you want. >> >> The solution I have has the following benefits: >> >> Instantaneous >> No variables >> No Collections >> No Classes (although the solution could be said to be upper class >> No Arrays No Memory overheads Forms shown the language required >> every time with no overheads. >> Unlimited Languages >> >> Should I post the sample mdb to you? >> >> Max >> Ps. Bet your intrigued - you will love this solution. >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >> Smolin at Beach Access Software >> Sent: 20 February 2009 23:48 >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Find First in an Array? >> >> In the case of this app, however, there can be multiple back ends in >> different locations. So to get them updated I'd have to send out an >> update program. Or embed the updates in the next release of the >> front end. And check each back end that gets opened to see if the >> latest updates were in there. Actually, keeping the latest Language >> table in the front end and transferring it to the back end on opening >> each time would ensure that the back end was up to date. >> >> But at that point, with the language table in the front end anyway, >> wouldn't it make sense just to run the translations from the front >> end > table? >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka >> Sent: Friday, February 20, 2009 1:50 PM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? >> >> And this is where Global Classes come into play. >> >> In the case of your multi-lingual app, your data may not change very >> often, but it has the potential to change. That being the case, by >> putting the data in the BE, you don't have to update the FE for a >> simple > data change. >> However, instead of constantly pulling the data across from the BE, >> you load the class when your app starts up, and the data is simply >> kept in > memory. >> Pulling a few thousand records really isn't a big deal, as long as >> they aren't memo fields with megs of information. 2.5k records, with >> even 1k cay of information is only going to use 2.5 megs of RAM >> (roughly) In the case where you are storing a few bytes of info, >> it's negligent, especially on machines where 1 to 2 gig is standard RAM. >> >> Even in situations like a State table (TX, AL, FL, etc.). Sure, >> there are 50 states now, but putting lookup tables in the FE can lead >> to unnecessary mass updates. >> >> Drew >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >> Smolin at Beach Access Software >> Sent: Friday, February 20, 2009 2:06 PM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Find First in an Array? >> >> " I am not going to get into the "this is a local table so it goes in >> the FE... oh damn, now I gotta go update the data in 5 different FEs". >> BEs are for data (in my world)." >> >> In my case, where the 'data' is really static, and is needed by each >> user, wouldn't the design be better with the language tables in the FE? >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> The information contained in this transmission is intended only for >> the person or entity to which it is addressed and may contain II-VI >> Proprietary and/or II-VI Business Sensitive material. If you are not >> the intended recipient, please contact the sender immediately and >> destroy the material in its entirety, whether electronic or hard copy. >> You are notified that any review, retransmission, copying, >> disclosure, dissemination, or other use of, or taking of any action >> in reliance upon this information by persons or entities other than >> the intended > recipient is prohibited. >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Sat Feb 21 12:14:22 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 21 Feb 2009 13:14:22 -0500 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <82745B5E88DE4DF2873544CB371BED1B@HAL9005> <499ff7dc.0a04d00a.7b19.593f@mx.google.com> <9348165EACB84473BF8DFF66D7F51274@HAL9005><49a02500.0508d00a.4eb0.ffffbe67@mx.google.com> <49A0319B.70600@colbyconsulting.com> <49A039AA.80903@colbyconsulting.com> Message-ID: <49A0447E.8060402@colbyconsulting.com> Well ya don't. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Max said so. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Saturday, February 21, 2009 9:28 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Why do you have to restart the app? > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: >> So, I'll spill the beans. When the user changes languages Max's >> solution opens the form hidden in design mode, updates the captions >> from the language table, and save it back. Then you have to restart >> the app to see then new captions. >> >> Two problems for me: 1) since there are about 90 forms and 60 reports, >> so there would be some delay in changing languages but since that >> wouldn't happen very often I suppose it would be tolerable, and 2) and >> more important, I distribute my app as an mde so I don't think I can >> open the forms in design view at run time. >> >> But for an mdb, good solution. >> >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Saturday, February 21, 2009 8:54 AM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? - The Solution >> >> Have you patented it yet? >> >> ;) >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> There is no comparison. Nothing else comes even close. >>> >>> Can't post to list as it is an mdb -I will send to your email. >>> >>> Off to pub now. Hope you like it. >>> >>> Max >>> >>> >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >>> Smolin at Beach Access Software >>> Sent: 21 February 2009 15:04 >>> To: 'Access Developers discussion and problem solving' >>> Subject: Re: [AccessD] Find First in an Array? - The Solution >>> >>> YES! Post it to the list. I'll drop it into Colby's demo and set a >>> switch so it can go back and forth. >>> >>> In fact, that demo could be the template for making comparisons among all >>> the solutions. >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >>> >>> >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max >>> Wanadoo >>> Sent: Saturday, February 21, 2009 4:47 AM >>> To: 'Access Developers discussion and problem solving' >>> Subject: Re: [AccessD] Find First in an Array? - The Solution >>> >>> Hello Rocky, >>> Well, I have read with interest all the to-ing and fro-ing from the >>> various contributors. >>> So, I laid me down laterally and started thinking laterally. >>> The solution came to be sometime around my 3rd drink. >>> I consolidated my thoughts in bed. >>> When I woke this morning, I tested them out with a sample mdb using >>> English, French and German. All work beautifully. Add as many >>> languages as you want. >>> >>> The solution I have has the following benefits: >>> >>> Instantaneous >>> No variables >>> No Collections >>> No Classes (although the solution could be said to be upper class >>> No Arrays No Memory overheads Forms shown the language required >>> every time with no overheads. >>> Unlimited Languages >>> >>> Should I post the sample mdb to you? >>> >>> Max >>> Ps. Bet your intrigued - you will love this solution. >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >>> Smolin at Beach Access Software >>> Sent: 20 February 2009 23:48 >>> To: 'Access Developers discussion and problem solving' >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> In the case of this app, however, there can be multiple back ends in >>> different locations. So to get them updated I'd have to send out an >>> update program. Or embed the updates in the next release of the >>> front end. And check each back end that gets opened to see if the >>> latest updates were in there. Actually, keeping the latest Language >>> table in the front end and transferring it to the back end on opening >>> each time would ensure that the back end was up to date. >>> >>> But at that point, with the language table in the front end anyway, >>> wouldn't it make sense just to run the translations from the front >>> end >> table? >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >>> >>> >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka >>> Sent: Friday, February 20, 2009 1:50 PM >>> To: Access Developers discussion and problem solving >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> And this is where Global Classes come into play. >>> >>> In the case of your multi-lingual app, your data may not change very >>> often, but it has the potential to change. That being the case, by >>> putting the data in the BE, you don't have to update the FE for a >>> simple >> data change. >>> However, instead of constantly pulling the data across from the BE, >>> you load the class when your app starts up, and the data is simply >>> kept in >> memory. >>> Pulling a few thousand records really isn't a big deal, as long as >>> they aren't memo fields with megs of information. 2.5k records, with >>> even 1k cay of information is only going to use 2.5 megs of RAM >>> (roughly) In the case where you are storing a few bytes of info, >>> it's negligent, especially on machines where 1 to 2 gig is standard RAM. >>> >>> Even in situations like a State table (TX, AL, FL, etc.). Sure, >>> there are 50 states now, but putting lookup tables in the FE can lead >>> to unnecessary mass updates. >>> >>> Drew >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >>> Smolin at Beach Access Software >>> Sent: Friday, February 20, 2009 2:06 PM >>> To: 'Access Developers discussion and problem solving' >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> " I am not going to get into the "this is a local table so it goes in >>> the FE... oh damn, now I gotta go update the data in 5 different FEs". >>> BEs are for data (in my world)." >>> >>> In my case, where the 'data' is really static, and is needed by each >>> user, wouldn't the design be better with the language tables in the FE? >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >>> >>> >>> >>> The information contained in this transmission is intended only for >>> the person or entity to which it is addressed and may contain II-VI >>> Proprietary and/or II-VI Business Sensitive material. If you are not >>> the intended recipient, please contact the sender immediately and >>> destroy the material in its entirety, whether electronic or hard copy. >>> You are notified that any review, retransmission, copying, >>> disclosure, dissemination, or other use of, or taking of any action >>> in reliance upon this information by persons or entities other than >>> the intended >> recipient is prohibited. >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Sat Feb 21 12:15:56 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 21 Feb 2009 13:15:56 -0500 Subject: [AccessD] Translation data length (cache used) In-Reply-To: <244608D7F3C14B80A0B2269C8DDB33C4@HAL9005> References: <49A03996.9040804@colbyconsulting.com> <244608D7F3C14B80A0B2269C8DDB33C4@HAL9005> Message-ID: <49A044DC.8080909@colbyconsulting.com> I just counted the length of the string pulled out. I will be modifying the clsXlateFrm to count the length as the class loads the collection, then have a property to report the total length. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > The Chinese is double word length per character I think. Did you account > for that? > > Also, I haven't tested your app with Chinese yet. Does it display OK? You > have to have the East Asian language package implemented in Windows. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Saturday, February 21, 2009 9:28 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Translation data length (cache used) > > Using the following function I calculated the lengths of all of the > translation strings in every translation field: > > Function mTotalDataLength() > Dim db As DAO.Database > Dim rst As DAO.Recordset > Dim lngDataLength As Long > Dim intFld As Integer > Set db = CurrentDb > Set rst = db.OpenRecordset("tblLanguage-Controls") > With rst > For intFld = 4 To 8 > .MoveFirst > While Not .EOF > If Not (IsNull(rst(intFld).Value)) Then > lngDataLength = lngDataLength + Len(rst(intFld).Value) > End If > .MoveNext > Wend > Debug.Print intFld & ":" & lngDataLength > Next intFld > End With > End Function > > mTotalDataLength > 4:43879 > 5:56558 > 6:69133 > 7:107050 > 8:140369 > > Spanish and French are by far the most verbose. In any event, if you are > caching the data for every single form for a single language, the total data > cached is about 140K. > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Sat Feb 21 13:26:10 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 21 Feb 2009 14:26:10 -0500 Subject: [AccessD] Translation data length (cache used) In-Reply-To: <244608D7F3C14B80A0B2269C8DDB33C4@HAL9005> References: <49A03996.9040804@colbyconsulting.com> <244608D7F3C14B80A0B2269C8DDB33C4@HAL9005> Message-ID: <49A05552.8000400@colbyconsulting.com> I don't have that font installed and don't want to install it. I am seeing Chinese characters in your table though. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > The Chinese is double word length per character I think. Did you account > for that? > > Also, I haven't tested your app with Chinese yet. Does it display OK? You > have to have the East Asian language package implemented in Windows. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Saturday, February 21, 2009 9:28 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Translation data length (cache used) > > Using the following function I calculated the lengths of all of the > translation strings in every translation field: > > Function mTotalDataLength() > Dim db As DAO.Database > Dim rst As DAO.Recordset > Dim lngDataLength As Long > Dim intFld As Integer > Set db = CurrentDb > Set rst = db.OpenRecordset("tblLanguage-Controls") > With rst > For intFld = 4 To 8 > .MoveFirst > While Not .EOF > If Not (IsNull(rst(intFld).Value)) Then > lngDataLength = lngDataLength + Len(rst(intFld).Value) > End If > .MoveNext > Wend > Debug.Print intFld & ":" & lngDataLength > Next intFld > End With > End Function > > mTotalDataLength > 4:43879 > 5:56558 > 6:69133 > 7:107050 > 8:140369 > > Spanish and French are by far the most verbose. In any event, if you are > caching the data for every single form for a single language, the total data > cached is about 140K. > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From max.wanadoo at gmail.com Sat Feb 21 13:55:29 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sat, 21 Feb 2009 19:55:29 -0000 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <82745B5E88DE4DF2873544CB371BED1B@HAL9005> <499ff7dc.0a04d00a.7b19.593f@mx.google.com> <9348165EACB84473BF8DFF66D7F51274@HAL9005><49a02500.0508d00a.4eb0.ffffbe67@mx.google.com> <49A0319B.70600@colbyconsulting.com> <49A039AA.80903@colbyconsulting.com> Message-ID: <49a05c38.0508d00a.4eb0.ffffb1d0@mx.google.com> No Rocky, You have missed the WHOLE concept! Sorry to be pedantic, but:- 1. You do this ONCE on each installation for each language , or 2. You do it for them BEFORE you distribute the app, or 3. You ALLOW them to do it themselves if you decide that is ok. 4. There is no "open form, run the translation code to change the captions EACH AND EVERY time we open the form". The captions are correct ALL THE TIME. This is could easily be, "ok, not you have to restart the app before your selection are implemented, etc - how many apps have we installed where it says something similar, but it is actually changed there and then!!! 5. Once you have run this code, you never have to run it again (unless you want to). 6. No, you don't have to restart, but I would recommend it. 7. No, repeat NO overheads at run time. No Collections, no Containers, no Classes (sorry JC), no nothing... your code is now showing the captions as if you had given it to them "exactly as" when you sent it to them. If that doesn't solve your problem, then I leave to others to come up with a better solution then RUN ONCE AND FORGET! Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 21 February 2009 17:41 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Max said so. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, February 21, 2009 9:28 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Why do you have to restart the app? John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > So, I'll spill the beans. When the user changes languages Max's > solution opens the form hidden in design mode, updates the captions > from the language table, and save it back. Then you have to restart > the app to see then new captions. > > Two problems for me: 1) since there are about 90 forms and 60 reports, > so there would be some delay in changing languages but since that > wouldn't happen very often I suppose it would be tolerable, and 2) and > more important, I distribute my app as an mde so I don't think I can > open the forms in design view at run time. > > But for an mdb, good solution. > > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Saturday, February 21, 2009 8:54 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Have you patented it yet? > > ;) > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> There is no comparison. Nothing else comes even close. >> >> Can't post to list as it is an mdb -I will send to your email. >> >> Off to pub now. Hope you like it. >> >> Max >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >> Smolin at Beach Access Software >> Sent: 21 February 2009 15:04 >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Find First in an Array? - The Solution >> >> YES! Post it to the list. I'll drop it into Colby's demo and set a >> switch so it can go back and forth. >> >> In fact, that demo could be the template for making comparisons among all >> the solutions. >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max >> Wanadoo >> Sent: Saturday, February 21, 2009 4:47 AM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Find First in an Array? - The Solution >> >> Hello Rocky, >> Well, I have read with interest all the to-ing and fro-ing from the >> various contributors. >> So, I laid me down laterally and started thinking laterally. >> The solution came to be sometime around my 3rd drink. >> I consolidated my thoughts in bed. >> When I woke this morning, I tested them out with a sample mdb using >> English, French and German. All work beautifully. Add as many >> languages as you want. >> >> The solution I have has the following benefits: >> >> Instantaneous >> No variables >> No Collections >> No Classes (although the solution could be said to be upper class >> No Arrays No Memory overheads Forms shown the language required >> every time with no overheads. >> Unlimited Languages >> >> Should I post the sample mdb to you? >> >> Max >> Ps. Bet your intrigued - you will love this solution. >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >> Smolin at Beach Access Software >> Sent: 20 February 2009 23:48 >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Find First in an Array? >> >> In the case of this app, however, there can be multiple back ends in >> different locations. So to get them updated I'd have to send out an >> update program. Or embed the updates in the next release of the >> front end. And check each back end that gets opened to see if the >> latest updates were in there. Actually, keeping the latest Language >> table in the front end and transferring it to the back end on opening >> each time would ensure that the back end was up to date. >> >> But at that point, with the language table in the front end anyway, >> wouldn't it make sense just to run the translations from the front >> end > table? >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka >> Sent: Friday, February 20, 2009 1:50 PM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? >> >> And this is where Global Classes come into play. >> >> In the case of your multi-lingual app, your data may not change very >> often, but it has the potential to change. That being the case, by >> putting the data in the BE, you don't have to update the FE for a >> simple > data change. >> However, instead of constantly pulling the data across from the BE, >> you load the class when your app starts up, and the data is simply >> kept in > memory. >> Pulling a few thousand records really isn't a big deal, as long as >> they aren't memo fields with megs of information. 2.5k records, with >> even 1k cay of information is only going to use 2.5 megs of RAM >> (roughly) In the case where you are storing a few bytes of info, >> it's negligent, especially on machines where 1 to 2 gig is standard RAM. >> >> Even in situations like a State table (TX, AL, FL, etc.). Sure, >> there are 50 states now, but putting lookup tables in the FE can lead >> to unnecessary mass updates. >> >> Drew >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >> Smolin at Beach Access Software >> Sent: Friday, February 20, 2009 2:06 PM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Find First in an Array? >> >> " I am not going to get into the "this is a local table so it goes in >> the FE... oh damn, now I gotta go update the data in 5 different FEs". >> BEs are for data (in my world)." >> >> In my case, where the 'data' is really static, and is needed by each >> user, wouldn't the design be better with the language tables in the FE? >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> The information contained in this transmission is intended only for >> the person or entity to which it is addressed and may contain II-VI >> Proprietary and/or II-VI Business Sensitive material. If you are not >> the intended recipient, please contact the sender immediately and >> destroy the material in its entirety, whether electronic or hard copy. >> You are notified that any review, retransmission, copying, >> disclosure, dissemination, or other use of, or taking of any action >> in reliance upon this information by persons or entities other than >> the intended > recipient is prohibited. >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Sat Feb 21 16:02:16 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Sat, 21 Feb 2009 17:02:16 -0500 Subject: [AccessD] Find First in an Array? - The Solution References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <82745B5E88DE4DF2873544CB371BED1B@HAL9005> <499ff7dc.0a04d00a.7b19.593f@mx.google.com> <9348165EACB84473BF8DFF66D7F51274@HAL9005><49a02500.0508d00a.4eb0.ffffbe67@mx.google.com> <49A0319B.70600@colbyconsulting.com> <49A039AA.80903@colbyconsulting.com> <49a05c38.0508d00a.4eb0.ffffb1d0@mx.google.com> Message-ID: <3F18D21AB48C494CA24F451109FD3C3C@jislaptopdev> ...ouch! ...so simple ...so obvious ...the old thing about too busy looking at the trees to see the forest :) ...still ...assuming JC posts the mdb sample ...we got a good look at using classes and collections in the real world. William -------------------------------------------------- From: "Max Wanadoo" Sent: Saturday, February 21, 2009 2:55 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Find First in an Array? - The Solution > No Rocky, > You have missed the WHOLE concept! Sorry to be pedantic, but:- > 1. You do this ONCE on each installation for each language , or > 2. You do it for them BEFORE you distribute the app, or > 3. You ALLOW them to do it themselves if you decide that is ok. > 4. There is no "open form, run the translation code to change the captions > EACH AND EVERY time we open the form". The captions are correct ALL THE > TIME. This is could easily be, "ok, not you have to restart the app > before > your selection are implemented, etc - how many apps have we installed > where > it says something similar, but it is actually changed there and then!!! > 5. Once you have run this code, you never have to run it again (unless you > want to). > 6. No, you don't have to restart, but I would recommend it. > 7. No, repeat NO overheads at run time. No Collections, no Containers, no > Classes (sorry JC), no nothing... your code is now showing the captions as > if you had given it to them "exactly as" when you sent it to them. > > If that doesn't solve your problem, then I leave to others to come up > with > a better solution then RUN ONCE AND FORGET! > > Max > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: 21 February 2009 17:41 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Max said so. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Saturday, February 21, 2009 9:28 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Why do you have to restart the app? > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: >> So, I'll spill the beans. When the user changes languages Max's >> solution opens the form hidden in design mode, updates the captions >> from the language table, and save it back. Then you have to restart >> the app to see then new captions. >> >> Two problems for me: 1) since there are about 90 forms and 60 reports, >> so there would be some delay in changing languages but since that >> wouldn't happen very often I suppose it would be tolerable, and 2) and >> more important, I distribute my app as an mde so I don't think I can >> open the forms in design view at run time. >> >> But for an mdb, good solution. >> >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Saturday, February 21, 2009 8:54 AM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? - The Solution >> >> Have you patented it yet? >> >> ;) >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> There is no comparison. Nothing else comes even close. >>> >>> Can't post to list as it is an mdb -I will send to your email. >>> >>> Off to pub now. Hope you like it. >>> >>> Max >>> >>> >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >>> Smolin at Beach Access Software >>> Sent: 21 February 2009 15:04 >>> To: 'Access Developers discussion and problem solving' >>> Subject: Re: [AccessD] Find First in an Array? - The Solution >>> >>> YES! Post it to the list. I'll drop it into Colby's demo and set a >>> switch so it can go back and forth. >>> >>> In fact, that demo could be the template for making comparisons among >>> all >>> the solutions. >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >>> >>> >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max >>> Wanadoo >>> Sent: Saturday, February 21, 2009 4:47 AM >>> To: 'Access Developers discussion and problem solving' >>> Subject: Re: [AccessD] Find First in an Array? - The Solution >>> >>> Hello Rocky, >>> Well, I have read with interest all the to-ing and fro-ing from the >>> various contributors. >>> So, I laid me down laterally and started thinking laterally. >>> The solution came to be sometime around my 3rd drink. >>> I consolidated my thoughts in bed. >>> When I woke this morning, I tested them out with a sample mdb using >>> English, French and German. All work beautifully. Add as many >>> languages as you want. >>> >>> The solution I have has the following benefits: >>> >>> Instantaneous >>> No variables >>> No Collections >>> No Classes (although the solution could be said to be upper class >>> No Arrays No Memory overheads Forms shown the language required >>> every time with no overheads. >>> Unlimited Languages >>> >>> Should I post the sample mdb to you? >>> >>> Max >>> Ps. Bet your intrigued - you will love this solution. >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >>> Smolin at Beach Access Software >>> Sent: 20 February 2009 23:48 >>> To: 'Access Developers discussion and problem solving' >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> In the case of this app, however, there can be multiple back ends in >>> different locations. So to get them updated I'd have to send out an >>> update program. Or embed the updates in the next release of the >>> front end. And check each back end that gets opened to see if the >>> latest updates were in there. Actually, keeping the latest Language >>> table in the front end and transferring it to the back end on opening >>> each time would ensure that the back end was up to date. >>> >>> But at that point, with the language table in the front end anyway, >>> wouldn't it make sense just to run the translations from the front >>> end >> table? >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >>> >>> >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka >>> Sent: Friday, February 20, 2009 1:50 PM >>> To: Access Developers discussion and problem solving >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> And this is where Global Classes come into play. >>> >>> In the case of your multi-lingual app, your data may not change very >>> often, but it has the potential to change. That being the case, by >>> putting the data in the BE, you don't have to update the FE for a >>> simple >> data change. >>> However, instead of constantly pulling the data across from the BE, >>> you load the class when your app starts up, and the data is simply >>> kept in >> memory. >>> Pulling a few thousand records really isn't a big deal, as long as >>> they aren't memo fields with megs of information. 2.5k records, with >>> even 1k cay of information is only going to use 2.5 megs of RAM >>> (roughly) In the case where you are storing a few bytes of info, >>> it's negligent, especially on machines where 1 to 2 gig is standard RAM. >>> >>> Even in situations like a State table (TX, AL, FL, etc.). Sure, >>> there are 50 states now, but putting lookup tables in the FE can lead >>> to unnecessary mass updates. >>> >>> Drew >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >>> Smolin at Beach Access Software >>> Sent: Friday, February 20, 2009 2:06 PM >>> To: 'Access Developers discussion and problem solving' >>> Subject: Re: [AccessD] Find First in an Array? >>> >>> " I am not going to get into the "this is a local table so it goes in >>> the FE... oh damn, now I gotta go update the data in 5 different FEs". >>> BEs are for data (in my world)." >>> >>> In my case, where the 'data' is really static, and is needed by each >>> user, wouldn't the design be better with the language tables in the FE? >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >>> >>> >>> >>> The information contained in this transmission is intended only for >>> the person or entity to which it is addressed and may contain II-VI >>> Proprietary and/or II-VI Business Sensitive material. If you are not >>> the intended recipient, please contact the sender immediately and >>> destroy the material in its entirety, whether electronic or hard copy. >>> You are notified that any review, retransmission, copying, >>> disclosure, dissemination, or other use of, or taking of any action >>> in reliance upon this information by persons or entities other than >>> the intended >> recipient is prohibited. >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From Gustav at cactus.dk Sat Feb 21 17:14:19 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Sun, 22 Feb 2009 00:14:19 +0100 Subject: [AccessD] Find First in an Array? - The Solution Message-ID: Hi Max and Rocky OK, that minor reason turned into a major; you will perform design changes of the forms which isn't possible in an mde. /gustav >>> Gustav at cactus.dk 21-02-2009 16:10 >>> Hi Max Very good! You have point here. It's a bit like Drew's suggestion but with a clever twist which I will leave for others to figure out (I have seen the sample db from Max). I can, however, think of one minor reason to not use your approach. Who said you don't get bright ideas while sleeping? /gustav >>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> Hello Rocky, Well, I have read with interest all the to-ing and fro-ing from the various contributors. So, I laid me down laterally and started thinking laterally. The solution came to be sometime around my 3rd drink. I consolidated my thoughts in bed. When I woke this morning, I tested them out with a sample mdb using English, French and German. All work beautifully. Add as many languages as you want. The solution I have has the following benefits: Instantaneous No variables No Collections No Classes (although the solution could be said to be upper class No Arrays No Memory overheads Forms shown the language required every time with no overheads. Unlimited Languages Should I post the sample mdb to you? Max Ps. Bet your intrigued - you will love this solution. From tinanfields at torchlake.com Sat Feb 21 18:01:36 2009 From: tinanfields at torchlake.com (Tina Norris Fields) Date: Sat, 21 Feb 2009 19:01:36 -0500 Subject: [AccessD] A Design Opinion, Please Message-ID: <49A095E0.1080304@torchlake.com> Hi All, On a data entry form, where a choice should be made to identify the sales staff person primarily responsible for a particular customer, which of these methods is better and why? Method 1 - set the sales staff field in the table to be a lookup field Method 2 - place a combobox on the form that looks up the sales staff and then updates the field in the table. This is a remodeling job. The outside sales people need to know who the lead sales staff person is on any given customer. However, at present the main data entry form does not indicate that information. I'll be making this change, and I got to thinking about which approach would be the wiser of the two. Thanks for your opinions. Tina From stuart at lexacorp.com.pg Sat Feb 21 18:29:47 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Sun, 22 Feb 2009 10:29:47 +1000 Subject: [AccessD] Translation data length (cache used) In-Reply-To: <49A03996.9040804@colbyconsulting.com> References: <49A03996.9040804@colbyconsulting.com> Message-ID: <49A1291B.11287.4DDA9FE@stuart.lexacorp.com.pg> Len() measures in characters. Access stores string data as a 10 byte header, followed by the character data in Unicode, using 2 bytes per character So 2500 strings with a total length of 140,000 character will take (2,500*10) + (140,000*2) = 305,000 bytes. -- Stuart On 21 Feb 2009 at 12:27, jwcolby wrote: > Using the following function I calculated the lengths of all of the translation strings in every > translation field: > > Function mTotalDataLength() > Dim db As DAO.Database > Dim rst As DAO.Recordset > Dim lngDataLength As Long > Dim intFld As Integer > Set db = CurrentDb > Set rst = db.OpenRecordset("tblLanguage-Controls") > With rst > For intFld = 4 To 8 > .MoveFirst > While Not .EOF > If Not (IsNull(rst(intFld).Value)) Then > lngDataLength = lngDataLength + Len(rst(intFld).Value) > End If > .MoveNext > Wend > Debug.Print intFld & ":" & lngDataLength > Next intFld > End With > End Function > > mTotalDataLength > 4:43879 > 5:56558 > 6:69133 > 7:107050 > 8:140369 > > Spanish and French are by far the most verbose. In any event, if you are caching the data for every > single form for a single language, the total data cached is about 140K. > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From dwaters at usinternet.com Sat Feb 21 18:31:38 2009 From: dwaters at usinternet.com (Dan Waters) Date: Sat, 21 Feb 2009 18:31:38 -0600 Subject: [AccessD] A Design Opinion, Please In-Reply-To: <49A095E0.1080304@torchlake.com> References: <49A095E0.1080304@torchlake.com> Message-ID: <50C886505720497E9E8F0655DE833124@danwaters> Hi Tina, It sounds like your app is accessed both by people who know who the primary sales person, and also by people who may not know but need to know. How about this: Your Customer table should have a field for PrimarySalesPerson, and that field should contain this person's name. In the form, when a customer is selected, then the Primary Sales person will display in a combobox, where the combobox is bound to the PrimarySalesPerson field. If there isn't a Primary Sales Person, then the field will be blank, indicating that no one has been selected - the inside sales people can then select someone. If there is a person listed but they are now incorrect, then your inside people can change who it is. So, your outside people will also know who the current Primary Sales Person is (or that there isn't one) immediately after the Customer is selected. The Customer table will be the data source for the form, and a separate, non-related lookup table of all Sales People will be the Row Source for the Primary Sales Person combobox. Hope this helps! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Tina Norris Fields Sent: Saturday, February 21, 2009 6:02 PM To: Access Developers discussion and problem solving Subject: [AccessD] A Design Opinion, Please Hi All, On a data entry form, where a choice should be made to identify the sales staff person primarily responsible for a particular customer, which of these methods is better and why? Method 1 - set the sales staff field in the table to be a lookup field Method 2 - place a combobox on the form that looks up the sales staff and then updates the field in the table. This is a remodeling job. The outside sales people need to know who the lead sales staff person is on any given customer. However, at present the main data entry form does not indicate that information. I'll be making this change, and I got to thinking about which approach would be the wiser of the two. Thanks for your opinions. Tina -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Sat Feb 21 18:38:26 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 21 Feb 2009 19:38:26 -0500 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <3F18D21AB48C494CA24F451109FD3C3C@jislaptopdev> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <82745B5E88DE4DF2873544CB371BED1B@HAL9005> <499ff7dc.0a04d00a.7b19.593f@mx.google.com> <9348165EACB84473BF8DFF66D7F51274@HAL9005><49a02500.0508d00a.4eb0.ffffbe67@mx.google.com> <49A0319B.70600@colbyconsulting.com> <49A039AA.80903@colbyconsulting.com> <49a05c38.0508d00a.4eb0.ffffb1d0@mx.google.com> <3F18D21AB48C494CA24F451109FD3C3C@jislaptopdev> Message-ID: <49A09E82.8010202@colbyconsulting.com> We need to get our web design person to do the posting. I am hoping to get Drew's solution as well, he might use classes as well, even if not it would give another perspective. John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...ouch! ...so simple ...so obvious ...the old thing about too busy looking > at the trees to see the forest :) > ...still ...assuming JC posts the mdb sample ...we got a good look at using > classes and collections in the real world. > > William > > -------------------------------------------------- > From: "Max Wanadoo" > Sent: Saturday, February 21, 2009 2:55 PM > To: "'Access Developers discussion and problem solving'" > > Subject: Re: [AccessD] Find First in an Array? - The Solution > >> No Rocky, >> You have missed the WHOLE concept! Sorry to be pedantic, but:- >> 1. You do this ONCE on each installation for each language , or >> 2. You do it for them BEFORE you distribute the app, or >> 3. You ALLOW them to do it themselves if you decide that is ok. >> 4. There is no "open form, run the translation code to change the captions >> EACH AND EVERY time we open the form". The captions are correct ALL THE >> TIME. This is could easily be, "ok, not you have to restart the app >> before >> your selection are implemented, etc - how many apps have we installed >> where >> it says something similar, but it is actually changed there and then!!! >> 5. Once you have run this code, you never have to run it again (unless you >> want to). >> 6. No, you don't have to restart, but I would recommend it. >> 7. No, repeat NO overheads at run time. No Collections, no Containers, no >> Classes (sorry JC), no nothing... your code is now showing the captions as >> if you had given it to them "exactly as" when you sent it to them. >> >> If that doesn't solve your problem, then I leave to others to come up >> with >> a better solution then RUN ONCE AND FORGET! >> >> Max >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at >> Beach Access Software >> Sent: 21 February 2009 17:41 >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Find First in an Array? - The Solution >> >> Max said so. >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Saturday, February 21, 2009 9:28 AM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? - The Solution >> >> Why do you have to restart the app? >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Rocky Smolin at Beach Access Software wrote: >>> So, I'll spill the beans. When the user changes languages Max's >>> solution opens the form hidden in design mode, updates the captions >>> from the language table, and save it back. Then you have to restart >>> the app to see then new captions. >>> >>> Two problems for me: 1) since there are about 90 forms and 60 reports, >>> so there would be some delay in changing languages but since that >>> wouldn't happen very often I suppose it would be tolerable, and 2) and >>> more important, I distribute my app as an mde so I don't think I can >>> open the forms in design view at run time. >>> >>> But for an mdb, good solution. >>> >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >>> >>> >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>> Sent: Saturday, February 21, 2009 8:54 AM >>> To: Access Developers discussion and problem solving >>> Subject: Re: [AccessD] Find First in an Array? - The Solution >>> >>> Have you patented it yet? >>> >>> ;) >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Max Wanadoo wrote: >>>> There is no comparison. Nothing else comes even close. >>>> >>>> Can't post to list as it is an mdb -I will send to your email. >>>> >>>> Off to pub now. Hope you like it. >>>> >>>> Max >>>> >>>> >>>> >>>> -----Original Message----- >>>> From: accessd-bounces at databaseadvisors.com >>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >>>> Smolin at Beach Access Software >>>> Sent: 21 February 2009 15:04 >>>> To: 'Access Developers discussion and problem solving' >>>> Subject: Re: [AccessD] Find First in an Array? - The Solution >>>> >>>> YES! Post it to the list. I'll drop it into Colby's demo and set a >>>> switch so it can go back and forth. >>>> >>>> In fact, that demo could be the template for making comparisons among >>>> all >>>> the solutions. >>>> >>>> >>>> Rocky Smolin >>>> Beach Access Software >>>> 858-259-4334 >>>> www.e-z-mrp.com >>>> www.bchacc.com >>>> >>>> >>>> >>>> -----Original Message----- >>>> From: accessd-bounces at databaseadvisors.com >>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max >>>> Wanadoo >>>> Sent: Saturday, February 21, 2009 4:47 AM >>>> To: 'Access Developers discussion and problem solving' >>>> Subject: Re: [AccessD] Find First in an Array? - The Solution >>>> >>>> Hello Rocky, >>>> Well, I have read with interest all the to-ing and fro-ing from the >>>> various contributors. >>>> So, I laid me down laterally and started thinking laterally. >>>> The solution came to be sometime around my 3rd drink. >>>> I consolidated my thoughts in bed. >>>> When I woke this morning, I tested them out with a sample mdb using >>>> English, French and German. All work beautifully. Add as many >>>> languages as you want. >>>> >>>> The solution I have has the following benefits: >>>> >>>> Instantaneous >>>> No variables >>>> No Collections >>>> No Classes (although the solution could be said to be upper class >>>> No Arrays No Memory overheads Forms shown the language required >>>> every time with no overheads. >>>> Unlimited Languages >>>> >>>> Should I post the sample mdb to you? >>>> >>>> Max >>>> Ps. Bet your intrigued - you will love this solution. >>>> >>>> -----Original Message----- >>>> From: accessd-bounces at databaseadvisors.com >>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >>>> Smolin at Beach Access Software >>>> Sent: 20 February 2009 23:48 >>>> To: 'Access Developers discussion and problem solving' >>>> Subject: Re: [AccessD] Find First in an Array? >>>> >>>> In the case of this app, however, there can be multiple back ends in >>>> different locations. So to get them updated I'd have to send out an >>>> update program. Or embed the updates in the next release of the >>>> front end. And check each back end that gets opened to see if the >>>> latest updates were in there. Actually, keeping the latest Language >>>> table in the front end and transferring it to the back end on opening >>>> each time would ensure that the back end was up to date. >>>> >>>> But at that point, with the language table in the front end anyway, >>>> wouldn't it make sense just to run the translations from the front >>>> end >>> table? >>>> Rocky Smolin >>>> Beach Access Software >>>> 858-259-4334 >>>> www.e-z-mrp.com >>>> www.bchacc.com >>>> >>>> >>>> >>>> -----Original Message----- >>>> From: accessd-bounces at databaseadvisors.com >>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka >>>> Sent: Friday, February 20, 2009 1:50 PM >>>> To: Access Developers discussion and problem solving >>>> Subject: Re: [AccessD] Find First in an Array? >>>> >>>> And this is where Global Classes come into play. >>>> >>>> In the case of your multi-lingual app, your data may not change very >>>> often, but it has the potential to change. That being the case, by >>>> putting the data in the BE, you don't have to update the FE for a >>>> simple >>> data change. >>>> However, instead of constantly pulling the data across from the BE, >>>> you load the class when your app starts up, and the data is simply >>>> kept in >>> memory. >>>> Pulling a few thousand records really isn't a big deal, as long as >>>> they aren't memo fields with megs of information. 2.5k records, with >>>> even 1k cay of information is only going to use 2.5 megs of RAM >>>> (roughly) In the case where you are storing a few bytes of info, >>>> it's negligent, especially on machines where 1 to 2 gig is standard RAM. >>>> >>>> Even in situations like a State table (TX, AL, FL, etc.). Sure, >>>> there are 50 states now, but putting lookup tables in the FE can lead >>>> to unnecessary mass updates. >>>> >>>> Drew >>>> >>>> -----Original Message----- >>>> From: accessd-bounces at databaseadvisors.com >>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >>>> Smolin at Beach Access Software >>>> Sent: Friday, February 20, 2009 2:06 PM >>>> To: 'Access Developers discussion and problem solving' >>>> Subject: Re: [AccessD] Find First in an Array? >>>> >>>> " I am not going to get into the "this is a local table so it goes in >>>> the FE... oh damn, now I gotta go update the data in 5 different FEs". >>>> BEs are for data (in my world)." >>>> >>>> In my case, where the 'data' is really static, and is needed by each >>>> user, wouldn't the design be better with the language tables in the FE? >>>> >>>> >>>> Rocky Smolin >>>> Beach Access Software >>>> 858-259-4334 >>>> www.e-z-mrp.com >>>> www.bchacc.com >>>> >>>> >>>> >>>> The information contained in this transmission is intended only for >>>> the person or entity to which it is addressed and may contain II-VI >>>> Proprietary and/or II-VI Business Sensitive material. If you are not >>>> the intended recipient, please contact the sender immediately and >>>> destroy the material in its entirety, whether electronic or hard copy. >>>> You are notified that any review, retransmission, copying, >>>> disclosure, dissemination, or other use of, or taking of any action >>>> in reliance upon this information by persons or entities other than >>>> the intended >>> recipient is prohibited. >>>> -- >>>> AccessD mailing list >>>> AccessD at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>> Website: http://www.databaseadvisors.com >>>> >>>> -- >>>> AccessD mailing list >>>> AccessD at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>> Website: http://www.databaseadvisors.com >>>> >>>> -- >>>> AccessD mailing list >>>> AccessD at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>> Website: http://www.databaseadvisors.com >>>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From ssharkins at gmail.com Sat Feb 21 18:54:17 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Sat, 21 Feb 2009 19:54:17 -0500 Subject: [AccessD] A Design Opinion, Please References: <49A095E0.1080304@torchlake.com> Message-ID: <832FE0D3AF404777B69975D9DBB4974C@SusanOne> Why not just revamp the underlying query to include the lead salesperson and add it as a text field? Susan H. > Hi All, > > On a data entry form, where a choice should be made to identify the > sales staff person primarily responsible for a particular customer, > which of these methods is better and why? > > Method 1 - set the sales staff field in the table to be a lookup field > Method 2 - place a combobox on the form that looks up the sales staff > and then updates the field in the table. > > This is a remodeling job. The outside sales people need to know who the > lead sales staff person is on any given customer. However, at present > the main data entry form does not indicate that information. I'll be > making this change, and I got to thinking about which approach would be > the wiser of the two. > > Thanks for your opinions. > > Tina > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sat Feb 21 19:12:16 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 22 Feb 2009 01:12:16 -0000 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: References: Message-ID: <49a0a674.1701d00a.1bce.1568@mx.google.com> Hi Gustav, Pub is now dry.. came home...ha! Well, if you are sending an MDE you would run the Translation Program then convert to an .MDE and then send it to client and then go back to pub - eh? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 21 February 2009 23:14 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Find First in an Array? - The Solution Hi Max and Rocky OK, that minor reason turned into a major; you will perform design changes of the forms which isn't possible in an mde. /gustav >>> Gustav at cactus.dk 21-02-2009 16:10 >>> Hi Max Very good! You have point here. It's a bit like Drew's suggestion but with a clever twist which I will leave for others to figure out (I have seen the sample db from Max). I can, however, think of one minor reason to not use your approach. Who said you don't get bright ideas while sleeping? /gustav >>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> Hello Rocky, Well, I have read with interest all the to-ing and fro-ing from the various contributors. So, I laid me down laterally and started thinking laterally. The solution came to be sometime around my 3rd drink. I consolidated my thoughts in bed. When I woke this morning, I tested them out with a sample mdb using English, French and German. All work beautifully. Add as many languages as you want. The solution I have has the following benefits: Instantaneous No variables No Collections No Classes (although the solution could be said to be upper class No Arrays No Memory overheads Forms shown the language required every time with no overheads. Unlimited Languages Should I post the sample mdb to you? Max Ps. Bet your intrigued - you will love this solution. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sat Feb 21 19:32:45 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 22 Feb 2009 01:32:45 -0000 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: References: Message-ID: <49a0ab40.0707d00a.614b.5f0f@mx.google.com> I beg your pardon. I never promised you a Rose Garden. Along with the Sun has to come a little rain sometime. Eh? Max Ps With apologies to Country Music lovers everywhere.. Hic! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 21 February 2009 23:14 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Find First in an Array? - The Solution Hi Max and Rocky OK, that minor reason turned into a major; you will perform design changes of the forms which isn't possible in an mde. /gustav >>> Gustav at cactus.dk 21-02-2009 16:10 >>> Hi Max Very good! You have point here. It's a bit like Drew's suggestion but with a clever twist which I will leave for others to figure out (I have seen the sample db from Max). I can, however, think of one minor reason to not use your approach. Who said you don't get bright ideas while sleeping? /gustav >>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> Hello Rocky, Well, I have read with interest all the to-ing and fro-ing from the various contributors. So, I laid me down laterally and started thinking laterally. The solution came to be sometime around my 3rd drink. I consolidated my thoughts in bed. When I woke this morning, I tested them out with a sample mdb using English, French and German. All work beautifully. Add as many languages as you want. The solution I have has the following benefits: Instantaneous No variables No Collections No Classes (although the solution could be said to be upper class No Arrays No Memory overheads Forms shown the language required every time with no overheads. Unlimited Languages Should I post the sample mdb to you? Max Ps. Bet your intrigued - you will love this solution. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sat Feb 21 19:38:31 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 22 Feb 2009 01:38:31 -0000 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <3F18D21AB48C494CA24F451109FD3C3C@jislaptopdev> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <82745B5E88DE4DF2873544CB371BED1B@HAL9005> <499ff7dc.0a04d00a.7b19.593f@mx.google.com> <9348165EACB84473BF8DFF66D7F51274@HAL9005><49a02500.0508d00a.4eb0.ffffbe67@mx.google.com> <49A0319B.70600@colbyconsulting.com> <49A039AA.80903@colbyconsulting.com> <49a05c38.0508d00a.4eb0.ffffb1d0@mx.google.com> <3F18D21AB48C494CA24F451109FD3C3C@jislaptopdev> Message-ID: <49a0ac9a.0508d00a.10a4.00bc@mx.google.com> Yep! Which is why I do lateral programming. Takes one away from the trees and forest and goes back to "What are we actually trying to do here.." Lies me down. Has me a drinkie poo or two. Closes eyes and thinks of problem. Works for me - smile! Max Ps I am still going to follow JC's Master Class on Class Objects once the posting have finished and I can get a good run at it - JC? -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: 21 February 2009 22:02 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution ...ouch! ...so simple ...so obvious ...the old thing about too busy looking at the trees to see the forest :) ...still ...assuming JC posts the mdb sample ...we got a good look at using classes and collections in the real world. William From jwcolby at colbyconsulting.com Sat Feb 21 19:52:44 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 21 Feb 2009 20:52:44 -0500 Subject: [AccessD] Translation data length (cache used) In-Reply-To: <49A1291B.11287.4DDA9FE@stuart.lexacorp.com.pg> References: <49A03996.9040804@colbyconsulting.com> <49A1291B.11287.4DDA9FE@stuart.lexacorp.com.pg> Message-ID: <49A0AFEC.9060606@colbyconsulting.com> Well... you just convinced me not to do that! ;-) John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > Len() measures in characters. > > Access stores string data as a 10 byte header, followed by the character data in Unicode, > using 2 bytes per character > > So 2500 strings with a total length of 140,000 character will take > (2,500*10) + (140,000*2) = 305,000 bytes. > > From jwcolby at colbyconsulting.com Sat Feb 21 20:00:07 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 21 Feb 2009 21:00:07 -0500 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <49a0ac9a.0508d00a.10a4.00bc@mx.google.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <82745B5E88DE4DF2873544CB371BED1B@HAL9005> <499ff7dc.0a04d00a.7b19.593f@mx.google.com> <9348165EACB84473BF8DFF66D7F51274@HAL9005><49a02500.0508d00a.4eb0.ffffbe67@mx.google.com> <49A0319B.70600@colbyconsulting.com> <49A039AA.80903@colbyconsulting.com> <49a05c38.0508d00a.4eb0.ffffb1d0@mx.google.com> <3F18D21AB48C494CA24F451109FD3C3C@jislaptopdev> <49a0ac9a.0508d00a.10a4.00bc@mx.google.com> Message-ID: <49A0B1A7.8060505@colbyconsulting.com> We have to get our webmaster to post the file. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Yep! Which is why I do lateral programming. > > Takes one away from the trees and forest and goes back to "What are we > actually trying to do here.." > > Lies me down. Has me a drinkie poo or two. Closes eyes and thinks of > problem. > > Works for me - smile! > > Max > Ps I am still going to follow JC's Master Class on Class Objects once the > posting have finished and I can get a good run at it - JC? > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman > Sent: 21 February 2009 22:02 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution > > ...ouch! ...so simple ...so obvious ...the old thing about too busy looking > at the trees to see the forest :) > ...still ...assuming JC posts the mdb sample ...we got a good look at using > classes and collections in the real world. > > William > From wdhindman at dejpolsystems.com Sat Feb 21 20:13:16 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Sat, 21 Feb 2009 21:13:16 -0500 Subject: [AccessD] A Design Opinion, Please References: <49A095E0.1080304@torchlake.com> Message-ID: ...I learned the hard way never to set a lookup in a table field :( William -------------------------------------------------- From: "Tina Norris Fields" Sent: Saturday, February 21, 2009 7:01 PM To: "Access Developers discussion and problem solving" Subject: [AccessD] A Design Opinion, Please > Hi All, > > On a data entry form, where a choice should be made to identify the > sales staff person primarily responsible for a particular customer, > which of these methods is better and why? > > Method 1 - set the sales staff field in the table to be a lookup field > Method 2 - place a combobox on the form that looks up the sales staff > and then updates the field in the table. > > This is a remodeling job. The outside sales people need to know who the > lead sales staff person is on any given customer. However, at present > the main data entry form does not indicate that information. I'll be > making this change, and I got to thinking about which approach would be > the wiser of the two. > > Thanks for your opinions. > > Tina > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Sat Feb 21 20:15:20 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 21 Feb 2009 21:15:20 -0500 Subject: [AccessD] Translation data length (cache used) In-Reply-To: <49A1291B.11287.4DDA9FE@stuart.lexacorp.com.pg> References: <49A03996.9040804@colbyconsulting.com> <49A1291B.11287.4DDA9FE@stuart.lexacorp.com.pg> Message-ID: <49A0B538.6090200@colbyconsulting.com> I read somewhere long ago that VBA stored strings as 4 bytes that were a length, the data, and a trailing Null. That would be a 5 byte overhead. Nowhere did it discuss unicode, though this was before the days when unicode was so popular. Can you point me to an explanation of what you are saying? I Googled trying to find any such definition and failed. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > Len() measures in characters. > > Access stores string data as a 10 byte header, followed by the character data in Unicode, > using 2 bytes per character > > So 2500 strings with a total length of 140,000 character will take > (2,500*10) + (140,000*2) = 305,000 bytes. > > From wdhindman at dejpolsystems.com Sat Feb 21 20:17:05 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Sat, 21 Feb 2009 21:17:05 -0500 Subject: [AccessD] A Design Opinion, Please References: <49A095E0.1080304@torchlake.com> <832FE0D3AF404777B69975D9DBB4974C@SusanOne> Message-ID: <05F93C2A446D46ABB236DDBD98CD8757@jislaptopdev> ...if the business rules don't include allowing an outside sales person to designate the customer lead, this would be my approach as well. William -------------------------------------------------- From: "Susan Harkins" Sent: Saturday, February 21, 2009 7:54 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] A Design Opinion, Please > Why not just revamp the underlying query to include the lead salesperson > and > add it as a text field? > > Susan H. > >> Hi All, >> >> On a data entry form, where a choice should be made to identify the >> sales staff person primarily responsible for a particular customer, >> which of these methods is better and why? >> >> Method 1 - set the sales staff field in the table to be a lookup field >> Method 2 - place a combobox on the form that looks up the sales staff >> and then updates the field in the table. >> >> This is a remodeling job. The outside sales people need to know who the >> lead sales staff person is on any given customer. However, at present >> the main data entry form does not indicate that information. I'll be >> making this change, and I got to thinking about which approach would be >> the wiser of the two. >> >> Thanks for your opinions. >> >> Tina >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From stuart at lexacorp.com.pg Sat Feb 21 21:35:29 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Sun, 22 Feb 2009 13:35:29 +1000 Subject: [AccessD] Translation data length (cache used) In-Reply-To: <49A0AFEC.9060606@colbyconsulting.com> References: <49A03996.9040804@colbyconsulting.com>, <49A1291B.11287.4DDA9FE@stuart.lexacorp.com.pg>, <49A0AFEC.9060606@colbyconsulting.com> Message-ID: <49A154A1.15383.587ABE5@stuart.lexacorp.com.pg> It's not that bad. It's ony 300KB Take a look at your Processes in Task Manager. Load an instance of Access and you load up about 9 - 10MB.. Load an MDB and it goes up by about another MB Just open one fairly simple form and you add about another 500KB Even if you only have 1GB of RAM, which is really the minimum requirement these days, You are talking about a 3% increase in the RAM requirement. for the application and .03% increase in overall RAM utilisation. -- Stuart On 21 Feb 2009 at 20:52, jwcolby wrote: > Well... you just convinced me not to do that! > > ;-) > > John W. Colby > www.ColbyConsulting.com > > > Stuart McLachlan wrote: > > Len() measures in characters. > > > > Access stores string data as a 10 byte header, followed by the character data in Unicode, > > using 2 bytes per character > > > > So 2500 strings with a total length of 140,000 character will take > > (2,500*10) + (140,000*2) = 305,000 bytes. > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Sat Feb 21 21:47:53 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Sun, 22 Feb 2009 13:47:53 +1000 Subject: [AccessD] Translation data length (cache used) In-Reply-To: <49A0B538.6090200@colbyconsulting.com> References: <49A03996.9040804@colbyconsulting.com>, <49A1291B.11287.4DDA9FE@stuart.lexacorp.com.pg>, <49A0B538.6090200@colbyconsulting.com> Message-ID: <49A15789.17184.59307D9@stuart.lexacorp.com.pg> >From Access 2003 - VBA Help: Data Type Summary String (variable-length) 10 bytes + string length 0 to approximately 2 billion and Differences in String Function Operations The memory storage formats for text differ between Visual Basic for Applications (VBA) code and Access Basic code. (Access Basic was used in early versions of Microsoft Access.) Text is stored in ANSI format within Access Basic code and in Unicode format in Visual Basic. The Unicode format is used in Visual Basic to match the format of text within OLE, which is indirectly related to Visual Basic. ...snip... Storage format Storage pattern Description Unicode 41 00 42 00 43 00 42 30 44 30 46 30 Each character is stored as 2 bytes. ANSI 41 42 43 82 A0 82 A2 82 A4 ASCII characters are stored as 1 byte; double-byte characters are stored as 2 bytes. -- Stuart On 21 Feb 2009 at 21:15, jwcolby wrote: > I read somewhere long ago that VBA stored strings as 4 bytes that were a length, the data, and a > trailing Null. > > That would be a 5 byte overhead. Nowhere did it discuss unicode, though this was before the days > when unicode was so popular. > > Can you point me to an explanation of what you are saying? I Googled trying to find any such > definition and failed. > > John W. Colby > www.ColbyConsulting.com > > > Stuart McLachlan wrote: > > Len() measures in characters. > > > > Access stores string data as a 10 byte header, followed by the character data in Unicode, > > using 2 bytes per character > > > > So 2500 strings with a total length of 140,000 character will take > > (2,500*10) + (140,000*2) = 305,000 bytes. > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Sat Feb 21 22:31:54 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 21 Feb 2009 23:31:54 -0500 Subject: [AccessD] Translation data length (cache used) In-Reply-To: <49A154A1.15383.587ABE5@stuart.lexacorp.com.pg> References: <49A03996.9040804@colbyconsulting.com>, <49A1291B.11287.4DDA9FE@stuart.lexacorp.com.pg>, <49A0AFEC.9060606@colbyconsulting.com> <49A154A1.15383.587ABE5@stuart.lexacorp.com.pg> Message-ID: <49A0D53A.6040205@colbyconsulting.com> LOL, I know. I was being facetious. I have said previously in this discussion that the space to cache my data so far has been trivial and of no consequence to me. It is important to try to understand what the requirements actually are however. At some point it might not be trivial and I would have to seriously consider the efficacy of doing so.. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > It's not that bad. It's ony 300KB > > Take a look at your Processes in Task Manager. > Load an instance of Access and you load up about 9 - 10MB.. > Load an MDB and it goes up by about another MB > Just open one fairly simple form and you add about another 500KB > > Even if you only have 1GB of RAM, which is really the minimum requirement these days, > You are talking about a 3% increase in the RAM requirement. for the application and .03% > increase in overall RAM utilisation. > From jwcolby at colbyconsulting.com Sat Feb 21 22:33:44 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 21 Feb 2009 23:33:44 -0500 Subject: [AccessD] Translation data length (cache used) In-Reply-To: <49A15789.17184.59307D9@stuart.lexacorp.com.pg> References: <49A03996.9040804@colbyconsulting.com>, <49A1291B.11287.4DDA9FE@stuart.lexacorp.com.pg>, <49A0B538.6090200@colbyconsulting.com> <49A15789.17184.59307D9@stuart.lexacorp.com.pg> Message-ID: <49A0D5A8.1040907@colbyconsulting.com> Stuart, Thanks for that. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: >>From Access 2003 - VBA Help: > > Data Type Summary > String > (variable-length) 10 bytes + string length 0 to approximately 2 billion > > and > > Differences in String Function Operations > The memory storage formats for text differ between Visual Basic for Applications (VBA) > code and Access Basic code. (Access Basic was used in early versions of Microsoft > Access.) Text is stored in ANSI format within Access Basic code and in Unicode format in > Visual Basic. > > The Unicode format is used in Visual Basic to match the format of text within OLE, which is > indirectly related to Visual Basic. > ...snip... > Storage format Storage pattern Description > Unicode 41 00 42 00 43 00 42 30 44 30 46 30 Each character is stored as 2 bytes. > ANSI 41 42 43 82 A0 82 A2 82 A4 ASCII characters are stored as 1 byte; double-byte > characters are stored as 2 bytes. > From jwcolby at colbyconsulting.com Sat Feb 21 22:36:32 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 21 Feb 2009 23:36:32 -0500 Subject: [AccessD] Translation data length (cache used) In-Reply-To: <49A154A1.15383.587ABE5@stuart.lexacorp.com.pg> References: <49A03996.9040804@colbyconsulting.com>, <49A1291B.11287.4DDA9FE@stuart.lexacorp.com.pg>, <49A0AFEC.9060606@colbyconsulting.com> <49A154A1.15383.587ABE5@stuart.lexacorp.com.pg> Message-ID: <49A0D650.6070903@colbyconsulting.com> In fact it will almost never actually be that bad anyway. In this case I only cache the data actually used once. Thus if there are a hundred forms in the database and 20 are actually opened during a session, I would only cache the data for those 20 forms. Worst case of course is every single form is opened, but really, how often will that happen. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > It's not that bad. It's ony 300KB > > Take a look at your Processes in Task Manager. > Load an instance of Access and you load up about 9 - 10MB.. > Load an MDB and it goes up by about another MB > Just open one fairly simple form and you add about another 500KB > > Even if you only have 1GB of RAM, which is really the minimum requirement these days, > You are talking about a 3% increase in the RAM requirement. for the application and .03% > increase in overall RAM utilisation. > From max.wanadoo at gmail.com Sun Feb 22 00:27:50 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 22 Feb 2009 06:27:50 -0000 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <82745B5E88DE4DF2873544CB371BED1B@HAL9005> <499ff7dc.0a04d00a.7b19.593f@mx.google.com> <9348165EACB84473BF8DFF66D7F51274@HAL9005><49a02500.0508d00a.4eb0.ffffbe67@mx.google.com> <49A0319B.70600@colbyconsulting.com> Message-ID: <49a0f06b.1701d00a.1c87.ffff8c14@mx.google.com> Hello Rocky, Not quite sure of how you handle things but assuming you have a master.mdb and a client requires a copy of your app or an update to the app, why don't you copy your master.mdb to client.mdb, run the translation program, compile it to client.mde and send that to the client ready to go? I mean, why would you want to translate each form over and over again each time it is opened. I am assuming that your client wouldn't want to keep changing language bases. Although I am fluent in English and have a passable knowledge of Scottish and Welsh and can even understand those from Newcastle if they spoke slowly, I would still want to leave my edition of the app in English. Ps. In your case substitute Montana, Pennsylvania and The Bronx for the locations listed above. Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 21 February 2009 17:04 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution So, I'll spill the beans. When the user changes languages Max's solution opens the form hidden in design mode, updates the captions from the language table, and save it back. Then you have to restart the app to see then new captions. Two problems for me: 1) since there are about 90 forms and 60 reports, so there would be some delay in changing languages but since that wouldn't happen very often I suppose it would be tolerable, and 2) and more important, I distribute my app as an mde so I don't think I can open the forms in design view at run time. But for an mdb, good solution. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, February 21, 2009 8:54 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Have you patented it yet? ;) John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > There is no comparison. Nothing else comes even close. > > Can't post to list as it is an mdb -I will send to your email. > > Off to pub now. Hope you like it. > > Max > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 21 February 2009 15:04 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > YES! Post it to the list. I'll drop it into Colby's demo and set a > switch so it can go back and forth. > > In fact, that demo could be the template for making comparisons among all > the solutions. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Saturday, February 21, 2009 4:47 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hello Rocky, > Well, I have read with interest all the to-ing and fro-ing from the > various contributors. > So, I laid me down laterally and started thinking laterally. > The solution came to be sometime around my 3rd drink. > I consolidated my thoughts in bed. > When I woke this morning, I tested them out with a sample mdb using > English, French and German. All work beautifully. Add as many > languages as you want. > > The solution I have has the following benefits: > > Instantaneous > No variables > No Collections > No Classes (although the solution could be said to be upper class > No Arrays No Memory overheads Forms shown the language required > every time with no overheads. > Unlimited Languages > > Should I post the sample mdb to you? > > Max > Ps. Bet your intrigued - you will love this solution. > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 20 February 2009 23:48 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > In the case of this app, however, there can be multiple back ends in > different locations. So to get them updated I'd have to send out an > update program. Or embed the updates in the next release of the front > end. And check each back end that gets opened to see if the latest > updates were in there. Actually, keeping the latest Language table in > the front end and transferring it to the back end on opening each time > would ensure that the back end was up to date. > > But at that point, with the language table in the front end anyway, > wouldn't it make sense just to run the translations from the front end table? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Friday, February 20, 2009 1:50 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > And this is where Global Classes come into play. > > In the case of your multi-lingual app, your data may not change very > often, but it has the potential to change. That being the case, by > putting the data in the BE, you don't have to update the FE for a simple data change. > However, instead of constantly pulling the data across from the BE, > you load the class when your app starts up, and the data is simply kept in memory. > > Pulling a few thousand records really isn't a big deal, as long as > they aren't memo fields with megs of information. 2.5k records, with > even 1k cay of information is only going to use 2.5 megs of RAM > (roughly) In the case where you are storing a few bytes of info, it's > negligent, especially on machines where 1 to 2 gig is standard RAM. > > Even in situations like a State table (TX, AL, FL, etc.). Sure, there > are 50 states now, but putting lookup tables in the FE can lead to > unnecessary mass updates. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: Friday, February 20, 2009 2:06 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > " I am not going to get into the "this is a local table so it goes in > the FE... oh damn, now I gotta go update the data in 5 different FEs". > BEs are for data (in my world)." > > In my case, where the 'data' is really static, and is needed by each > user, wouldn't the design be better with the language tables in the FE? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > The information contained in this transmission is intended only for > the person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not > the intended recipient, please contact the sender immediately and > destroy the material in its entirety, whether electronic or hard copy. > You are notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance > upon this information by persons or entities other than the intended recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Sun Feb 22 02:39:56 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Sun, 22 Feb 2009 00:39:56 -0800 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <49a0f06b.1701d00a.1c87.ffff8c14@mx.google.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <82745B5E88DE4DF2873544CB371BED1B@HAL9005> <499ff7dc.0a04d00a.7b19.593f@mx.google.com> <9348165EACB84473BF8DFF66D7F51274@HAL9005><49a02500.0508d00a.4eb0.ffffbe67@mx.google.com> <49A0319B.70600@colbyconsulting.com> <49a0f06b.1701d00a.1c87.ffff8c14@mx.google.com> Message-ID: <0D9E727253304CDA8C23BC36A188744C@HAL9005> Well, I want to give the client the option of selecting the language they want and changing it if they want to. In a foreign owned company they might want to run two different languages. "I mean, why would you want to translate each form over and over again each time it is opened. " Well, actually I'm not doing it. The computer is doing it. So it's no skin off my cheek and I'm completely indifferent to the feelings of resent the computer may harbor. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Saturday, February 21, 2009 10:28 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Hello Rocky, Not quite sure of how you handle things but assuming you have a master.mdb and a client requires a copy of your app or an update to the app, why don't you copy your master.mdb to client.mdb, run the translation program, compile it to client.mde and send that to the client ready to go? I mean, why would you want to translate each form over and over again each time it is opened. I am assuming that your client wouldn't want to keep changing language bases. Although I am fluent in English and have a passable knowledge of Scottish and Welsh and can even understand those from Newcastle if they spoke slowly, I would still want to leave my edition of the app in English. Ps. In your case substitute Montana, Pennsylvania and The Bronx for the locations listed above. Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 21 February 2009 17:04 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution So, I'll spill the beans. When the user changes languages Max's solution opens the form hidden in design mode, updates the captions from the language table, and save it back. Then you have to restart the app to see then new captions. Two problems for me: 1) since there are about 90 forms and 60 reports, so there would be some delay in changing languages but since that wouldn't happen very often I suppose it would be tolerable, and 2) and more important, I distribute my app as an mde so I don't think I can open the forms in design view at run time. But for an mdb, good solution. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, February 21, 2009 8:54 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Have you patented it yet? ;) John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > There is no comparison. Nothing else comes even close. > > Can't post to list as it is an mdb -I will send to your email. > > Off to pub now. Hope you like it. > > Max > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 21 February 2009 15:04 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > YES! Post it to the list. I'll drop it into Colby's demo and set a > switch so it can go back and forth. > > In fact, that demo could be the template for making comparisons among all > the solutions. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Saturday, February 21, 2009 4:47 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hello Rocky, > Well, I have read with interest all the to-ing and fro-ing from the > various contributors. > So, I laid me down laterally and started thinking laterally. > The solution came to be sometime around my 3rd drink. > I consolidated my thoughts in bed. > When I woke this morning, I tested them out with a sample mdb using > English, French and German. All work beautifully. Add as many > languages as you want. > > The solution I have has the following benefits: > > Instantaneous > No variables > No Collections > No Classes (although the solution could be said to be upper class > No Arrays No Memory overheads Forms shown the language required > every time with no overheads. > Unlimited Languages > > Should I post the sample mdb to you? > > Max > Ps. Bet your intrigued - you will love this solution. > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 20 February 2009 23:48 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > In the case of this app, however, there can be multiple back ends in > different locations. So to get them updated I'd have to send out an > update program. Or embed the updates in the next release of the front > end. And check each back end that gets opened to see if the latest > updates were in there. Actually, keeping the latest Language table in > the front end and transferring it to the back end on opening each time > would ensure that the back end was up to date. > > But at that point, with the language table in the front end anyway, > wouldn't it make sense just to run the translations from the front end table? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Friday, February 20, 2009 1:50 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > And this is where Global Classes come into play. > > In the case of your multi-lingual app, your data may not change very > often, but it has the potential to change. That being the case, by > putting the data in the BE, you don't have to update the FE for a > simple data change. > However, instead of constantly pulling the data across from the BE, > you load the class when your app starts up, and the data is simply > kept in memory. > > Pulling a few thousand records really isn't a big deal, as long as > they aren't memo fields with megs of information. 2.5k records, with > even 1k cay of information is only going to use 2.5 megs of RAM > (roughly) In the case where you are storing a few bytes of info, it's > negligent, especially on machines where 1 to 2 gig is standard RAM. > > Even in situations like a State table (TX, AL, FL, etc.). Sure, there > are 50 states now, but putting lookup tables in the FE can lead to > unnecessary mass updates. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: Friday, February 20, 2009 2:06 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > " I am not going to get into the "this is a local table so it goes in > the FE... oh damn, now I gotta go update the data in 5 different FEs". > BEs are for data (in my world)." > > In my case, where the 'data' is really static, and is needed by each > user, wouldn't the design be better with the language tables in the FE? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > The information contained in this transmission is intended only for > the person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not > the intended recipient, please contact the sender immediately and > destroy the material in its entirety, whether electronic or hard copy. > You are notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance > upon this information by persons or entities other than the intended recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Sun Feb 22 02:41:16 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Sun, 22 Feb 2009 00:41:16 -0800 Subject: [AccessD] Translation data length (cache used) In-Reply-To: <49A05552.8000400@colbyconsulting.com> References: <49A03996.9040804@colbyconsulting.com><244608D7F3C14B80A0B2269C8DDB33C4@HAL9005> <49A05552.8000400@colbyconsulting.com> Message-ID: <67DED8BE075546618C3CEECC33BF6F0C@HAL9005> If you're seeing Chinese characters then it wouldn't it HAVE to be installed? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, February 21, 2009 11:26 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Translation data length (cache used) I don't have that font installed and don't want to install it. I am seeing Chinese characters in your table though. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > The Chinese is double word length per character I think. Did you > account for that? > > Also, I haven't tested your app with Chinese yet. Does it display OK? > You have to have the East Asian language package implemented in Windows. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Saturday, February 21, 2009 9:28 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Translation data length (cache used) > > Using the following function I calculated the lengths of all of the > translation strings in every translation field: > > Function mTotalDataLength() > Dim db As DAO.Database > Dim rst As DAO.Recordset > Dim lngDataLength As Long > Dim intFld As Integer > Set db = CurrentDb > Set rst = db.OpenRecordset("tblLanguage-Controls") > With rst > For intFld = 4 To 8 > .MoveFirst > While Not .EOF > If Not (IsNull(rst(intFld).Value)) Then > lngDataLength = lngDataLength + Len(rst(intFld).Value) > End If > .MoveNext > Wend > Debug.Print intFld & ":" & lngDataLength > Next intFld > End With > End Function > > mTotalDataLength > 4:43879 > 5:56558 > 6:69133 > 7:107050 > 8:140369 > > Spanish and French are by far the most verbose. In any event, if you > are caching the data for every single form for a single language, the > total data cached is about 140K. > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Sun Feb 22 02:47:16 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Sun, 22 Feb 2009 00:47:16 -0800 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <49a0a674.1701d00a.1bce.1568@mx.google.com> References: <49a0a674.1701d00a.1bce.1568@mx.google.com> Message-ID: <8E2FCA4F8F244B47B1E1C321CC80C357@HAL9005> Another complication - evaluators can be requested from the web site. I suppose I could ask for the language as part of the request. I'd have to allow them to ask for multiple copies - different languages in case French speaking management wanted to evaluate it as well as the Chinese workers in the factory. IOW, the customer may not know for sure which language they want. Plus I'd have to maintain currently 5 versions of the program - one for each language. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Saturday, February 21, 2009 5:12 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Hi Gustav, Pub is now dry.. came home...ha! Well, if you are sending an MDE you would run the Translation Program then convert to an .MDE and then send it to client and then go back to pub - eh? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 21 February 2009 23:14 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Find First in an Array? - The Solution Hi Max and Rocky OK, that minor reason turned into a major; you will perform design changes of the forms which isn't possible in an mde. /gustav >>> Gustav at cactus.dk 21-02-2009 16:10 >>> Hi Max Very good! You have point here. It's a bit like Drew's suggestion but with a clever twist which I will leave for others to figure out (I have seen the sample db from Max). I can, however, think of one minor reason to not use your approach. Who said you don't get bright ideas while sleeping? /gustav >>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> Hello Rocky, Well, I have read with interest all the to-ing and fro-ing from the various contributors. So, I laid me down laterally and started thinking laterally. The solution came to be sometime around my 3rd drink. I consolidated my thoughts in bed. When I woke this morning, I tested them out with a sample mdb using English, French and German. All work beautifully. Add as many languages as you want. The solution I have has the following benefits: Instantaneous No variables No Collections No Classes (although the solution could be said to be upper class No Arrays No Memory overheads Forms shown the language required every time with no overheads. Unlimited Languages Should I post the sample mdb to you? Max Ps. Bet your intrigued - you will love this solution. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sun Feb 22 03:50:21 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 22 Feb 2009 09:50:21 -0000 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <8E2FCA4F8F244B47B1E1C321CC80C357@HAL9005> References: <49a0a674.1701d00a.1bce.1568@mx.google.com> <8E2FCA4F8F244B47B1E1C321CC80C357@HAL9005> Message-ID: <49a11fe0.1c05d00a.4b91.12d5@mx.google.com> >>Plus I'd have to maintain currently 5 versions of the program - one for each language. I think that one English version would be all that is needed UNLESS you have differing design constraints within the differing language versions. IOW, the problem you originally posted was to overcome the flicker/speed problem when opening forms due to the fact that the form's captions had to be converted each time. You also indicated that you send out an mde - I presume the same mde for all clients. Therefore, if I am correct in the above (kick me if I am not Rocky) then you only need the one master copy. Ie, master.mdb gets copied to Chinese.mdb. Chinese.mdb is then opened and the translation routine run. Chinese.mdb is then converted to Chinese.mde. Chinese.mde is then sent to Chinese Client. Chinese client then runs the Chinese Version of your application with all forms correctly captioned in Chinese and no conversion required when forms up. Repeat above for other languages. But you only need the one master which is copied from each time. Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 22 February 2009 08:47 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Another complication - evaluators can be requested from the web site. I suppose I could ask for the language as part of the request. I'd have to allow them to ask for multiple copies - different languages in case French speaking management wanted to evaluate it as well as the Chinese workers in the factory. IOW, the customer may not know for sure which language they want. Plus I'd have to maintain currently 5 versions of the program - one for each language. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Saturday, February 21, 2009 5:12 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Hi Gustav, Pub is now dry.. came home...ha! Well, if you are sending an MDE you would run the Translation Program then convert to an .MDE and then send it to client and then go back to pub - eh? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 21 February 2009 23:14 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Find First in an Array? - The Solution Hi Max and Rocky OK, that minor reason turned into a major; you will perform design changes of the forms which isn't possible in an mde. /gustav >>> Gustav at cactus.dk 21-02-2009 16:10 >>> Hi Max Very good! You have point here. It's a bit like Drew's suggestion but with a clever twist which I will leave for others to figure out (I have seen the sample db from Max). I can, however, think of one minor reason to not use your approach. Who said you don't get bright ideas while sleeping? /gustav >>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> Hello Rocky, Well, I have read with interest all the to-ing and fro-ing from the various contributors. So, I laid me down laterally and started thinking laterally. The solution came to be sometime around my 3rd drink. I consolidated my thoughts in bed. When I woke this morning, I tested them out with a sample mdb using English, French and German. All work beautifully. Add as many languages as you want. The solution I have has the following benefits: Instantaneous No variables No Collections No Classes (although the solution could be said to be upper class No Arrays No Memory overheads Forms shown the language required every time with no overheads. Unlimited Languages Should I post the sample mdb to you? Max Ps. Bet your intrigued - you will love this solution. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sun Feb 22 04:29:33 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 22 Feb 2009 10:29:33 -0000 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <8E2FCA4F8F244B47B1E1C321CC80C357@HAL9005> References: <49a0a674.1701d00a.1bce.1568@mx.google.com> <8E2FCA4F8F244B47B1E1C321CC80C357@HAL9005> Message-ID: <49a12910.0707d00a.614b.735a@mx.google.com> Further to my last posting, Rocky. I suppose you could also give the evaluators the one you currently have where the form get updated each time based on the language selected and tell the potential clients that a language specific option is available with improved form rendering. Then when the order (as they will surely do) give them the translated mde copy, Flexibility is the keyword here, I think. Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 22 February 2009 08:47 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Another complication - evaluators can be requested from the web site. I suppose I could ask for the language as part of the request. I'd have to allow them to ask for multiple copies - different languages in case French speaking management wanted to evaluate it as well as the Chinese workers in the factory. IOW, the customer may not know for sure which language they want. Plus I'd have to maintain currently 5 versions of the program - one for each language. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Saturday, February 21, 2009 5:12 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Hi Gustav, Pub is now dry.. came home...ha! Well, if you are sending an MDE you would run the Translation Program then convert to an .MDE and then send it to client and then go back to pub - eh? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 21 February 2009 23:14 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Find First in an Array? - The Solution Hi Max and Rocky OK, that minor reason turned into a major; you will perform design changes of the forms which isn't possible in an mde. /gustav >>> Gustav at cactus.dk 21-02-2009 16:10 >>> Hi Max Very good! You have point here. It's a bit like Drew's suggestion but with a clever twist which I will leave for others to figure out (I have seen the sample db from Max). I can, however, think of one minor reason to not use your approach. Who said you don't get bright ideas while sleeping? /gustav >>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> Hello Rocky, Well, I have read with interest all the to-ing and fro-ing from the various contributors. So, I laid me down laterally and started thinking laterally. The solution came to be sometime around my 3rd drink. I consolidated my thoughts in bed. When I woke this morning, I tested them out with a sample mdb using English, French and German. All work beautifully. Add as many languages as you want. The solution I have has the following benefits: Instantaneous No variables No Collections No Classes (although the solution could be said to be upper class No Arrays No Memory overheads Forms shown the language required every time with no overheads. Unlimited Languages Should I post the sample mdb to you? Max Ps. Bet your intrigued - you will love this solution. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sun Feb 22 06:03:25 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 22 Feb 2009 12:03:25 -0000 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <49A03291.7040904@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <82745B5E88DE4DF2873544CB371BED1B@HAL9005> <499ff7dc.0a04d00a.7b19.593f@mx.google.com> <9348165EACB84473BF8DFF66D7F51274@HAL9005> <49a02500.0508d00a.4eb0.ffffbe67@mx.google.com> <49A03291.7040904@colbyconsulting.com> Message-ID: <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> Ha! That might be a good solution - why didn't I think of that! Something like: Label1.tag = "Good Morning+God morgen+Bonjour+Guten Morgen+??+?????? ????" The set a global var to position-indicate the substring with the + as the delimiter (change delimiter to whatever). IE, 0=English, 1=Danish, 2=French, 3=German, 4=Chinese, 5=Russian. When the form loads cycle through the label.type controls and set the caption equal to the substring pulled from the TAG. Minimal programming. Minimum overheads. No disk accessing. No bunch of stuff held in memory. Very fast (I would guess). Brilliant - Horses for courses, but this could well work! Now then JC - Just let me move to the other side of the room behind the sofa. OK, I am hiding and protected. You can reply now! Max Ps. Translations taken from http://www.omniglot.com/language/phrases/goodmorning.htm so don't beat me up! Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 February 2009 16:58 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Tell me you are not using the tag for each control. John W. Colby www.ColbyConsulting.com From stuart at lexacorp.com.pg Sun Feb 22 06:39:54 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Sun, 22 Feb 2009 22:39:54 +1000 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <49a12910.0707d00a.614b.735a@mx.google.com> References: , <8E2FCA4F8F244B47B1E1C321CC80C357@HAL9005>, <49a12910.0707d00a.614b.735a@mx.google.com> Message-ID: <49A1D43A.18411.77A1819@stuart.lexacorp.com.pg> Here's my simple procedural take on the problem. I started thinking about ways to avoid stepping through the whole controls collection for the form and to optimise looping through the ones we are interested in. This method opens a form containing over 200 labels and buttons with no discernable delay. All that is required is that you: a. Maintain a standard naming convention for Labels and Buttons: Label1, Label2 etc and Button1001,Button1002 etc within the form b. Define a FormID constant in each form's module, c. Define constants in each form's module which record the number of labels and buttons d. Store your translation strings with two fields, FormNumber and ControlNumber FormNumber - Long ControlNumber - Long Language1 - String Language 2 - String Language 3 - String etc 1. When the user changes language, load the new one into a Translation collection. In a Module: Global gcolTranslation As New Collection Function GetLanguage(Language as long) Dim rs as DAO Recordset If gcolTranslation.Count > 0 Then For i = 1 To gcolTranslation.Count gcolTranslation.Remove 1 Next End If Set rs = currentdb.openrecordset("uSysTranslationTable") While not rs.eof gcolTranslation.Add rs(Language + 2), _ Format(rs(0),"00") & rs(1) rs.movenext wend rs.close set rs = nothing End Function 2. In each Form create 3 constants: Const FormID As String = "01" Const NoOfLabels As Long = 200 Const NoOfButtons as Long = 5 3. Use the following on_open event for each form. Private Sub Form_Open(Cancel As Integer) Dim ctl As Control Dim x As Long Dim sX As String For x = 1 To NoOfLabels Me("Label" & x).Caption = gcolTranslation(FormID & x) Next For x = 1001 To 1000 + NoOfButtons Me("Button" & x).Caption = gcolTranslation(FormID & (x) Next End Sub -- Stuart From stuart at lexacorp.com.pg Sun Feb 22 06:46:16 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Sun, 22 Feb 2009 22:46:16 +1000 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> Message-ID: <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg> Minimal programming until you add a new language - then it's a real PITA - you have to edit every control on every form. :-( -- Stuart On 22 Feb 2009 at 12:03, Max Wanadoo wrote: > Label1.tag = "Good Morning+God morgen+Bonjour+Guten Morgen ... > Minimal programming. Minimum overheads. No disk accessing. No bunch of > stuff held in memory. Very fast (I would guess). From jwcolby at colbyconsulting.com Sun Feb 22 07:00:30 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sun, 22 Feb 2009 08:00:30 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg> Message-ID: <49A14C6E.40105@colbyconsulting.com> Yep. That's why no one is even touching this one. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > Minimal programming until you add a new language - then it's a real PITA - you have to > edit every control on every form. > > :-( > From max.wanadoo at gmail.com Sun Feb 22 07:01:13 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 22 Feb 2009 13:01:13 -0000 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg> Message-ID: <49a14c9c.0a04d00a.0836.28b5@mx.google.com> Oh no. That is not necessary Stuart. What I would do is write a little function which runs down the language table and populates the contol.tag on the appropriate form with the caption text plus a delimiter. You only have to do this ONCE and then ONLY again if you add a new language (having added the values to the language table). Users can switch languages at will. All that is required is to change the global variable to the new value to point into the .tag string. Instantaneous resolution of the displayed text. Coding is minimal. Even the loading code on initial setup is only a dozen or so lines. The caption.tag is an Access provided collection so why not make use of it. No data access at run time. No need to open any tables etc. The required caption is in the tag of the caption control, just display it. But, I am not decrying your just posted routine. I think it is very good. Not as good as mine though (I just had an impartial show of hands in the room and my solution won). Back to the pub. The more I think of it, the better this solution appears to me. Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: 22 February 2009 12:46 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer Minimal programming until you add a new language - then it's a real PITA - you have to edit every control on every form. :-( -- Stuart On 22 Feb 2009 at 12:03, Max Wanadoo wrote: > Label1.tag = "Good Morning+God morgen+Bonjour+Guten Morgen ... > Minimal programming. Minimum overheads. No disk accessing. No bunch of > stuff held in memory. Very fast (I would guess). -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sun Feb 22 07:08:31 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 22 Feb 2009 13:08:31 -0000 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <49A14C6E.40105@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg> <49A14C6E.40105@colbyconsulting.com> Message-ID: <49a14e53.0506d00a.1f4b.ffffac31@mx.google.com> Lateral thinking JC, lateral thinking. Populate the tag automatically via coding. Easy peasey. No brainer! AS many language additions as you want, it only takes a few minutes to update all the tags on all the forms. You have previously posted code for extracting from a delimited list recently. Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 22 February 2009 13:01 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer Yep. That's why no one is even touching this one. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > Minimal programming until you add a new language - then it's a real PITA - you have to > edit every control on every form. > > :-( > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Sun Feb 22 07:09:29 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sun, 22 Feb 2009 08:09:29 -0500 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <49A1D43A.18411.77A1819@stuart.lexacorp.com.pg> References: , <8E2FCA4F8F244B47B1E1C321CC80C357@HAL9005>, <49a12910.0707d00a.614b.735a@mx.google.com> <49A1D43A.18411.77A1819@stuart.lexacorp.com.pg> Message-ID: <49A14E89.1000201@colbyconsulting.com> Actually I think this solution adds too much burden on the developer. The thing is it is the computer doing the work and as Rocky said, who cares if the computer is unhappy. Drew's solution was brilliant, rather than stepping through all the controls, step through all the RECORDS, then use the control name in the record to index into the controls collection. Simple, sweet, and to the point. As you grab the data, store to a collection and you are done. I did some testing however and storing to a collection specific to the form is required to keep the speeds up. It is at this point that the class begins to make sense again. One class for the form, one as a supervisor for doing this stuff. The class form holds a collection for the strings for the specific form, plus all the code for loading the data from the recordset. The supervisor has a collection to hold the class instances for each form plus the code to decide which form is being processed. Simple, sweet, and to the point. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > Here's my simple procedural take on the problem. > I started thinking about ways to avoid stepping through the whole controls collection for the > form and to optimise looping through the ones we are interested in. > > This method opens a form containing over 200 labels and buttons with no discernable delay. > > All that is required is that you: > a. Maintain a standard naming convention for Labels and Buttons: > Label1, Label2 etc and Button1001,Button1002 etc within the form > > b. Define a FormID constant in each form's module, > c. Define constants in each form's module which record the number of labels and buttons > d. Store your translation strings with two fields, FormNumber and ControlNumber > > > FormNumber - Long > ControlNumber - Long > Language1 - String > Language 2 - String > Language 3 - String > etc > > 1. When the user changes language, load the new one into a Translation collection. > In a Module: > > Global gcolTranslation As New Collection > > Function GetLanguage(Language as long) > Dim rs as DAO Recordset > If gcolTranslation.Count > 0 Then > For i = 1 To gcolTranslation.Count > gcolTranslation.Remove 1 > Next > End If > Set rs = currentdb.openrecordset("uSysTranslationTable") > While not rs.eof > gcolTranslation.Add rs(Language + 2), _ > Format(rs(0),"00") & rs(1) > rs.movenext > wend > rs.close > set rs = nothing > End Function > > 2. In each Form create 3 constants: > Const FormID As String = "01" > Const NoOfLabels As Long = 200 > Const NoOfButtons as Long = 5 > > 3. Use the following on_open event for each form. > > Private Sub Form_Open(Cancel As Integer) > Dim ctl As Control > Dim x As Long > Dim sX As String > For x = 1 To NoOfLabels > Me("Label" & x).Caption = gcolTranslation(FormID & x) > Next > For x = 1001 To 1000 + NoOfButtons > Me("Button" & x).Caption = gcolTranslation(FormID & (x) > Next > End Sub > From wdhindman at dejpolsystems.com Sun Feb 22 07:19:47 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Sun, 22 Feb 2009 08:19:47 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg> Message-ID: Stuart ...not if you're using the tags only for translation ...then adding a language becomes a one time task of defining it in the table and then running a loop through all the control tags replacing the existing tag string with the new one that includes the new language. ...not that I'm advocating tags, just that a language addition/update doesn't have to be any more complicated than any other solution ...despite the view that tags are old fashioned, the simple fact is that they are there, can be managed from code, and were designed for something just like this. ...I think the real hanger on tags would be that it would require some rewrite on Rocky's part to use them as Max has suggested ...but for someone starting from scratch it could be a better way to go. William -------------------------------------------------- From: "Stuart McLachlan" Sent: Sunday, February 22, 2009 7:46 AM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer > Minimal programming until you add a new language - then it's a real > ITA - you have to > edit every control on every form. > > :-( > > -- > Stuart > > On 22 Feb 2009 at 12:03, Max Wanadoo wrote: > >> Label1.tag = "Good Morning+God morgen+Bonjour+Guten Morgen > ... >> Minimal programming. Minimum overheads. No disk accessing. No bunch of >> stuff held in memory. Very fast (I would guess). > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From wdhindman at dejpolsystems.com Sun Feb 22 07:34:08 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Sun, 22 Feb 2009 08:34:08 -0500 Subject: [AccessD] Find First in an Array? - The Solution References: , <8E2FCA4F8F244B47B1E1C321CC80C357@HAL9005>, <49a12910.0707d00a.614b.735a@mx.google.com><49A1D43A.18411.77A1819@stuart.lexacorp.com.pg> <49A14E89.1000201@colbyconsulting.com> Message-ID: <8232A039E02548E891948D27DA51E3F0@jislaptopdev> ...sigh ...shakes head ...doesn't work ...tries banging head against wall ...for some reason that only makes it worse :( ..."Simple, sweet, and to the point" it ain't, eh ...and telling Drew he's brilliant is like throwing a cat into a bag full of catnip :( ...for this specific case ...translations ...using tags makes a lot more sense ...imnsho of course. ...now WHERE is that damn Tylenol? William -------------------------------------------------- From: "jwcolby" Sent: Sunday, February 22, 2009 8:09 AM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Find First in an Array? - The Solution > Actually I think this solution adds too much burden on the developer. The > thing is it is the > computer doing the work and as Rocky said, who cares if the computer is > unhappy. > > Drew's solution was brilliant, rather than stepping through all the > controls, step through all the > RECORDS, then use the control name in the record to index into the > controls collection. > > Simple, sweet, and to the point. > > As you grab the data, store to a collection and you are done. I did some > testing however and > storing to a collection specific to the form is required to keep the > speeds up. It is at this point > that the class begins to make sense again. One class for the form, one as > a supervisor for doing > this stuff. The class form holds a collection for the strings for the > specific form, plus all the > code for loading the data from the recordset. The supervisor has a > collection to hold the class > instances for each form plus the code to decide which form is being > processed. > > Simple, sweet, and to the point. > > John W. Colby > www.ColbyConsulting.com > > > Stuart McLachlan wrote: >> Here's my simple procedural take on the problem. >> I started thinking about ways to avoid stepping through the whole >> controls collection for the >> form and to optimise looping through the ones we are interested in. >> >> This method opens a form containing over 200 labels and buttons with no >> discernable delay. >> >> All that is required is that you: >> a. Maintain a standard naming convention for Labels and Buttons: >> Label1, Label2 etc and Button1001,Button1002 etc within the form >> >> b. Define a FormID constant in each form's module, >> c. Define constants in each form's module which record the number of >> labels and buttons >> d. Store your translation strings with two fields, FormNumber and >> ControlNumber >> >> >> FormNumber - Long >> ControlNumber - Long >> Language1 - String >> Language 2 - String >> Language 3 - String >> etc >> >> 1. When the user changes language, load the new one into a Translation >> collection. >> In a Module: >> >> Global gcolTranslation As New Collection >> >> Function GetLanguage(Language as long) >> Dim rs as DAO Recordset >> If gcolTranslation.Count > 0 Then >> For i = 1 To gcolTranslation.Count >> gcolTranslation.Remove 1 >> Next >> End If >> Set rs = currentdb.openrecordset("uSysTranslationTable") >> While not rs.eof >> gcolTranslation.Add rs(Language + 2), _ >> Format(rs(0),"00") & rs(1) >> rs.movenext >> wend >> rs.close >> set rs = nothing >> End Function >> >> 2. In each Form create 3 constants: >> Const FormID As String = "01" >> Const NoOfLabels As Long = 200 >> Const NoOfButtons as Long = 5 >> >> 3. Use the following on_open event for each form. >> >> Private Sub Form_Open(Cancel As Integer) >> Dim ctl As Control >> Dim x As Long >> Dim sX As String >> For x = 1 To NoOfLabels >> Me("Label" & x).Caption = gcolTranslation(FormID & x) >> Next >> For x = 1001 To 1000 + NoOfButtons >> Me("Button" & x).Caption = gcolTranslation(FormID & (x) >> Next >> End Sub >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From Gustav at cactus.dk Sun Feb 22 07:54:28 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Sun, 22 Feb 2009 14:54:28 +0100 Subject: [AccessD] Find First in an Array? - The Solution Message-ID: Hi Max I've always been of the opinion that language should be selectable by the user on demand. /gustav >>> max.wanadoo at gmail.com 22-02-2009 02:12 >>> Hi Gustav, Pub is now dry.. came home...ha! Well, if you are sending an MDE you would run the Translation Program then convert to an .MDE and then send it to client and then go back to pub - eh? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 21 February 2009 23:14 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Find First in an Array? - The Solution Hi Max and Rocky OK, that minor reason turned into a major; you will perform design changes of the forms which isn't possible in an mde. /gustav From wdhindman at dejpolsystems.com Sun Feb 22 09:06:12 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Sun, 22 Feb 2009 10:06:12 -0500 Subject: [AccessD] Find First in an Array? - The Solution References: Message-ID: <5119C2D64F8740D6AB0289DAC17CC136@jislaptopdev> ...have to agree ...I'm interested in a fast, efficient solution here because I have a need where offices using an app of mine will have people with different primary languages using it ...so far, they've lived with English ...but the error rate goes up significantly when a primary Spanish, Portuguese, or Creole speaker uses it ...the ability to switch language on the fly is becoming a necessity ...and it has to be done from an mde. William -------------------------------------------------- From: "Gustav Brock" Sent: Sunday, February 22, 2009 8:54 AM To: Subject: Re: [AccessD] Find First in an Array? - The Solution > Hi Max > > I've always been of the opinion that language should be selectable by the > user on demand. > > /gustav > >>>> max.wanadoo at gmail.com 22-02-2009 02:12 >>> > Hi Gustav, > Pub is now dry.. came home...ha! > Well, if you are sending an MDE you would run the Translation Program then > convert to an .MDE and then send it to client and then go back to pub - > eh? > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: 21 February 2009 23:14 > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hi Max and Rocky > > OK, that minor reason turned into a major; you will perform design changes > of the forms which isn't possible in an mde. > > /gustav > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From max.wanadoo at gmail.com Sun Feb 22 09:23:29 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 22 Feb 2009 15:23:29 -0000 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <5119C2D64F8740D6AB0289DAC17CC136@jislaptopdev> References: <5119C2D64F8740D6AB0289DAC17CC136@jislaptopdev> Message-ID: <49a16df5.0a04d00a.47c2.ffffb809@mx.google.com> Solution is on its way.... Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: 22 February 2009 15:06 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution ...have to agree ...I'm interested in a fast, efficient solution here because I have a need where offices using an app of mine will have people with different primary languages using it ...so far, they've lived with English ...but the error rate goes up significantly when a primary Spanish, Portuguese, or Creole speaker uses it ...the ability to switch language on the fly is becoming a necessity ...and it has to be done from an mde. William -------------------------------------------------- From: "Gustav Brock" Sent: Sunday, February 22, 2009 8:54 AM To: Subject: Re: [AccessD] Find First in an Array? - The Solution > Hi Max > > I've always been of the opinion that language should be selectable by the > user on demand. > > /gustav > >>>> max.wanadoo at gmail.com 22-02-2009 02:12 >>> > Hi Gustav, > Pub is now dry.. came home...ha! > Well, if you are sending an MDE you would run the Translation Program then > convert to an .MDE and then send it to client and then go back to pub - > eh? > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: 21 February 2009 23:14 > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hi Max and Rocky > > OK, that minor reason turned into a major; you will perform design changes > of the forms which isn't possible in an mde. > > /gustav > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Sun Feb 22 10:11:26 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sun, 22 Feb 2009 11:11:26 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <49a14c9c.0a04d00a.0836.28b5@mx.google.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg> <49a14c9c.0a04d00a.0836.28b5@mx.google.com> Message-ID: <49A1792E.4090802@colbyconsulting.com> A tag is NOT a collection,it is a property. Too bad it isn't a collection or it would be much more useful. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Oh no. That is not necessary Stuart. > > What I would do is write a little function which runs down the language > table and populates the contol.tag on the appropriate form with the caption > text plus a delimiter. > > You only have to do this ONCE and then ONLY again if you add a new language > (having added the values to the language table). > > Users can switch languages at will. All that is required is to change the > global variable to the new value to point into the .tag string. > Instantaneous resolution of the displayed text. Coding is minimal. Even > the loading code on initial setup is only a dozen or so lines. > > The caption.tag is an Access provided collection so why not make use of it. > No data access at run time. No need to open any tables etc. > The required caption is in the tag of the caption control, just display it. > > But, I am not decrying your just posted routine. I think it is very good. > Not as good as mine though (I just had an impartial show of hands in the > room and my solution won). Back to the pub. > > The more I think of it, the better this solution appears to me. > > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: 22 February 2009 12:46 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - > Now Tag is the Answer > > Minimal programming until you add a new language - then it's a real PITA - > you have to > edit every control on every form. > > :-( > From jwcolby at colbyconsulting.com Sun Feb 22 10:12:46 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sun, 22 Feb 2009 11:12:46 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <49a14e53.0506d00a.1f4b.ffffac31@mx.google.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg> <49A14C6E.40105@colbyconsulting.com> <49a14e53.0506d00a.1f4b.ffffac31@mx.google.com> Message-ID: <49A1797E.5080400@colbyconsulting.com> Yes, but there is a lot of coding to get the data inot the tag, then coding to get it back out of the tag. I used to do that (use the tag) before I learned other ways. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Lateral thinking JC, lateral thinking. > > Populate the tag automatically via coding. Easy peasey. No brainer! AS > many language additions as you want, it only takes a few minutes to update > all the tags on all the forms. > > You have previously posted code for extracting from a delimited list > recently. > > > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 22 February 2009 13:01 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - > Now Tag is the Answer > > Yep. That's why no one is even touching this one. > > John W. Colby > www.ColbyConsulting.com > > > Stuart McLachlan wrote: >> Minimal programming until you add a new language - then it's a real PITA > - you have to >> edit every control on every form. >> >> :-( >> From jwcolby at colbyconsulting.com Sun Feb 22 10:14:31 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sun, 22 Feb 2009 11:14:31 -0500 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <8232A039E02548E891948D27DA51E3F0@jislaptopdev> References: , <8E2FCA4F8F244B47B1E1C321CC80C357@HAL9005>, <49a12910.0707d00a.614b.735a@mx.google.com><49A1D43A.18411.77A1819@stuart.lexacorp.com.pg> <49A14E89.1000201@colbyconsulting.com> <8232A039E02548E891948D27DA51E3F0@jislaptopdev> Message-ID: <49A179E7.9010300@colbyconsulting.com> What doesn't work? John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...sigh ...shakes head ...doesn't work ...tries banging head against wall > ...for some reason that only makes it worse :( > > ..."Simple, sweet, and to the point" it ain't, eh ...and telling Drew he's > brilliant is like throwing a cat into a bag full of catnip :( > > ...for this specific case ...translations ...using tags makes a lot more > sense ...imnsho of course. > > ...now WHERE is that damn Tylenol? > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Sunday, February 22, 2009 8:09 AM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] Find First in an Array? - The Solution > >> Actually I think this solution adds too much burden on the developer. The >> thing is it is the >> computer doing the work and as Rocky said, who cares if the computer is >> unhappy. >> >> Drew's solution was brilliant, rather than stepping through all the >> controls, step through all the >> RECORDS, then use the control name in the record to index into the >> controls collection. >> >> Simple, sweet, and to the point. >> >> As you grab the data, store to a collection and you are done. I did some >> testing however and >> storing to a collection specific to the form is required to keep the >> speeds up. It is at this point >> that the class begins to make sense again. One class for the form, one as >> a supervisor for doing >> this stuff. The class form holds a collection for the strings for the >> specific form, plus all the >> code for loading the data from the recordset. The supervisor has a >> collection to hold the class >> instances for each form plus the code to decide which form is being >> processed. >> >> Simple, sweet, and to the point. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Stuart McLachlan wrote: >>> Here's my simple procedural take on the problem. >>> I started thinking about ways to avoid stepping through the whole >>> controls collection for the >>> form and to optimise looping through the ones we are interested in. >>> >>> This method opens a form containing over 200 labels and buttons with no >>> discernable delay. >>> >>> All that is required is that you: >>> a. Maintain a standard naming convention for Labels and Buttons: >>> Label1, Label2 etc and Button1001,Button1002 etc within the form >>> >>> b. Define a FormID constant in each form's module, >>> c. Define constants in each form's module which record the number of >>> labels and buttons >>> d. Store your translation strings with two fields, FormNumber and >>> ControlNumber >>> >>> >>> FormNumber - Long >>> ControlNumber - Long >>> Language1 - String >>> Language 2 - String >>> Language 3 - String >>> etc >>> >>> 1. When the user changes language, load the new one into a Translation >>> collection. >>> In a Module: >>> >>> Global gcolTranslation As New Collection >>> >>> Function GetLanguage(Language as long) >>> Dim rs as DAO Recordset >>> If gcolTranslation.Count > 0 Then >>> For i = 1 To gcolTranslation.Count >>> gcolTranslation.Remove 1 >>> Next >>> End If >>> Set rs = currentdb.openrecordset("uSysTranslationTable") >>> While not rs.eof >>> gcolTranslation.Add rs(Language + 2), _ >>> Format(rs(0),"00") & rs(1) >>> rs.movenext >>> wend >>> rs.close >>> set rs = nothing >>> End Function >>> >>> 2. In each Form create 3 constants: >>> Const FormID As String = "01" >>> Const NoOfLabels As Long = 200 >>> Const NoOfButtons as Long = 5 >>> >>> 3. Use the following on_open event for each form. >>> >>> Private Sub Form_Open(Cancel As Integer) >>> Dim ctl As Control >>> Dim x As Long >>> Dim sX As String >>> For x = 1 To NoOfLabels >>> Me("Label" & x).Caption = gcolTranslation(FormID & x) >>> Next >>> For x = 1001 To 1000 + NoOfButtons >>> Me("Button" & x).Caption = gcolTranslation(FormID & (x) >>> Next >>> End Sub >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From jwcolby at colbyconsulting.com Sun Feb 22 10:14:56 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sun, 22 Feb 2009 11:14:56 -0500 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: References: Message-ID: <49A17A00.1030408@colbyconsulting.com> > I've always been of the opinion that language should be selectable by the user on demand. Me too. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi Max > > I've always been of the opinion that language should be selectable by the user on demand. > > /gustav > >>>> max.wanadoo at gmail.com 22-02-2009 02:12 >>> > Hi Gustav, > Pub is now dry.. came home...ha! > Well, if you are sending an MDE you would run the Translation Program then > convert to an .MDE and then send it to client and then go back to pub - eh? > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: 21 February 2009 23:14 > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hi Max and Rocky > > OK, that minor reason turned into a major; you will perform design changes > of the forms which isn't possible in an mde. > > /gustav > > > From max.wanadoo at gmail.com Sun Feb 22 10:47:39 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 22 Feb 2009 16:47:39 -0000 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <49A17A00.1030408@colbyconsulting.com> References: <49A17A00.1030408@colbyconsulting.com> Message-ID: <49a181ae.0702d00a.3db3.ffffd453@mx.google.com> It is on the latest version just sent off-list Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 22 February 2009 16:15 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution > I've always been of the opinion that language should be selectable by the user on demand. Me too. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi Max > > I've always been of the opinion that language should be selectable by the user on demand. > > /gustav > >>>> max.wanadoo at gmail.com 22-02-2009 02:12 >>> > Hi Gustav, > Pub is now dry.. came home...ha! > Well, if you are sending an MDE you would run the Translation Program then > convert to an .MDE and then send it to client and then go back to pub - eh? > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: 21 February 2009 23:14 > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hi Max and Rocky > > OK, that minor reason turned into a major; you will perform design changes > of the forms which isn't possible in an mde. > > /gustav > > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sun Feb 22 10:48:47 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 22 Feb 2009 16:48:47 -0000 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <49A1797E.5080400@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg> <49A14C6E.40105@colbyconsulting.com> <49a14e53.0506d00a.1f4b.ffffac31@mx.google.com> <49A1797E.5080400@colbyconsulting.com> Message-ID: <49a181f5.1c07d00a.0947.31d8@mx.google.com> Not all all. It is all done for you in the version just send off-list Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 22 February 2009 16:13 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer Yes, but there is a lot of coding to get the data inot the tag, then coding to get it back out of the tag. I used to do that (use the tag) before I learned other ways. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Lateral thinking JC, lateral thinking. > > Populate the tag automatically via coding. Easy peasey. No brainer! AS > many language additions as you want, it only takes a few minutes to update > all the tags on all the forms. > > You have previously posted code for extracting from a delimited list > recently. > > > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 22 February 2009 13:01 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - > Now Tag is the Answer > > Yep. That's why no one is even touching this one. > > John W. Colby > www.ColbyConsulting.com > > > Stuart McLachlan wrote: >> Minimal programming until you add a new language - then it's a real PITA > - you have to >> edit every control on every form. >> >> :-( >> -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sun Feb 22 10:49:47 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 22 Feb 2009 16:49:47 -0000 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <49A1792E.4090802@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg> <49a14c9c.0a04d00a.0836.28b5@mx.google.com> <49A1792E.4090802@colbyconsulting.com> Message-ID: <49a18230.0508d00a.4eb0.6403@mx.google.com> > The caption.tag is an Access provided collection so why not make use of it. Meant to say, "The caption.tag can be used like an Access provided collection..." sorry! Anyway, I knew what I meant. Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 22 February 2009 16:11 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer A tag is NOT a collection,it is a property. Too bad it isn't a collection or it would be much more useful. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Oh no. That is not necessary Stuart. > > What I would do is write a little function which runs down the language > table and populates the contol.tag on the appropriate form with the caption > text plus a delimiter. > > You only have to do this ONCE and then ONLY again if you add a new language > (having added the values to the language table). > > Users can switch languages at will. All that is required is to change the > global variable to the new value to point into the .tag string. > Instantaneous resolution of the displayed text. Coding is minimal. Even > the loading code on initial setup is only a dozen or so lines. > > The caption.tag is an Access provided collection so why not make use of it. > No data access at run time. No need to open any tables etc. > The required caption is in the tag of the caption control, just display it. > > But, I am not decrying your just posted routine. I think it is very good. > Not as good as mine though (I just had an impartial show of hands in the > room and my solution won). Back to the pub. > > The more I think of it, the better this solution appears to me. > > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan > Sent: 22 February 2009 12:46 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - > Now Tag is the Answer > > Minimal programming until you add a new language - then it's a real PITA - > you have to > edit every control on every form. > > :-( > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sun Feb 22 11:01:20 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 22 Feb 2009 17:01:20 -0000 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <49A0319B.70600@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <82745B5E88DE4DF2873544CB371BED1B@HAL9005> <499ff7dc.0a04d00a.7b19.593f@mx.google.com> <9348165EACB84473BF8DFF66D7F51274@HAL9005> <49a02500.0508d00a.4eb0.ffffbe67@mx.google.com> <49A0319B.70600@colbyconsulting.com> Message-ID: <49a184e3.0707d00a.1b96.ffffb812@mx.google.com> Hi Guys, I have posted the zipped mdb off-list to those taking part in this conversation. Each and every one of you are better coders then me, so it would be nice if somebody could tighten up on the code and let me have a copy back. Thanks Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! From tinanfields at torchlake.com Sun Feb 22 11:19:23 2009 From: tinanfields at torchlake.com (Tina Norris Fields) Date: Sun, 22 Feb 2009 12:19:23 -0500 Subject: [AccessD] A Design Opinion, Please In-Reply-To: References: <49A095E0.1080304@torchlake.com> Message-ID: <49A1891B.3060602@torchlake.com> Thanks to William, Susan, and Dan for your replies. The setup is, indeed, that the outside sales people need to know who the primary sales person is. In fact, the outside sales people's data entry form shows a textbox for the primary sales person. That is a field in the underlying table. The main data entry form, not accessible to the outside sales people, does not have the textbox for that field, which is why the information has not been getting into the table. I am adding that information to the main data entry form. To make certain that the correct code is selected for the primary salesperson, I want to use a combobox for the selection. I thought I would put a combobox on the form to select the correct salesperson and have that store the information in the appropriate field in the table. Then I thought maybe I would modify the table and make that field a lookup field which would make the selection on the form very easy. Noodling over which choice would be the better, I turned to you all. William, you said you learned the hard way never to set a lookup field in a table. Please tell me why - that sounds like just exactly the lesson I need. Tina William Hindman wrote: > ...I learned the hard way never to set a lookup in a table field :( > > William > > -------------------------------------------------- > From: "Tina Norris Fields" > Sent: Saturday, February 21, 2009 7:01 PM > To: "Access Developers discussion and problem solving" > > Subject: [AccessD] A Design Opinion, Please > > >> Hi All, >> >> On a data entry form, where a choice should be made to identify the >> sales staff person primarily responsible for a particular customer, >> which of these methods is better and why? >> >> Method 1 - set the sales staff field in the table to be a lookup field >> Method 2 - place a combobox on the form that looks up the sales staff >> and then updates the field in the table. >> >> This is a remodeling job. The outside sales people need to know who the >> lead sales staff person is on any given customer. However, at present >> the main data entry form does not indicate that information. I'll be >> making this change, and I got to thinking about which approach would be >> the wiser of the two. >> >> Thanks for your opinions. >> >> Tina >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> > > From tinanfields at torchlake.com Sun Feb 22 13:04:46 2009 From: tinanfields at torchlake.com (Tina Norris Fields) Date: Sun, 22 Feb 2009 14:04:46 -0500 Subject: [AccessD] More Class lectures? In-Reply-To: <49944C57.6030308@colbyconsulting.com> References: <49944C57.6030308@colbyconsulting.com> Message-ID: <49A1A1CE.2050003@torchlake.com> Hi John, Because of family health issues, I have spent little time on AccessD - so I am coming late to this. I will dig into the class lectures because I need to know this stuff and you really do a great job of presenting it. Thank you, thank you, thank you. Tina jwcolby wrote: > As you might guess, I have spent a fair amount of time writing up this series of class lectures. I > really need to know that the time is well spent. I am asking everybody that has actually studied > any of the lectures to please respond by Monday and let me know how far you have gotten in the > series. This gives the weekend those who need more time to take a look. > > This will allow me to determine how to proceed. I understand that many people just flat do not have > the time now, but I also know that people make time for what they want or need to learn, and I have > intentionally broken down the lectures such that each one should take well under an hour to absorb, > in fact many of them should be well under a half hour. > > Please understand that it is perfectly fine to decide that this isn't something you care about, but > if you do care then all there is is today. My own experience says that if I never get started I > never get it done. > > I really do not want to seem like I am nagging people to do this, but I need some feedback saying > that people are actually studying this stuff in order for me to do more. I also need to know how > far people have gotten to determine whether I am way ahead of the curve or there are people right on > my heels so to speak, waiting for more. > > Just a quick email telling me where you are would be a huge help to me. > > Thanks guys, > > From wdhindman at dejpolsystems.com Sun Feb 22 13:05:40 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Sun, 22 Feb 2009 14:05:40 -0500 Subject: [AccessD] A Design Opinion, Please References: <49A095E0.1080304@torchlake.com> <49A1891B.3060602@torchlake.com> Message-ID: <1B4605E2455A416F8686C716823DBAEA@jislaptopdev> http://www.mvps.org/access/lookupfields.htm William -------------------------------------------------- From: "Tina Norris Fields" Sent: Sunday, February 22, 2009 12:19 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] A Design Opinion, Please > Thanks to William, Susan, and Dan for your replies. > > The setup is, indeed, that the outside sales people need to know who the > primary sales person is. In fact, the outside sales people's data entry > form shows a textbox for the primary sales person. That is a field in > the underlying table. The main data entry form, not accessible to the > outside sales people, does not have the textbox for that field, which is > why the information has not been getting into the table. I am adding > that information to the main data entry form. To make certain that the > correct code is selected for the primary salesperson, I want to use a > combobox for the selection. I thought I would put a combobox on the > form to select the correct salesperson and have that store the > information in the appropriate field in the table. Then I thought maybe > I would modify the table and make that field a lookup field which would > make the selection on the form very easy. > > Noodling over which choice would be the better, I turned to you all. > William, you said you learned the hard way never to set a lookup field > in a table. Please tell me why - that sounds like just exactly the > lesson I need. > > Tina > > William Hindman wrote: >> ...I learned the hard way never to set a lookup in a table field :( >> >> William >> >> -------------------------------------------------- >> From: "Tina Norris Fields" >> Sent: Saturday, February 21, 2009 7:01 PM >> To: "Access Developers discussion and problem solving" >> >> Subject: [AccessD] A Design Opinion, Please >> >> >>> Hi All, >>> >>> On a data entry form, where a choice should be made to identify the >>> sales staff person primarily responsible for a particular customer, >>> which of these methods is better and why? >>> >>> Method 1 - set the sales staff field in the table to be a lookup field >>> Method 2 - place a combobox on the form that looks up the sales staff >>> and then updates the field in the table. >>> >>> This is a remodeling job. The outside sales people need to know who the >>> lead sales staff person is on any given customer. However, at present >>> the main data entry form does not indicate that information. I'll be >>> making this change, and I got to thinking about which approach would be >>> the wiser of the two. >>> >>> Thanks for your opinions. >>> >>> Tina >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >>> >> >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Sun Feb 22 13:13:31 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sun, 22 Feb 2009 14:13:31 -0500 Subject: [AccessD] You just gotta do it - was Languages and Tags In-Reply-To: <49a19608.0a1ad00a.297c.4a4c@mx.google.com> References: <49a18189.0a1ad00a.297c.1760@mx.google.com> <49A193F7.30802@colbyconsulting.com> <49a19608.0a1ad00a.297c.4a4c@mx.google.com> Message-ID: <49A1A3DB.8080400@colbyconsulting.com> Max, I have to say that your solution to load the translation in design view and then save the form was good. Many years ago (late 90s) I wrote a security system where I did something very similar. I was trying to implement a method of securing controls on forms and even the forms themselves such that specific users could see controls, some could edit them etc. I used tables to hold all that stuff for setting up and editing the security, then loaded the stuff into the tags just as you are doing in your last example (but in design view) then saving the forms. It worked surprisingly well, and I used that for a couple of years. That was before I discovered collections. Once I discovered collections (but before classes) I ended up with collections of "properties" loaded into the form header. I even had collections of collections. It was at that time that I moved away from using tags at all. The collections, and collections of collections worked much better than the tags but holy crap the code was tough. I was a good enough programmer to make it work but looking back it was just tough code! Once I learned Classes, it all just fell into place. Before classes I would use a collection to store other collections. The "base" collection (which stored other collections) is now replaced by my "supervisor" class. The other collection was replaced by a class as well. You see the thing about classes is that they can hold TONS of variables for storing all kinds of properties about the object you are modeling. Once you create that class, it can be manipulated from another class, and the properties become the dot syntax that we all know and love. As an example: frm.Controls(strControlName) What is Controls? A collection. What is form? A class! Literally, form is a class (just like the classes YOU can create) and it has a collection (just like you can dimension) that holds it's collection of controls. When you as a programmer reference it, you reference form.controls(SomeIndex). You use classes and properties of classes every day of your Access programming life!!! What you have not learned yet is to create your own classes, and when and why you would do so. That is what my lecture series is designed to do is to lead you to classes. There are TONS of Access programmers who are good programmers but not "class developers". You USE classes because you USE the objects which Access provides, but you don't "get" that these objects you use every day are just classes as well and YOU can do things exactly like that! Dim app As Application app.CommandBars app.DataAccessPages app.Forms app.Modules app.Printers app.References app.Reports App is a CLASS. All of the other things listed are collections that the Application class uses to store multiple instances of... OTHER CLASSES. A command bar is a CLASS. A DataAccessPage is a CLASS. A Form is a CLASS. Almost all of these classes have their own collections, and each of those collections are loaded with... CLASSES!!! EVERYTHING in Access is a CLASS, and every class has collections too hold other ... CLASSES. If you guys ever wish to be GREAT programmers (and you can be!) you just have to figure out classes and collections (and events, and properties). You already USE them, though you may have never understood that you do. Now learn how to make your own!!! I will help you learn this stuff. I am here, read the lectures, ask your questions. A "Guru" is nothing more than ME with a little (OK in my case maybe a LOT) more knowledge. They are still a Guru, but if I can learn what they know then I become a Guru (in that area of knowledge). Being a Guru is not the objective though, the objective is to be able to do those things that seem so easy to the Guru. Folks, classes are not rocket science, they are easy. They just take practice. John W. Colby www.ColbyConsulting.com From ssharkins at gmail.com Sun Feb 22 13:33:05 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Sun, 22 Feb 2009 14:33:05 -0500 Subject: [AccessD] A Design Opinion, Please References: <49A095E0.1080304@torchlake.com><49A1891B.3060602@torchlake.com> <1B4605E2455A416F8686C716823DBAEA@jislaptopdev> Message-ID: The worst thing about lookup fields is that you forget they're there. Personally, I don't have a problem with them, but you have to remember that a field is actually a lookup field and that bound controls will inherit the lookup. Susan H. > http://www.mvps.org/access/lookupfields.htm Noodling over which choice would be the better, I turned to you all. >> William, you said you learned the hard way never to set a lookup field >> in a table. Please tell me why - that sounds like just exactly the >> lesson I need. From tinanfields at torchlake.com Sun Feb 22 13:43:27 2009 From: tinanfields at torchlake.com (Tina Norris Fields) Date: Sun, 22 Feb 2009 14:43:27 -0500 Subject: [AccessD] Classes and Events - Feedback In-Reply-To: <4991BF66.1080302@colbyconsulting.com> References: <4991BF66.1080302@colbyconsulting.com> Message-ID: <49A1AADF.10403@torchlake.com> Hi John, As I mentioned in my earlier email of today, I have been delayed for months by some family health issues. Now that I am capturing your lecture series and preparing to study every step - I will be answering 3. At the risk of embarrassing you, I want you to know I think you are a true blessing to all of us. I got into classes through Java and was really delighted when I realized your framework stuff built classes. I have kept as a book your first series of lectures on framework, collections, classes, etc. Thanks so much for doing this work. Tina jwcolby wrote: > Any "instructor" needs feedback on how they are doing. Just so I can get a feel for how much > further to take this and in what detail, could I get a show of hands on who is following the thread. > Perhaps: > > > 1) Glancing at it > 2) Reading each email > 3) Studying each email > > 4) More detail would be nice > 5) Detail is just about right > 6) Too much detail > 7) Irrelevant detail > > 8) How would I .... > From jwcolby at colbyconsulting.com Sun Feb 22 13:50:15 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sun, 22 Feb 2009 14:50:15 -0500 Subject: [AccessD] More Class lectures? In-Reply-To: <49A1A1CE.2050003@torchlake.com> References: <49944C57.6030308@colbyconsulting.com> <49A1A1CE.2050003@torchlake.com> Message-ID: <49A1AC77.2020407@colbyconsulting.com> Tina, You are welcome. I am not exaggerating when I say that classes, collections and events are the most important things that a VBA programmer can learn once they have the basics down. Any programmer who has learned these things will back me up there. Back in about 1981 or so, I was a technician, fixing very sophisticated graphics terminals. I was (still) struggling to learn programming, just out of curiosity. I ran across the old basic Star Trek program that ran on a Data General mini computer that my employer used for my repair workstation. My workstation only had 16 Kbytes of RAM and the program wouldn't load, so I started digging in to try and see if I could make it shorter so it would load. To be honest, I have no idea whether the version of basic had such constructs, but this program was written with no subroutines. EVERYTHING was a GoTo LineNumber. I printed the program out on the old teletype yellow roll paper, laid it on the floor, and started drawing lines from the GoTo statement to the target line number. That experience gave a whole new meaning to the phrase "spaghetti mess"!!! I never did rewrite the program, frankly it was waaaaay above my ability at that time. However... shortly thereafter I purchased Turbo Pascal. Turbo Pascal was the holy grail of programming in those days (for us micro computer people anyway) precisely because it taught (forced in some cases) good programming practices and it had functions and subs, parameters and all that stuff. Man was that a cool language, to me anyway. I learned Turbo Pascal with a vengeance and was soon writing some really cool (to me) applications. Somewhere around the late 80s, Turbo Pascal added classes. Woaaa, VERY different and tough for me to understand, but I persevered. So I was using classes long before I got to Access. Then I came to Access and Event Driven Programming was staring me in the face. Woaaaa, VERY different and tough for me to understand. Coming from a "start here and trace your way through the code" mentality, it was just very difficult to wrap my mind around events interrupting my already running code. Again to be honest, I haven't a clue whether Access 2.0 had classes (though I doubt it) but I had so much to think about in learning the whole event driven / visual development environment that I kind of lost track of classes. From 1994 to somewhere around 2001 I used the various versions of Access, but I was no longer using classes. Kind of sad when I think about it. Then Shamil started knocking on my head espousing events, but I wasn't really picking up on the "class" side of it yet. So it took me about TWO YEARS to finally "get" whatever it was I needed to get to understand classes in VBA. I do NOT want you guys to go through what I went through with that. I am determined to make this stuff easy enough that ANY programmer that is already proficient with VBA, that understands how to use the objects like forms, recordsets etc. that ANYONE that can do that stuff can learn classes and events in a few easy lessons. I want you to GET that you CAN! And I want to write it in a simple enough, easy to learn, bite size format that you can just start at the beginning and be programming classes in a few days or weeks. You CAN, if I can do my part right! My part is to write it in simple enough terms, and small enough chunks. Your part is to take the time to study the chunks, ask questions and give me feedback to make the lectures better. John W. Colby www.ColbyConsulting.com Tina Norris Fields wrote: > Hi John, > > Because of family health issues, I have spent little time on AccessD - > so I am coming late to this. I will dig into the class lectures because > I need to know this stuff and you really do a great job of presenting > it. Thank you, thank you, thank you. > > Tina From jwcolby at colbyconsulting.com Sun Feb 22 14:03:07 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sun, 22 Feb 2009 15:03:07 -0500 Subject: [AccessD] Classes and Events - Feedback In-Reply-To: <49A1AADF.10403@torchlake.com> References: <4991BF66.1080302@colbyconsulting.com> <49A1AADF.10403@torchlake.com> Message-ID: <49A1AF7B.7060601@colbyconsulting.com> Tina, I have been "going to write a book" on this for some time. I am writing this lecture series as word documents, and when there are enough of them I will be publishing them as an eBook. I no longer buy Access books because they don't provide enough information to me to make them worth the money, but back when I did NOBODY was writing about this stuff. I was allowed to write a single chapter in a book that I co-authored but a single chapter cannot begin to really explore the subject in depth. I am thinking that within a month or so I will have enough material to publish a small book on Classes, events, and perhaps working into frameworks. The nice thing about an eBook is that I can expand it if I write new subject matter. John W. Colby www.ColbyConsulting.com Tina Norris Fields wrote: > Hi John, > > As I mentioned in my earlier email of today, I have been delayed for > months by some family health issues. Now that I am capturing your > lecture series and preparing to study every step - I will be answering 3. > > At the risk of embarrassing you, I want you to know I think you are a > true blessing to all of us. I got into classes through Java and was > really delighted when I realized your framework stuff built classes. I > have kept as a book your first series of lectures on framework, > collections, classes, etc. Thanks so much for doing this work. > > Tina From rockysmolin at bchacc.com Sun Feb 22 16:07:04 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Sun, 22 Feb 2009 14:07:04 -0800 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <49a11fe0.1c05d00a.4b91.12d5@mx.google.com> References: <49a0a674.1701d00a.1bce.1568@mx.google.com><8E2FCA4F8F244B47B1E1C321CC80C357@HAL9005> <49a11fe0.1c05d00a.4b91.12d5@mx.google.com> Message-ID: Yes, one master copy but each time I make an update I have to create the foreign language versions and distribute them to the right customer. This is actually how I did it in the DOS version way back in the day. And once again I find myself wishing that I had enough business to make this a real problem. Do you know how many small manufacturers there are right now who are interested in investing in productivity software to increase their profitability in an expanding market? And if you find one please let me know. :( Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Sunday, February 22, 2009 1:50 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution >>Plus I'd have to maintain currently 5 versions of the program - one >>for each language. I think that one English version would be all that is needed UNLESS you have differing design constraints within the differing language versions. IOW, the problem you originally posted was to overcome the flicker/speed problem when opening forms due to the fact that the form's captions had to be converted each time. You also indicated that you send out an mde - I presume the same mde for all clients. Therefore, if I am correct in the above (kick me if I am not Rocky) then you only need the one master copy. Ie, master.mdb gets copied to Chinese.mdb. Chinese.mdb is then opened and the translation routine run. Chinese.mdb is then converted to Chinese.mde. Chinese.mde is then sent to Chinese Client. Chinese client then runs the Chinese Version of your application with all forms correctly captioned in Chinese and no conversion required when forms up. Repeat above for other languages. But you only need the one master which is copied from each time. Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 22 February 2009 08:47 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Another complication - evaluators can be requested from the web site. I suppose I could ask for the language as part of the request. I'd have to allow them to ask for multiple copies - different languages in case French speaking management wanted to evaluate it as well as the Chinese workers in the factory. IOW, the customer may not know for sure which language they want. Plus I'd have to maintain currently 5 versions of the program - one for each language. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Saturday, February 21, 2009 5:12 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Hi Gustav, Pub is now dry.. came home...ha! Well, if you are sending an MDE you would run the Translation Program then convert to an .MDE and then send it to client and then go back to pub - eh? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 21 February 2009 23:14 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Find First in an Array? - The Solution Hi Max and Rocky OK, that minor reason turned into a major; you will perform design changes of the forms which isn't possible in an mde. /gustav >>> Gustav at cactus.dk 21-02-2009 16:10 >>> Hi Max Very good! You have point here. It's a bit like Drew's suggestion but with a clever twist which I will leave for others to figure out (I have seen the sample db from Max). I can, however, think of one minor reason to not use your approach. Who said you don't get bright ideas while sleeping? /gustav >>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> Hello Rocky, Well, I have read with interest all the to-ing and fro-ing from the various contributors. So, I laid me down laterally and started thinking laterally. The solution came to be sometime around my 3rd drink. I consolidated my thoughts in bed. When I woke this morning, I tested them out with a sample mdb using English, French and German. All work beautifully. Add as many languages as you want. The solution I have has the following benefits: Instantaneous No variables No Collections No Classes (although the solution could be said to be upper class No Arrays No Memory overheads Forms shown the language required every time with no overheads. Unlimited Languages Should I post the sample mdb to you? Max Ps. Bet your intrigued - you will love this solution. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Sun Feb 22 16:07:49 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Sun, 22 Feb 2009 14:07:49 -0800 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <49a12910.0707d00a.614b.735a@mx.google.com> References: <49a0a674.1701d00a.1bce.1568@mx.google.com><8E2FCA4F8F244B47B1E1C321CC80C357@HAL9005> <49a12910.0707d00a.614b.735a@mx.google.com> Message-ID: <29AD9DF93B024FB1B76E3806D044E940@HAL9005> I'm flexible. I'm bending over for these people right now. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Sunday, February 22, 2009 2:30 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Further to my last posting, Rocky. I suppose you could also give the evaluators the one you currently have where the form get updated each time based on the language selected and tell the potential clients that a language specific option is available with improved form rendering. Then when the order (as they will surely do) give them the translated mde copy, Flexibility is the keyword here, I think. Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 22 February 2009 08:47 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Another complication - evaluators can be requested from the web site. I suppose I could ask for the language as part of the request. I'd have to allow them to ask for multiple copies - different languages in case French speaking management wanted to evaluate it as well as the Chinese workers in the factory. IOW, the customer may not know for sure which language they want. Plus I'd have to maintain currently 5 versions of the program - one for each language. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Saturday, February 21, 2009 5:12 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Hi Gustav, Pub is now dry.. came home...ha! Well, if you are sending an MDE you would run the Translation Program then convert to an .MDE and then send it to client and then go back to pub - eh? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 21 February 2009 23:14 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Find First in an Array? - The Solution Hi Max and Rocky OK, that minor reason turned into a major; you will perform design changes of the forms which isn't possible in an mde. /gustav >>> Gustav at cactus.dk 21-02-2009 16:10 >>> Hi Max Very good! You have point here. It's a bit like Drew's suggestion but with a clever twist which I will leave for others to figure out (I have seen the sample db from Max). I can, however, think of one minor reason to not use your approach. Who said you don't get bright ideas while sleeping? /gustav >>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> Hello Rocky, Well, I have read with interest all the to-ing and fro-ing from the various contributors. So, I laid me down laterally and started thinking laterally. The solution came to be sometime around my 3rd drink. I consolidated my thoughts in bed. When I woke this morning, I tested them out with a sample mdb using English, French and German. All work beautifully. Add as many languages as you want. The solution I have has the following benefits: Instantaneous No variables No Collections No Classes (although the solution could be said to be upper class No Arrays No Memory overheads Forms shown the language required every time with no overheads. Unlimited Languages Should I post the sample mdb to you? Max Ps. Bet your intrigued - you will love this solution. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Sun Feb 22 16:09:36 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Sun, 22 Feb 2009 14:09:36 -0800 Subject: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer In-Reply-To: <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <82745B5E88DE4DF2873544CB371BED1B@HAL9005> <499ff7dc.0a04d00a.7b19.593f@mx.google.com> <9348165EACB84473BF8DFF66D7F51274@HAL9005> <49a02500.0508d00a.4eb0.ffffbe67@mx.google.com><49A03291.7040904@colbyconsulting.com> <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> Message-ID: <33D6530042E143908666E07EF674A67C@HAL9005> Another great approach! And I could probably write a piece of code that would update the tags from the language tables so I could keep the tables as an easy way to create and edit the translations. Now THAT has possibilities. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Sunday, February 22, 2009 4:03 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer Ha! That might be a good solution - why didn't I think of that! Something like: Label1.tag = "Good Morning+God morgen+Bonjour+Guten Morgen+??+?????? ????" The set a global var to position-indicate the substring with the + as the delimiter (change delimiter to whatever). IE, 0=English, 1=Danish, 2=French, 3=German, 4=Chinese, 5=Russian. When the form loads cycle through the label.type controls and set the caption equal to the substring pulled from the TAG. Minimal programming. Minimum overheads. No disk accessing. No bunch of stuff held in memory. Very fast (I would guess). Brilliant - Horses for courses, but this could well work! Now then JC - Just let me move to the other side of the room behind the sofa. OK, I am hiding and protected. You can reply now! Max Ps. Translations taken from http://www.omniglot.com/language/phrases/goodmorning.htm so don't beat me up! Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 February 2009 16:58 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Tell me you are not using the tag for each control. John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Sun Feb 22 16:15:47 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Sun, 22 Feb 2009 14:15:47 -0800 Subject: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer In-Reply-To: <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg> Message-ID: Unless I keep the language table and use some code to update the tags from the edited table when the translations change. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Sunday, February 22, 2009 4:46 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer Minimal programming until you add a new language - then it's a real PITA - you have to edit every control on every form. :-( -- Stuart On 22 Feb 2009 at 12:03, Max Wanadoo wrote: > Label1.tag = "Good Morning+God morgen+Bonjour+Guten Morgen ... > Minimal programming. Minimum overheads. No disk accessing. No bunch > of stuff held in memory. Very fast (I would guess). -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Sun Feb 22 16:25:04 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sun, 22 Feb 2009 22:25:04 -0000 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <29AD9DF93B024FB1B76E3806D044E940@HAL9005> References: <49a0a674.1701d00a.1bce.1568@mx.google.com><8E2FCA4F8F244B47B1E1C321CC80C357@HAL9005> <49a12910.0707d00a.614b.735a@mx.google.com> <29AD9DF93B024FB1B76E3806D044E940@HAL9005> Message-ID: <49a1d0c5.1701d00a.17b7.17d9@mx.google.com> Rocky, My last direct posting to you via the mdb addresses all the concerns in your last three posting which have just hit my in-box. It does use the caption.tag to store the language strings but when I get some time I will see about appending a user.property to the form. I think that is doable so you don't need to have to use the .tag. But anyway, the last version allows for instant swapping between languages in a flash. No need to create different versions for different language clients. One version now fits all. It also has code to create all the language strings from the language table - you don't have to type any thing in - just run the code. I would also recommend the options from John, Stuart etc which all have advantages. Have a look. Sorry about the diminishing market but in the UK I think it is starting to pick up again so hopefully that will happen in the US. Take care. Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 22 February 2009 22:08 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution I'm flexible. I'm bending over for these people right now. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Sunday, February 22, 2009 2:30 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Further to my last posting, Rocky. I suppose you could also give the evaluators the one you currently have where the form get updated each time based on the language selected and tell the potential clients that a language specific option is available with improved form rendering. Then when the order (as they will surely do) give them the translated mde copy, Flexibility is the keyword here, I think. Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 22 February 2009 08:47 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Another complication - evaluators can be requested from the web site. I suppose I could ask for the language as part of the request. I'd have to allow them to ask for multiple copies - different languages in case French speaking management wanted to evaluate it as well as the Chinese workers in the factory. IOW, the customer may not know for sure which language they want. Plus I'd have to maintain currently 5 versions of the program - one for each language. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Saturday, February 21, 2009 5:12 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Hi Gustav, Pub is now dry.. came home...ha! Well, if you are sending an MDE you would run the Translation Program then convert to an .MDE and then send it to client and then go back to pub - eh? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 21 February 2009 23:14 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Find First in an Array? - The Solution Hi Max and Rocky OK, that minor reason turned into a major; you will perform design changes of the forms which isn't possible in an mde. /gustav >>> Gustav at cactus.dk 21-02-2009 16:10 >>> Hi Max Very good! You have point here. It's a bit like Drew's suggestion but with a clever twist which I will leave for others to figure out (I have seen the sample db from Max). I can, however, think of one minor reason to not use your approach. Who said you don't get bright ideas while sleeping? /gustav >>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> Hello Rocky, Well, I have read with interest all the to-ing and fro-ing from the various contributors. So, I laid me down laterally and started thinking laterally. The solution came to be sometime around my 3rd drink. I consolidated my thoughts in bed. When I woke this morning, I tested them out with a sample mdb using English, French and German. All work beautifully. Add as many languages as you want. The solution I have has the following benefits: Instantaneous No variables No Collections No Classes (although the solution could be said to be upper class No Arrays No Memory overheads Forms shown the language required every time with no overheads. Unlimited Languages Should I post the sample mdb to you? Max Ps. Bet your intrigued - you will love this solution. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Sun Feb 22 16:44:24 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Sun, 22 Feb 2009 17:44:24 -0500 Subject: [AccessD] Find First in an Array? - The Solution References: <49a0a674.1701d00a.1bce.1568@mx.google.com><8E2FCA4F8F244B47B1E1C321CC80C357@HAL9005> <49a12910.0707d00a.614b.735a@mx.google.com><29AD9DF93B024FB1B76E3806D044E940@HAL9005> <49a1d0c5.1701d00a.17b7.17d9@mx.google.com> Message-ID: <9B6866CE2B6144F8AF4BB22BBF36953C@jislaptopdev> ...can't speak for Rocky but I've got three good solutions and two sample mdbs, all of which work ...hard to beat that! ...thanks all :) William -------------------------------------------------- From: "Max Wanadoo" Sent: Sunday, February 22, 2009 5:25 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Find First in an Array? - The Solution > Rocky, > > My last direct posting to you via the mdb addresses all the concerns in > your > last three posting which have just hit my in-box. > It does use the caption.tag to store the language strings but when I get > some time I will see about appending a user.property to the form. I think > that is doable so you don't need to have to use the .tag. > > But anyway, the last version allows for instant swapping between languages > in a flash. No need to create different versions for different language > clients. One version now fits all. It also has code to create all the > language strings from the language table - you don't have to type any > thing > in - just run the code. > > I would also recommend the options from John, Stuart etc which all have > advantages. > > Have a look. Sorry about the diminishing market but in the UK I think it > is > starting to pick up again so hopefully that will happen in the US. > > Take care. > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: 22 February 2009 22:08 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > I'm flexible. I'm bending over for these people right now. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Sunday, February 22, 2009 2:30 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Further to my last posting, Rocky. > > I suppose you could also give the evaluators the one you currently have > where the form get updated each time based on the language selected and > tell > the potential clients that a language specific option is available with > improved form rendering. Then when the order (as they will surely do) > give > them the translated mde copy, Flexibility is the keyword here, I think. > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: 22 February 2009 08:47 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Another complication - evaluators can be requested from the web site. I > suppose I could ask for the language as part of the request. I'd have to > allow them to ask for multiple copies - different languages in case French > speaking management wanted to evaluate it as well as the Chinese workers > in > the factory. IOW, the customer may not know for sure which language they > want. > > Plus I'd have to maintain currently 5 versions of the program - one for > each > language. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Saturday, February 21, 2009 5:12 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hi Gustav, > Pub is now dry.. came home...ha! > Well, if you are sending an MDE you would run the Translation Program then > convert to an .MDE and then send it to client and then go back to pub - > eh? > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: 21 February 2009 23:14 > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hi Max and Rocky > > OK, that minor reason turned into a major; you will perform design changes > of the forms which isn't possible in an mde. > > /gustav > >>>> Gustav at cactus.dk 21-02-2009 16:10 >>> > Hi Max > > Very good! You have point here. > It's a bit like Drew's suggestion but with a clever twist which I will > leave > for others to figure out (I have seen the sample db from Max). > > I can, however, think of one minor reason to not use your approach. > > Who said you don't get bright ideas while sleeping? > > /gustav > >>>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> > Hello Rocky, > Well, I have read with interest all the to-ing and fro-ing from the > various > contributors. > So, I laid me down laterally and started thinking laterally. > The solution came to be sometime around my 3rd drink. > I consolidated my thoughts in bed. > When I woke this morning, I tested them out with a sample mdb using > English, > French and German. All work beautifully. Add as many languages as you > want. > > The solution I have has the following benefits: > > Instantaneous > No variables > No Collections > No Classes (although the solution could be said to be upper class No > Arrays No Memory overheads Forms shown the language required every time > with > no overheads. > Unlimited Languages > > Should I post the sample mdb to you? > > Max > Ps. Bet your intrigued - you will love this solution. > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From rockysmolin at bchacc.com Sun Feb 22 16:51:02 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Sun, 22 Feb 2009 14:51:02 -0800 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <49a1d0c5.1701d00a.17b7.17d9@mx.google.com> References: <49a0a674.1701d00a.1bce.1568@mx.google.com><8E2FCA4F8F244B47B1E1C321CC80C357@HAL9005> <49a12910.0707d00a.614b.735a@mx.google.com><29AD9DF93B024FB1B76E3806D044E940@HAL9005> <49a1d0c5.1701d00a.17b7.17d9@mx.google.com> Message-ID: <28E16E3CFA3D4D4ABE4F5FABADAD07AC@HAL9005> Both dbs were good but I really like the multiple languages in the tag property. That's really...lateral! Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Sunday, February 22, 2009 2:25 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Rocky, My last direct posting to you via the mdb addresses all the concerns in your last three posting which have just hit my in-box. It does use the caption.tag to store the language strings but when I get some time I will see about appending a user.property to the form. I think that is doable so you don't need to have to use the .tag. But anyway, the last version allows for instant swapping between languages in a flash. No need to create different versions for different language clients. One version now fits all. It also has code to create all the language strings from the language table - you don't have to type any thing in - just run the code. I would also recommend the options from John, Stuart etc which all have advantages. Have a look. Sorry about the diminishing market but in the UK I think it is starting to pick up again so hopefully that will happen in the US. Take care. Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 22 February 2009 22:08 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution I'm flexible. I'm bending over for these people right now. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Sunday, February 22, 2009 2:30 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Further to my last posting, Rocky. I suppose you could also give the evaluators the one you currently have where the form get updated each time based on the language selected and tell the potential clients that a language specific option is available with improved form rendering. Then when the order (as they will surely do) give them the translated mde copy, Flexibility is the keyword here, I think. Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 22 February 2009 08:47 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Another complication - evaluators can be requested from the web site. I suppose I could ask for the language as part of the request. I'd have to allow them to ask for multiple copies - different languages in case French speaking management wanted to evaluate it as well as the Chinese workers in the factory. IOW, the customer may not know for sure which language they want. Plus I'd have to maintain currently 5 versions of the program - one for each language. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Saturday, February 21, 2009 5:12 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Hi Gustav, Pub is now dry.. came home...ha! Well, if you are sending an MDE you would run the Translation Program then convert to an .MDE and then send it to client and then go back to pub - eh? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 21 February 2009 23:14 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Find First in an Array? - The Solution Hi Max and Rocky OK, that minor reason turned into a major; you will perform design changes of the forms which isn't possible in an mde. /gustav >>> Gustav at cactus.dk 21-02-2009 16:10 >>> Hi Max Very good! You have point here. It's a bit like Drew's suggestion but with a clever twist which I will leave for others to figure out (I have seen the sample db from Max). I can, however, think of one minor reason to not use your approach. Who said you don't get bright ideas while sleeping? /gustav >>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> Hello Rocky, Well, I have read with interest all the to-ing and fro-ing from the various contributors. So, I laid me down laterally and started thinking laterally. The solution came to be sometime around my 3rd drink. I consolidated my thoughts in bed. When I woke this morning, I tested them out with a sample mdb using English, French and German. All work beautifully. Add as many languages as you want. The solution I have has the following benefits: Instantaneous No variables No Collections No Classes (although the solution could be said to be upper class No Arrays No Memory overheads Forms shown the language required every time with no overheads. Unlimited Languages Should I post the sample mdb to you? Max Ps. Bet your intrigued - you will love this solution. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Sun Feb 22 17:24:36 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Sun, 22 Feb 2009 15:24:36 -0800 Subject: [AccessD] JC's Solution Message-ID: John: I reviewed the code and I think I see how it works, but not entirely. I'll be back with more questions I'm sure. But,as I said, I have to go back to the beginning of the Class class and start from there. Until I can understand completely what's going on I'm reluctant to put it into the product since it makes maintenance much more difficult. But it's going to be good for learning. BTW, if you want to include this in your eBook, feel free. Send me a permission form. I'd be honored to be included. I wonder if Apress would be interested? I did see a flash or repaint when opening one of my translated forms in TranslateJWC20080221.mdb. Do you know what that might be due to? It's really minimal especially compared to what I was seeing in my app before, and even less than the latest version in which I went through and put the following 5 lines in each form: Application.Echo False Call adhScaleForm(Me, 640, 480, 96, 96, rctOriginal) Call TranslateControlForm(Me.Name) DoCmd.Maximize Application.Echo True Before the calls to Scale, Translate, and Maximize were in random orders. This sequence seemed to work best to minimize the flashing before I put the Echo statements in - even less after, but not zero. It was the flashing that was the problem was really trying to solve. And I was thinking that the translation routine might be causing some of it, especially the Chinese which seems to take more resources to display. Or something. Anyway, that leads to another question - the answer to which will hopefully be useful to someone besides me - would that code - the five lines - be better in the Open event or the Load event? Any guidelines on when to use one vs. the other? Thanks again for your help and for creating all that material for the list. You're holding my marker. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com From jwcolby at colbyconsulting.com Sun Feb 22 18:42:21 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sun, 22 Feb 2009 19:42:21 -0500 Subject: [AccessD] JC's Solution In-Reply-To: References: Message-ID: <49A1F0ED.8060300@colbyconsulting.com> Rocky, I tried to use the load event and it did not fire. I am not sure why. I will go back and try again. Such code belongs... in the clsXlateFrm. One huge purpose of classes is to organize your code such that the code that belongs with an object is all in a container for that object. I do understand your reluctance to use a system that uses classes if you do not understand classes. OTOH, these two classes are so trivial that I can walk you through them. In fact I will walk AccessD through them. I gave you a form to use to select a language and a form to open. The code to open the form is a single line. I will post the code in three lectures, as I have in the past, then step by step walk you through the code so that you can understand how and why it works. One of the things I noticed in my own applications is that if there are toolbars in design view, then often the form opens, displays the toolbars, then makes those disappear, then redraws the form making the form full screen. The resize event actually fires each time that happens. By getting rid of the toolbars in design view (in my app), the form opens full size and does not go through that intermediate resize stuff. Flashing gone. Completely silly that should happen but it did. Also you should call Maximize FIRST! Do not draw the screen then maximize the screen. Even if it is hidden, it will slow down the form opening. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > John: > > I reviewed the code and I think I see how it works, but not entirely. I'll > be back with more questions I'm sure. But,as I said, I have to go back to > the beginning of the Class class and start from there. Until I can > understand completely what's going on I'm reluctant to put it into the > product since it makes maintenance much more difficult. But it's going to be > good for learning. BTW, if you want to include this in your eBook, feel > free. Send me a permission form. I'd be honored to be included. I wonder > if Apress would be interested? > > I did see a flash or repaint when opening one of my translated forms in > TranslateJWC20080221.mdb. Do you know what that might be due to? It's > really minimal especially compared to what I was seeing in my app before, > and even less than the latest version in which I went through and put the > following 5 lines in each form: > > Application.Echo False > Call adhScaleForm(Me, 640, 480, 96, 96, rctOriginal) > Call TranslateControlForm(Me.Name) > DoCmd.Maximize > Application.Echo True > > Before the calls to Scale, Translate, and Maximize were in random orders. > This sequence seemed to work best to minimize the flashing before I put the > Echo statements in - even less after, but not zero. It was the flashing > that was the problem was really trying to solve. And I was thinking that > the translation routine might be causing some of it, especially the Chinese > which seems to take more resources to display. Or something. > > Anyway, that leads to another question - the answer to which will hopefully > be useful to someone besides me - would that code - the five lines - be > better in the Open event or the Load event? Any guidelines on when to use > one vs. the other? > > Thanks again for your help and for creating all that material for the list. > You're holding my marker. > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > From jwcolby at colbyconsulting.com Sun Feb 22 20:43:33 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sun, 22 Feb 2009 21:43:33 -0500 Subject: [AccessD] Classes and Events - clsXlateForm Message-ID: <49A20D55.5080707@colbyconsulting.com> An AccessD member, Rocky Smolin, has an application that he translates into different languages. This next set of lectures will create a class system to perform that translation. There are many different ways to do this, and a class system is certainly not required, but using classes has advantages that other methods do not. One of the advantages is that while Rocky?s current requirements do not require anything other than a simple translation of labels and command buttons, it is entirely possible that the next person desiring to perform such a translation might wish to use things like the control tip text, status bar text, and even the form?s caption. Once we have the basic class set up, adding additional property translations can be added as required. Yes there will be refactoring but we go to the same classes we have already created to add the code. One other ?advantage?, and I quote that because there was intense debate about whether this was a good thing, is that using this system we cache the translation strings the first time the form opens and never have to go to the disk again as that form opens and closes. I like to cache such data, others don?t. This code will cache the data but if you don?t want it cached, then don?t save the form class in the clsXlateSupervisor?s collection. Voila, no caching. By the way, Rocky graciously donated the translation tables, and the forms to be translated to this lecture. All of this structure already existed, all I did was write the classes to use the table to translate the forms. At any rate, the following is my solution to this problem, using classes. The overall strategy will be to design a class clsXlateFrm to hold all of the translation phrases for a given form. This class will also hold all of the code to load the translation phrases into a collection for caching, and code to load the caption property of controls on the form from that collection of phrases. Above this class will be another class clsXlateSupervisor that is a ?supervisor? class, it supervises the process of translating forms. That class will have a collection to hold instances of clsXlateForm. As a form loads the first time clsXlateSupervisor will load an instance of clxXlateFrm, and call a method mInit() of that class to cause the form to be translated. Once it has a loaded functioning instance of clsXlateFrm for the form of the moment, it will store a pointer to that class instance into a collection for the next time. From that moment on, the data for the form just loaded will already exist and the second and subsequent times the form loads, the existing class instance will be used to translate the form. Just a note, as Rocky designed the system the only things that are translated are the captions of labels and command buttons. There are however additional properties of controls that could conceivably be used and thus need translation, specifically the status bar text and the control tip text. If these properties required translation as well I would in fact create a third class clsXlateCtl, where each control that ended up being translated gets this class. ClsXlateCtl would then have three properties that correspond to these control properties ? Caption, ControlTipText and StatusBarText. Instead of simply placing the caption translation string into a collection keyed on control name, I would create clsXlateCtl instances for precisely the controls needing translation, and then store those class instances into the collection. In fact we have previously designed a form class clsFrm and a couple of control classes. We could simply place this code into those classes and suddenly we have translation capability built in to any form. The beauty of classes and frameworks. However for the system as Rocky designed it, that simply adds unnecessary complexity and so I do not do that. I just added that note for those who might be thinking ?what about the control tip??. clsXlateFrm: ? In the demo database, click Insert / Class. ? Immediately save the class as clsXlateFrm. ? Type the following in the header of the class: '--------------------------------------------------------------------------------------- 'This class loads all of the phrase strings into a collection for a single form 'the first time the form loads, keyed on control name. It ignores control 'names not in the language table. ' 'It then uses those strings in the collection to translate the form. 'The second and subsequent times the form loads, the class already has the 'strings in the collection so the collection load does not happen again (cached) 'and the translation happens from the collection. ' 'One of the tenants of class programming is to place the code in the class that needs the code. 'In this case that means opening the translation recordset here in this class, since this class 'is where those phrases are loaded into the collection for a given form. ' '--------------------------------------------------------------------------------------- Const cstrModule As String = "clsXlateFrm" Option Compare Database Option Explicit Private mcolPhrase As Collection 'A collection of translated phrases keyed on the control name Private mstrName As String 'The name of the form that is being translated Private mstrLanguageFldName As String 'The name of the field in the translation table that holds the translation phrases Private mlngCacheSize As Long 'The size of the cache required (simple length of all the strings) The above code simply declares variables for a collection to hold the translated strings, the name of the form being translated, the name of the field in the translation table that holds the phrases for the selected language, and a place to accumulate the total length of the translation phrases for this form. ? In the editor?s left combo select the class. The Initialize event stub will be created. ? In the Initialize event stub place the following code: Private Sub Class_Initialize() Set mcolPhrase = New Collection End Sub ? In the editor?s right combo select Terminate and the Terminate event stub will be created. ? In the terminate event, place the following code: Private Sub Class_Terminate() Set mcolPhrase = Nothing End Sub ? Create the Minit() method as shown below '--------------------------------------------------------------------------------------- 'Called the first time the form loads. Loads the translation phrases from the table ' and translates the form. '--------------------------------------------------------------------------------------- ' Function mInit(lfrm As Form, lstrLanguageFldName As String) mstrName = lfrm.Name 'Store the name of the form mstrLanguageFldName = lstrLanguageFldName 'And the name of the translation field ' 'If nothing in the collection then load the collection ' If Not mcolPhrase.Count Then mLoadColPhrase 'Load the phrases into the collection End If ' 'Now translate the form ' mXlateFrm lfrm 'Translate the form End Function The code is documented. It stores the name of the form, and the name of the language field in the language table. It then simply calls two functions. The first function loads the translation phrases into a collection. The second function then uses that loaded collection to load the properties of controls on the form. ? Add the following code to create properties to expose the private variables in the class header. The variables exposed include the name of the form, the size of the cache, and the phrase collection. ' 'Return the size of the cache - the total length of all the strings Property Get pCacheSize() As Long pCacheSize = mlngCacheSize End Property ' 'Return the name of the form Property Get pName() As String pName = mstrName End Property ' 'Return the collection that holds the phrases Function colPhrase() As Collection Set colPhrase = mcolPhrase End Function ? Below the properties, add the following code: '--------------------------------------------------------------------------------------- 'This function translates the form. By the time this function is called the 'collection already contains all of the translation strings keyed by the 'control name. All it has to do is attempt to index into the collection 'using each control name. If there is something in the collection for that 'control name then the string is returned from the collection and placed in 'the control property. ' 'if nothing there, the error is ignored and the next control is tried. '--------------------------------------------------------------------------------------- ' Function mXlateFrm(frm As Form) Dim ctl As Control On Error GoTo Err_mXlateFrm ' 'Check every control on the form 'Expand this case to add new control types. For Each ctl In frm.Controls Select Case ctl.ControlType Case acLabel ' 'Try to get a translation phrase from the collection 'Any errors will be ignored ctl.Caption = mcolPhrase(ctl.Name) Case acCommandButton ctl.Caption = mcolPhrase(ctl.Name) Case Else End Select Next ctl Exit_mXlateFrm: On Error Resume Next Exit Function Err_mXlateFrm: Select Case Err Case 0 '.insert Errors you wish to ignore here Resume Next Case 5 'Control name not in translation table, ignore the error Resume Next Case Else '.All other errors will trap Beep MsgBox Err.Number & ":" & Err.Description Resume Exit_mXlateFrm End Select Resume 0 '.FOR TROUBLESHOOTING End Function This code is responsible for loading the translation phrases out of the translation table. The pointer to the form is passed in so that this method can manipulate the form?s control collection. The function simply dimensions a control variable, then uses that to step through the form?s control collection, processing each control. As each control is retrieved, the name of the control is used to index into mColPhrase, the collection of stored phrases. If the collection does not contain an entry for the current control?s name the code errors ahd drops into the error case at the bottom fo the class. Case 5 is executed and control simply resumes on the next line of the function. Essentially the case is exited when the phrase is not found, and the next control is pulled from the controls collection. The code continues until every control is checked. '--------------------------------------------------------------------------------------- ' Procedure : mLoadColPhrase ' Author : jwcolby ' Date : 2/21/2009 ' Purpose : Loads the translation phrase strings out of the table for one form ' Builds a query dynamically based on the form name and the translation ' language field name '--------------------------------------------------------------------------------------- ' Private Function mLoadColPhrase() Dim db As DAO.Database Dim rst As DAO.Recordset Dim strSQL As String Dim strCtlName As String Dim strPhrase As String On Error GoTo Err_mLoadColPhrase ' 'Dynamically build the query to pull the translation strings for a specific form and language 'This query will pull a recordset of all the control names and the translation phrases for those controls ' strSQL = "SELECT fldLanguageControl, " & mstrLanguageFldName & " " & _ "FROM [usystblLanguage-Controls] " & _ "WHERE ((([usystblLanguage-Controls].fldLanguageForm)='" & mstrName & "'));" 'debug.print strsql 'To see the actual query SQL, uncomment this line and look in the immediate window ' 'Open the recordset ' Set db = CurrentDb Set rst = db.OpenRecordset(strSQL) With rst While Not .EOF ' 'Drop all phrases found into the phrase collection 'Keyed on the control name fldLanguageControl ' On Error Resume Next strCtlName = .Fields(0).Value 'Get the control name If Not Err Then 'This error handles null values that might be in the control name field strPhrase = .Fields(1).Value If Not Err Then 'This error handles null values that might be in the phrase field mcolPhrase.Add strPhrase, strCtlName 'Now place the phrase in the control, keyed on the control name mlngCacheSize = mlngCacheSize + Len(strPhrase) 'Add up the size of the translation strings End If End If .MoveNext Wend End With Exit_mLoadColPhrase: On Error Resume Next rst.Close Set rst = Nothing Set db = Nothing Exit Function Err_mLoadColPhrase: Select Case Err Case 0 '.insert Errors you wish to ignore here Resume Next Case Else '.All other errors will trap Beep MsgBox Err.Number & ":" & Err.Description Resume Exit_mLoadColPhrase End Select Resume 0 '.FOR TROUBLESHOOTING End Function This code is responsible for loading the phrases out of a recordset into a collection for all future processing. Translation cannot occur until this code runs, and once it runs the recordset never needs to be opened again since the translation data is now cached. This code builds up a dynamic SQL string which pulls two fields out of the control table. It pulls the name of the control in the first field, and the translation phrase for a specific language into the second field. It does so filtered by the form name so that it only pulls translation records for one specific form. The dynamic code is a little complicated by the fact that the source table is denormalized, with an additional language field being added to the table as new languages are required. Since the name of the language field is not fixed, this requires getting creative and having the supervisor class give us the name of the translation field in the table as well as the form name. Once we have these two pieces of information, we can build a query to pull exactly the correct language field, with the recordset filtered by the form name. Once the data is sitting in the recordset, the recordset is iterated and the control name and translation string are pulled into string variables. There is no requirement to pull these pieces into a string, and in fact it slows the code down a very small amount, but it makes the code easier to read. By creating string to hold the data, you can see that: strCtlName = .Fields(0).Value 'Get the control name strPhrase = .Fields(1).Value Then you can read that the data is added to the collection: mcolPhrase.Add strPhrase, strCtlName It is simply much more readable. If doing this significantly impacted performance, and particularly if this wasn?t a tutorial on ?how to?, I probably would not perform this extra step. That is pretty much all there is. The recordset steps through all of the translation phrase records, storing the data into the collection. Reading the data and using the data occurs in two separate functions both for readability but also because after the first time the data is already in the collection and this function is never again called. In this lecture we have discussed a strategy for performing a translation of labels and command buttons on forms from one language to another. Using existing forms as well as existing translation data provided by Rocky Smolin, we designed a class to open the translation table and pull the translation strings out into a collection, each translation string keyed by the control name. Once we had the data in the collection, we then designed code to load the data out of the class into the caption properties of the controls on the form. The data is loaded from the recordset into the collection one time, and from then on the data in the collection is used to translate the form. In other words, the data is cached and ready to go the next time the form needs translation. -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Sun Feb 22 22:42:37 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sun, 22 Feb 2009 23:42:37 -0500 Subject: [AccessD] Classes and Events - clsXlateSupervisor Message-ID: <49A2293D.6050406@colbyconsulting.com> clsXlateSupervisor: This class will be the supervisor for the translation process. The supervisor really just holds a collection that can hold instances of clsXlateFrm so that the data is cached, and a method to call to perform the translation of a form. If the cache is not desired then clsXlateFrm would be instantiated directly in the form?s class in the Open event and the instance of the class is discarded after performing the translation. If caching is desired then this class will perform the caching of the form classes for us. ? Open the demo database. ? In the menu click Insert / Class ? Immediately save the class as clsXlateSupervisor. ? In the header of the class add the following code: Option Compare Database Option Explicit Private mcolClsXlateFrm As Collection Private mlngCacheSize As Long Private mstrLanguageFld As String This code creates a collection to hold the clsXlateFrm instances, keyed on the form name. It also creates a cache size variable for the total cache size for all translation phrases for all forms loaded so far, and a place to save the language field name. Private Sub Class_Initialize() Set mcolClsXlateFrm = New Collection End Sub Private Sub Class_Terminate() Set mcolClsXlateFrm = Nothing End Sub The Initialize and terminate events are used to set up and tear down a pointer to the collection. ' 'Get the cache size for all forms cached so far ' Property Get pCacheSize() As Long pCacheSize = mlngCacheSize End Property ' 'Return a pointer to colClsXlateFrm ' Property Get colClsXlateFrm() As Collection Set colClsXlateFrm = mcolClsXlateFrm End Property The class properties return the private variables in the header of the class. '--------------------------------------------------------------------------------------- ' Procedure : mTranslateFrm ' Author : jwcolby ' Date : 2/21/2009 ' Purpose : Performs the translation for one form passed in. '--------------------------------------------------------------------------------------- ' Function mTranslateFrm(lfrm As Form, lstrLanguageFldName As String) Dim lclsXlateFrm As clsXlateFrm On Error GoTo Err_mTranslateFrm ' 'If the language changes then purge the collection of clsXlateFrm instances ' If lstrLanguageFldName <> mstrLanguageFld Then mstrLanguageFld = lstrLanguageFldName 'Save the new language field name ' 'Setting a collection to nothing causes the contents of the collection to be deleted. Set mcolClsXlateFrm = New Collection 'Empty the collection and get a new collection End If On Error Resume Next ' 'Try to get an instance of the clsXlateFrm from the collection for this form ' Set lclsXlateFrm = mcolClsXlateFrm(lfrm.Name) If Err Then ' 'If that fails then this is the first time so perform the initialize ' Set lclsXlateFrm = New clsXlateFrm ' 'Now that we have an instance for this form perform the load and translation ' lclsXlateFrm.mInit lfrm, lstrLanguageFldName ' ' ' mlngCacheSize = mlngCacheSize + lclsXlateFrm.pCacheSize Debug.Print lclsXlateFrm.pName & ":" & lclsXlateFrm.pCacheSize ' 'And save the instance to the collection for the next time ' mcolClsXlateFrm.Add lclsXlateFrm, lfrm.Name Else ' 'We have already loaded this form once so perform the translation ' lclsXlateFrm.mXlateFrm lfrm ' ' ' Debug.Print lclsXlateFrm.pName & ":" & lclsXlateFrm.pCacheSize End If Exit_mTranslateFrm: On Error Resume Next Exit Function Err_mTranslateFrm: Select Case Err Case 0 '.insert Errors you wish to ignore here Resume Next Case Else '.All other errors will trap Beep MsgBox Err.Number & ":" & Err.Description Resume Exit_mTranslateFrm End Select Resume 0 '.FOR TROUBLESHOOTING End Function So far, there is only a single method in this class. mTranslate form accepts a pointer to a form and the name of a language field in language table. The first thing that the code does is test whether the language field is the same as the last time the method was called. If not then it creates a new instance of the collection. Doing this to a collection pointer causes any contents of the collection to be gathered by the VBA garbage collection, in other words, it empties the collection, closes it, and then creates a brand new collection object. Doing this is not a good idea of the collection contains any pointers to Access objects such as recordsets, controls or forms, or contains classes which contain pointers to these objects. Access? garbage collector is infamously flakely about correctly cleaning up such objects. In our case however the collection contains classes which only store simple types such as strings, and as far as I can tell the garbage collector cleans up objects like that just fine. So for our purposes, simply dimensioning the collection as a new instance is perfectly safe. Once we test for a new language, we attempt to get a clsXlateFrm instance from the collection for the current form. If none exists, we create a new instance for this form, and initialize the instance by calling mInit(). mInit() completely translates the form and caches the translation phrases for this form in a collection in clsXlateFrm. We then simply call a property of clsXlateFrm to get the cache size and add it to a variable in our header. Finally we add the new clsXlateFrm to our collection so that it is saved for the next time the form opens. If this is the second or subsequent time the form was opened, the collection already contains an instance of clsXlateFrm for this form. In this case we just call the mXlateFrm () method of that instance in order to perform the translation for this form using the already loaded and cached translation phrases. In this lecture we have discussed the operation of the supervisor class for the translation system. This class is extremely simple, with three properties and a single mTranslateFrm function. As we shall see in the next lecture, this class is used just by calling the single function, passing in a pointer to the form to translate and the field name that holds the translation language phrases. -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Sun Feb 22 23:35:00 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 23 Feb 2009 00:35:00 -0500 Subject: [AccessD] Classes and Events - basXlate Message-ID: <49A23584.5090008@colbyconsulting.com> Class systems have to be initialized somewhere. Often this is a form, or another class, but often we will be creating a module to hold a pointer to the base class of the system, as well as code to initialize and tear down the class system and a function to get a pointer to the base class. This pattern will become routine as we build systems of classes that perform a function for the application. You will see it over and over, an initialization module, a base class, and other classes called by the base class, perhaps even instances stored in collections in the base class. This lecture builds the initialization module for the translation system. Because the system caches the data to perform form translations, the base class clsXlateSupervisor is ?global? to the system. The clsXlateSupervisor is called by each form as it opens, and clsXlateSupervisor then causes the form to be translated into the language requested. ? Open the demo database. ? In the menu click Insert / Module (NOT a class). ? Immediately save the module to basXlate. ? In the header of the class insert the following code: '--------------------------------------------------------------------------------------- 'Functions to initialize, terminate and return a pointer to clsXlateSupervisor 'as well as a global variable for the translation string field name. '--------------------------------------------------------------------------------------- Const cstrModule As String = "basXlate" Option Compare Database Option Explicit Private mclsXlateSupervisor As clsXlateSupervisor ' 'Set this variable to the name of the field holding the translation language strings ' 'fldLanguageEnglish 'fldLanguageChineseComplex 'etc ' Public mstrLanguageFldName As String This code creates two variables. mclsXlateSupervisor is private, and holds a pointer to the single instance of clsXlateSupervisor. We cause this variable to be private so that it can only be created by a call to an initialization function, and can only be torn down by a call to a terminate function. In other words no ?accidental? manipulation of the pointer. mstrLanguageFldName is public. This variable must be set to the name of a valid language field in the translation table before the class is initialized the first time. If that is not done, the results are undetermined, that is a correct translation will not be performed. Function mXlateSupervisorInit() If mclsXlateSupervisor Is Nothing Then Set mclsXlateSupervisor = New clsXlateSupervisor End If Set mXlateSupervisorInit = mclsXlateSupervisor End Function This function initializes the supervisor class. The pointer to the class is tested to see if it is already initialized. If not then a new instance to clsXlateSupervisor is created and saved in mclsXlateSupervisor. The pointer to the class is then returned from the function. Function mXlateSupervisorTerm() Set mclsXlateSupervisor = Nothing End Function This function simply destroys the supervisor class instance. Call it when you terminate your application. Function cXS() As clsXlateSupervisor Set cXS = mXlateSupervisorInit() End Function cXS() is a function which calls the initialization code every time to make sure it is initialized, and returns a pointer to the now initialized supervisor class. This lecture discusses the initialization module for the translation system. The initialization module for any class system is usually exactly as you see here. It consists of a private pointer to the base class, code to initialize and terminate the class, and a function to call the Init and return a pointer to the initialized base class. If the bass class already exists, the init simply grabs a pointer to the base class instance; otherwise it initializes the base class and returns the pointer. There is not much in this module, and what is here will be seen over and over as we add class systems to perform tasks for the application. The last piece to discuss is the form to be translated. In the class behind the form simply add the following code: Private Sub Form_Open(Cancel As Integer) ' 'Call the mTranslateFrm method of the translation supervisor and 'pass in a reference to this form, and a language field name ' cXS.mTranslateFrm Me, mstrLanguageFldName End Sub This code calls the function that returns a pointer to the clsXlateSupervisor. It passes in a pointer to the form itself (me) and the string that contains the name of the desired language field in the translation table. By the time this cXS call returns the form is translated and the translation data is cached for the next time this form opens. To watch the system perform a translation of a form, place a break point in cXS and then step the code. By now you should be able to step through the code and follow along as classes are instantiated, methods called and so forth. In this lecture we discovered how simple the initialization code for class systems is. In most cases there is a private pointer to the base class, an init and term function and a function that returns a pointer to the base class. There isn?t much to see but we discussed the first time through the initialization function where the base class is initialized. We then discussed the single line of code that is called from the form?s Open event that causes the form to be translated. Class are often used in systems. You have seen such systems in Access, for example recordsets have records, which have fields, which have properties. All of these things are classes, and all of these things exist in collections of a class above them. We are now creating class systems of our own. This is a simple two class system, consisting of a translation supervisor class and a form translation class. You will see more and more class systems as I write more of these lectures. Eventually I will create a framework base class which will hold instances of the base classes for application systems such as form translations. At that point we will have only a single initialization module, which will initialize the framework. The framework base class will initialize all other classes. When we create the framework class, you too will be a framework developer. -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Mon Feb 23 00:14:53 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 23 Feb 2009 01:14:53 -0500 Subject: [AccessD] Classes and Events - Hosting the translation demo Message-ID: <49A23EDD.4050803@colbyconsulting.com> I had hoped to put up the translation system demo database on my site however it seems that my site is more thoroughly trashed than I had thought. I can't see ANYTHING from the DNN administrator user which is where I would normally perform this function. Sigh. I will keep you apprised whether it is going to happen. I am currently backing up the content of my site to my laptop here at my office so that I don't lose that. Then I will see if the Host user can do this stuff (I think so). It won't happen tonight though. -- John W. Colby www.ColbyConsulting.com From jimdettman at verizon.net Mon Feb 23 07:44:27 2009 From: jimdettman at verizon.net (Jim Dettman) Date: Mon, 23 Feb 2009 08:44:27 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited -NowTag is the Answer In-Reply-To: <33D6530042E143908666E07EF674A67C@HAL9005> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <82745B5E88DE4DF2873544CB371BED1B@HAL9005> <499ff7dc.0a04d00a.7b19.593f@mx.google.com> <9348165EACB84473BF8DFF66D7F51274@HAL9005> <49a02500.0508d00a.4eb0.ffffbe67@mx.google.com><49A03291.7040904@colbyconsulting.com> <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> <33D6530042E143908666E07EF674A67C@HAL9005> Message-ID: Yes, a good solution and once again why this is such a great list; it represents a wide range of skills, viewpoints, and opinions. I think we've all learned over the years that there is no one size fits all approach, and as a result the value of belonging to this list is outstanding. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Sunday, February 22, 2009 5:10 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -NowTag is the Answer Another great approach! And I could probably write a piece of code that would update the tags from the language tables so I could keep the tables as an easy way to create and edit the translations. Now THAT has possibilities. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Sunday, February 22, 2009 4:03 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer Ha! That might be a good solution - why didn't I think of that! Something like: Label1.tag = "Good Morning+God morgen+Bonjour+Guten Morgen+??+?????? ????" The set a global var to position-indicate the substring with the + as the delimiter (change delimiter to whatever). IE, 0=English, 1=Danish, 2=French, 3=German, 4=Chinese, 5=Russian. When the form loads cycle through the label.type controls and set the caption equal to the substring pulled from the TAG. Minimal programming. Minimum overheads. No disk accessing. No bunch of stuff held in memory. Very fast (I would guess). Brilliant - Horses for courses, but this could well work! Now then JC - Just let me move to the other side of the room behind the sofa. OK, I am hiding and protected. You can reply now! Max Ps. Translations taken from http://www.omniglot.com/language/phrases/goodmorning.htm so don't beat me up! Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 February 2009 16:58 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Tell me you are not using the tag for each control. John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jimdettman at verizon.net Mon Feb 23 07:50:22 2009 From: jimdettman at verizon.net (Jim Dettman) Date: Mon, 23 Feb 2009 08:50:22 -0500 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <9B6866CE2B6144F8AF4BB22BBF36953C@jislaptopdev> References: <49a0a674.1701d00a.1bce.1568@mx.google.com><8E2FCA4F8F244B47B1E1C321CC80C357@HAL9005> <49a12910.0707d00a.614b.735a@mx.google.com><29AD9DF93B024FB1B76E3806D044E940@HAL9005> <49a1d0c5.1701d00a.17b7.17d9@mx.google.com> <9B6866CE2B6144F8AF4BB22BBF36953C@jislaptopdev> Message-ID: <08881A88BCC548649C2141319132ACB5@XPS> If someone can send me the language tables off list, I'll take the time to do the seek approach just for the heck of it and then we really can do an apples to apples comparison. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Sunday, February 22, 2009 5:44 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution ...can't speak for Rocky but I've got three good solutions and two sample mdbs, all of which work ...hard to beat that! ...thanks all :) William -------------------------------------------------- From: "Max Wanadoo" Sent: Sunday, February 22, 2009 5:25 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Find First in an Array? - The Solution > Rocky, > > My last direct posting to you via the mdb addresses all the concerns in > your > last three posting which have just hit my in-box. > It does use the caption.tag to store the language strings but when I get > some time I will see about appending a user.property to the form. I think > that is doable so you don't need to have to use the .tag. > > But anyway, the last version allows for instant swapping between languages > in a flash. No need to create different versions for different language > clients. One version now fits all. It also has code to create all the > language strings from the language table - you don't have to type any > thing > in - just run the code. > > I would also recommend the options from John, Stuart etc which all have > advantages. > > Have a look. Sorry about the diminishing market but in the UK I think it > is > starting to pick up again so hopefully that will happen in the US. > > Take care. > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: 22 February 2009 22:08 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > I'm flexible. I'm bending over for these people right now. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Sunday, February 22, 2009 2:30 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Further to my last posting, Rocky. > > I suppose you could also give the evaluators the one you currently have > where the form get updated each time based on the language selected and > tell > the potential clients that a language specific option is available with > improved form rendering. Then when the order (as they will surely do) > give > them the translated mde copy, Flexibility is the keyword here, I think. > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: 22 February 2009 08:47 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Another complication - evaluators can be requested from the web site. I > suppose I could ask for the language as part of the request. I'd have to > allow them to ask for multiple copies - different languages in case French > speaking management wanted to evaluate it as well as the Chinese workers > in > the factory. IOW, the customer may not know for sure which language they > want. > > Plus I'd have to maintain currently 5 versions of the program - one for > each > language. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Saturday, February 21, 2009 5:12 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hi Gustav, > Pub is now dry.. came home...ha! > Well, if you are sending an MDE you would run the Translation Program then > convert to an .MDE and then send it to client and then go back to pub - > eh? > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: 21 February 2009 23:14 > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hi Max and Rocky > > OK, that minor reason turned into a major; you will perform design changes > of the forms which isn't possible in an mde. > > /gustav > >>>> Gustav at cactus.dk 21-02-2009 16:10 >>> > Hi Max > > Very good! You have point here. > It's a bit like Drew's suggestion but with a clever twist which I will > leave > for others to figure out (I have seen the sample db from Max). > > I can, however, think of one minor reason to not use your approach. > > Who said you don't get bright ideas while sleeping? > > /gustav > >>>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> > Hello Rocky, > Well, I have read with interest all the to-ing and fro-ing from the > various > contributors. > So, I laid me down laterally and started thinking laterally. > The solution came to be sometime around my 3rd drink. > I consolidated my thoughts in bed. > When I woke this morning, I tested them out with a sample mdb using > English, > French and German. All work beautifully. Add as many languages as you > want. > > The solution I have has the following benefits: > > Instantaneous > No variables > No Collections > No Classes (although the solution could be said to be upper class No > Arrays No Memory overheads Forms shown the language required every time > with > no overheads. > Unlimited Languages > > Should I post the sample mdb to you? > > Max > Ps. Bet your intrigued - you will love this solution. > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Mon Feb 23 07:54:14 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Mon, 23 Feb 2009 05:54:14 -0800 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <08881A88BCC548649C2141319132ACB5@XPS> References: <49a0a674.1701d00a.1bce.1568@mx.google.com><8E2FCA4F8F244B47B1E1C321CC80C357@HAL9005><49a12910.0707d00a.614b.735a@mx.google.com><29AD9DF93B024FB1B76E3806D044E940@HAL9005><49a1d0c5.1701d00a.17b7.17d9@mx.google.com><9B6866CE2B6144F8AF4BB22BBF36953C@jislaptopdev> <08881A88BCC548649C2141319132ACB5@XPS> Message-ID: I can do that. What's the best address? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman Sent: Monday, February 23, 2009 5:50 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution If someone can send me the language tables off list, I'll take the time to do the seek approach just for the heck of it and then we really can do an apples to apples comparison. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Sunday, February 22, 2009 5:44 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution ...can't speak for Rocky but I've got three good solutions and two sample mdbs, all of which work ...hard to beat that! ...thanks all :) William -------------------------------------------------- From: "Max Wanadoo" Sent: Sunday, February 22, 2009 5:25 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Find First in an Array? - The Solution > Rocky, > > My last direct posting to you via the mdb addresses all the concerns > in your last three posting which have just hit my in-box. > It does use the caption.tag to store the language strings but when I > get some time I will see about appending a user.property to the form. > I think that is doable so you don't need to have to use the .tag. > > But anyway, the last version allows for instant swapping between > languages in a flash. No need to create different versions for > different language clients. One version now fits all. It also has > code to create all the language strings from the language table - you > don't have to type any thing in - just run the code. > > I would also recommend the options from John, Stuart etc which all > have advantages. > > Have a look. Sorry about the diminishing market but in the UK I think > it is starting to pick up again so hopefully that will happen in the > US. > > Take care. > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. > And always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 22 February 2009 22:08 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > I'm flexible. I'm bending over for these people right now. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Sunday, February 22, 2009 2:30 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Further to my last posting, Rocky. > > I suppose you could also give the evaluators the one you currently > have where the form get updated each time based on the language > selected and tell the potential clients that a language specific > option is available with improved form rendering. Then when the order > (as they will surely do) give them the translated mde copy, > Flexibility is the keyword here, I think. > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. > And always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 22 February 2009 08:47 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Another complication - evaluators can be requested from the web site. > I suppose I could ask for the language as part of the request. I'd > have to allow them to ask for multiple copies - different languages in > case French speaking management wanted to evaluate it as well as the > Chinese workers in the factory. IOW, the customer may not know for > sure which language they want. > > Plus I'd have to maintain currently 5 versions of the program - one > for each language. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Saturday, February 21, 2009 5:12 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hi Gustav, > Pub is now dry.. came home...ha! > Well, if you are sending an MDE you would run the Translation Program then > convert to an .MDE and then send it to client and then go back to pub - > eh? > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: 21 February 2009 23:14 > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hi Max and Rocky > > OK, that minor reason turned into a major; you will perform design changes > of the forms which isn't possible in an mde. > > /gustav > >>>> Gustav at cactus.dk 21-02-2009 16:10 >>> > Hi Max > > Very good! You have point here. > It's a bit like Drew's suggestion but with a clever twist which I will > leave > for others to figure out (I have seen the sample db from Max). > > I can, however, think of one minor reason to not use your approach. > > Who said you don't get bright ideas while sleeping? > > /gustav > >>>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> > Hello Rocky, > Well, I have read with interest all the to-ing and fro-ing from the > various > contributors. > So, I laid me down laterally and started thinking laterally. > The solution came to be sometime around my 3rd drink. > I consolidated my thoughts in bed. > When I woke this morning, I tested them out with a sample mdb using > English, > French and German. All work beautifully. Add as many languages as you > want. > > The solution I have has the following benefits: > > Instantaneous > No variables > No Collections > No Classes (although the solution could be said to be upper class No > Arrays No Memory overheads Forms shown the language required every time > with > no overheads. > Unlimited Languages > > Should I post the sample mdb to you? > > Max > Ps. Bet your intrigued - you will love this solution. > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Mon Feb 23 08:04:35 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 23 Feb 2009 14:04:35 -0000 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: References: <49a0a674.1701d00a.1bce.1568@mx.google.com><8E2FCA4F8F244B47B1E1C321CC80C357@HAL9005><49a12910.0707d00a.614b.735a@mx.google.com><29AD9DF93B024FB1B76E3806D044E940@HAL9005><49a1d0c5.1701d00a.17b7.17d9@mx.google.com><9B6866CE2B6144F8AF4BB22BBF36953C@jislaptopdev> <08881A88BCC548649C2141319132ACB5@XPS> Message-ID: <49a2acf8.01ac420a.3d29.ffff8932@mx.google.com> Me too Rocky, Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 23 February 2009 13:54 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution I can do that. What's the best address? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman Sent: Monday, February 23, 2009 5:50 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution If someone can send me the language tables off list, I'll take the time to do the seek approach just for the heck of it and then we really can do an apples to apples comparison. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Sunday, February 22, 2009 5:44 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution ...can't speak for Rocky but I've got three good solutions and two sample mdbs, all of which work ...hard to beat that! ...thanks all :) William -------------------------------------------------- From: "Max Wanadoo" Sent: Sunday, February 22, 2009 5:25 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Find First in an Array? - The Solution > Rocky, > > My last direct posting to you via the mdb addresses all the concerns > in your last three posting which have just hit my in-box. > It does use the caption.tag to store the language strings but when I > get some time I will see about appending a user.property to the form. > I think that is doable so you don't need to have to use the .tag. > > But anyway, the last version allows for instant swapping between > languages in a flash. No need to create different versions for > different language clients. One version now fits all. It also has > code to create all the language strings from the language table - you > don't have to type any thing in - just run the code. > > I would also recommend the options from John, Stuart etc which all > have advantages. > > Have a look. Sorry about the diminishing market but in the UK I think > it is starting to pick up again so hopefully that will happen in the > US. > > Take care. > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. > And always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 22 February 2009 22:08 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > I'm flexible. I'm bending over for these people right now. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Sunday, February 22, 2009 2:30 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Further to my last posting, Rocky. > > I suppose you could also give the evaluators the one you currently > have where the form get updated each time based on the language > selected and tell the potential clients that a language specific > option is available with improved form rendering. Then when the order > (as they will surely do) give them the translated mde copy, > Flexibility is the keyword here, I think. > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. > And always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 22 February 2009 08:47 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Another complication - evaluators can be requested from the web site. > I suppose I could ask for the language as part of the request. I'd > have to allow them to ask for multiple copies - different languages in > case French speaking management wanted to evaluate it as well as the > Chinese workers in the factory. IOW, the customer may not know for > sure which language they want. > > Plus I'd have to maintain currently 5 versions of the program - one > for each language. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Saturday, February 21, 2009 5:12 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hi Gustav, > Pub is now dry.. came home...ha! > Well, if you are sending an MDE you would run the Translation Program then > convert to an .MDE and then send it to client and then go back to pub - > eh? > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: 21 February 2009 23:14 > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hi Max and Rocky > > OK, that minor reason turned into a major; you will perform design changes > of the forms which isn't possible in an mde. > > /gustav > >>>> Gustav at cactus.dk 21-02-2009 16:10 >>> > Hi Max > > Very good! You have point here. > It's a bit like Drew's suggestion but with a clever twist which I will > leave > for others to figure out (I have seen the sample db from Max). > > I can, however, think of one minor reason to not use your approach. > > Who said you don't get bright ideas while sleeping? > > /gustav > >>>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> > Hello Rocky, > Well, I have read with interest all the to-ing and fro-ing from the > various > contributors. > So, I laid me down laterally and started thinking laterally. > The solution came to be sometime around my 3rd drink. > I consolidated my thoughts in bed. > When I woke this morning, I tested them out with a sample mdb using > English, > French and German. All work beautifully. Add as many languages as you > want. > > The solution I have has the following benefits: > > Instantaneous > No variables > No Collections > No Classes (although the solution could be said to be upper class No > Arrays No Memory overheads Forms shown the language required every time > with > no overheads. > Unlimited Languages > > Should I post the sample mdb to you? > > Max > Ps. Bet your intrigued - you will love this solution. > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Mon Feb 23 08:09:48 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Mon, 23 Feb 2009 06:09:48 -0800 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <49a2acf8.01ac420a.3d29.ffff8932@mx.google.com> References: <49a0a674.1701d00a.1bce.1568@mx.google.com><8E2FCA4F8F244B47B1E1C321CC80C357@HAL9005><49a12910.0707d00a.614b.735a@mx.google.com><29AD9DF93B024FB1B76E3806D044E940@HAL9005><49a1d0c5.1701d00a.17b7.17d9@mx.google.com><9B6866CE2B6144F8AF4BB22BBF36953C@jislaptopdev> <08881A88BCC548649C2141319132ACB5@XPS> <49a2acf8.01ac420a.3d29.ffff8932@mx.google.com> Message-ID: <95332F6ED8CA4C5CA5D95687C6607153@HAL9005> What's the best email address? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Monday, February 23, 2009 6:05 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Me too Rocky, Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 23 February 2009 13:54 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution I can do that. What's the best address? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman Sent: Monday, February 23, 2009 5:50 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution If someone can send me the language tables off list, I'll take the time to do the seek approach just for the heck of it and then we really can do an apples to apples comparison. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Sunday, February 22, 2009 5:44 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution ...can't speak for Rocky but I've got three good solutions and two sample mdbs, all of which work ...hard to beat that! ...thanks all :) William -------------------------------------------------- From: "Max Wanadoo" Sent: Sunday, February 22, 2009 5:25 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Find First in an Array? - The Solution > Rocky, > > My last direct posting to you via the mdb addresses all the concerns > in your last three posting which have just hit my in-box. > It does use the caption.tag to store the language strings but when I > get some time I will see about appending a user.property to the form. > I think that is doable so you don't need to have to use the .tag. > > But anyway, the last version allows for instant swapping between > languages in a flash. No need to create different versions for > different language clients. One version now fits all. It also has > code to create all the language strings from the language table - you > don't have to type any thing in - just run the code. > > I would also recommend the options from John, Stuart etc which all > have advantages. > > Have a look. Sorry about the diminishing market but in the UK I think > it is starting to pick up again so hopefully that will happen in the > US. > > Take care. > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. > And always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 22 February 2009 22:08 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > I'm flexible. I'm bending over for these people right now. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Sunday, February 22, 2009 2:30 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Further to my last posting, Rocky. > > I suppose you could also give the evaluators the one you currently > have where the form get updated each time based on the language > selected and tell the potential clients that a language specific > option is available with improved form rendering. Then when the order > (as they will surely do) give them the translated mde copy, > Flexibility is the keyword here, I think. > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. > And always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 22 February 2009 08:47 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Another complication - evaluators can be requested from the web site. > I suppose I could ask for the language as part of the request. I'd > have to allow them to ask for multiple copies - different languages in > case French speaking management wanted to evaluate it as well as the > Chinese workers in the factory. IOW, the customer may not know for > sure which language they want. > > Plus I'd have to maintain currently 5 versions of the program - one > for each language. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Saturday, February 21, 2009 5:12 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hi Gustav, > Pub is now dry.. came home...ha! > Well, if you are sending an MDE you would run the Translation Program > then convert to an .MDE and then send it to client and then go back to > pub - eh? > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav > Brock > Sent: 21 February 2009 23:14 > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hi Max and Rocky > > OK, that minor reason turned into a major; you will perform design > changes of the forms which isn't possible in an mde. > > /gustav > >>>> Gustav at cactus.dk 21-02-2009 16:10 >>> > Hi Max > > Very good! You have point here. > It's a bit like Drew's suggestion but with a clever twist which I will > leave for others to figure out (I have seen the sample db from Max). > > I can, however, think of one minor reason to not use your approach. > > Who said you don't get bright ideas while sleeping? > > /gustav > >>>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> > Hello Rocky, > Well, I have read with interest all the to-ing and fro-ing from the > various contributors. > So, I laid me down laterally and started thinking laterally. > The solution came to be sometime around my 3rd drink. > I consolidated my thoughts in bed. > When I woke this morning, I tested them out with a sample mdb using > English, French and German. All work beautifully. Add as many > languages as you want. > > The solution I have has the following benefits: > > Instantaneous > No variables > No Collections > No Classes (although the solution could be said to be upper class > No Arrays No Memory overheads Forms shown the language required > every time with no overheads. > Unlimited Languages > > Should I post the sample mdb to you? > > Max > Ps. Bet your intrigued - you will love this solution. > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Feb 23 09:08:56 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 23 Feb 2009 10:08:56 -0500 Subject: [AccessD] Classes and Events - Hosting the translation demo In-Reply-To: <49A23EDD.4050803@colbyconsulting.com> References: <49A23EDD.4050803@colbyconsulting.com> Message-ID: <49A2BC08.6020701@colbyconsulting.com> I am afraid I am not going to be much help in hosting files until my new web site comes up. In the past I could build new pages and links to files quickly and easily but after the DNN update the whole site is hosed. I am working with a new vendor to get a brand new DNN site up and when it is available I will let you know. Sorry for the inconvenience. John W. Colby www.ColbyConsulting.com jwcolby wrote: > I had hoped to put up the translation system demo database on my site however it seems that my site > is more thoroughly trashed than I had thought. I can't see ANYTHING from the DNN administrator user > which is where I would normally perform this function. Sigh. > > I will keep you apprised whether it is going to happen. I am currently backing up the content of my > site to my laptop here at my office so that I don't lose that. Then I will see if the Host user can > do this stuff (I think so). It won't happen tonight though. > From drawbridgej at sympatico.ca Mon Feb 23 10:06:49 2009 From: drawbridgej at sympatico.ca (Jack and Pat) Date: Mon, 23 Feb 2009 11:06:49 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited -NowTag is the Answer .. In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005><499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS><499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005><82745B5E88DE4DF2873544CB371BED1B@HAL9005><499ff7dc.0a04d00a.7b19.593f@mx.google.com><9348165EACB84473BF8DFF66D7F51274@HAL9005><49a02500.0508d00a.4eb0.ffffbe67@mx.google.com><49A03291.7040904@colbyconsulting.com><49a13f12.0707d00a.614b.ffff9abf@mx.google.com><33D6530042E143908666E07EF674A67C@HAL9005> Message-ID: <40F03C9A49104A2AB7A884098F887811@home6399619597> I'd like to second Jim's thought. Belonging to the list, even for those of us that don't have a whole bunch to contribute, is definitely an extremely valuable source of information. Just watching/reading some of the discussions or searching for that little obscure such and such provides other viewpoints, approaches and contexts that are so helpful. Jack -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman Sent: Monday, February 23, 2009 8:44 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -NowTag is the Answer Yes, a good solution and once again why this is such a great list; it represents a wide range of skills, viewpoints, and opinions. I think we've all learned over the years that there is no one size fits all approach, and as a result the value of belonging to this list is outstanding. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Sunday, February 22, 2009 5:10 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -NowTag is the Answer Another great approach! And I could probably write a piece of code that would update the tags from the language tables so I could keep the tables as an easy way to create and edit the translations. Now THAT has possibilities. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Sunday, February 22, 2009 4:03 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer Ha! That might be a good solution - why didn't I think of that! Something like: Label1.tag = "Good Morning+God morgen+Bonjour+Guten Morgen+??+?????? ????" The set a global var to position-indicate the substring with the + as the delimiter (change delimiter to whatever). IE, 0=English, 1=Danish, 2=French, 3=German, 4=Chinese, 5=Russian. When the form loads cycle through the label.type controls and set the caption equal to the substring pulled from the TAG. Minimal programming. Minimum overheads. No disk accessing. No bunch of stuff held in memory. Very fast (I would guess). Brilliant - Horses for courses, but this could well work! Now then JC - Just let me move to the other side of the room behind the sofa. OK, I am hiding and protected. You can reply now! Max Ps. Translations taken from http://www.omniglot.com/language/phrases/goodmorning.htm so don't beat me up! Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 21 February 2009 16:58 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Tell me you are not using the tag for each control. John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Mon Feb 23 10:15:38 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Mon, 23 Feb 2009 08:15:38 -0800 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <49a0a674.1701d00a.1bce.1568@mx.google.com> References: <49a0a674.1701d00a.1bce.1568@mx.google.com> Message-ID: And then when you made a change to the application, you would have to do it all again for each version and send each one (the right one) to the right client. That doesn't simplify life very much from where I stand, Max. Our applications aren't translated, although they adhere to regional formats, but we do have customized versions. Believe me, if we were to use translations, they would be in languages like Vietnamese, Chinese, Croation, French, Russian, and who knows what else. Since our clients are global, THEY would have to have multiple versions to send out to their users. No thanks, but thanks for asking. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Saturday, February 21, 2009 5:12 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Hi Gustav, Pub is now dry.. came home...ha! Well, if you are sending an MDE you would run the Translation Program then convert to an .MDE and then send it to client and then go back to pub - eh? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 21 February 2009 23:14 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Find First in an Array? - The Solution Hi Max and Rocky OK, that minor reason turned into a major; you will perform design changes of the forms which isn't possible in an mde. /gustav >>> Gustav at cactus.dk 21-02-2009 16:10 >>> Hi Max Very good! You have point here. It's a bit like Drew's suggestion but with a clever twist which I will leave for others to figure out (I have seen the sample db from Max). I can, however, think of one minor reason to not use your approach. Who said you don't get bright ideas while sleeping? /gustav >>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> Hello Rocky, Well, I have read with interest all the to-ing and fro-ing from the various contributors. So, I laid me down laterally and started thinking laterally. The solution came to be sometime around my 3rd drink. I consolidated my thoughts in bed. When I woke this morning, I tested them out with a sample mdb using English, French and German. All work beautifully. Add as many languages as you want. The solution I have has the following benefits: Instantaneous No variables No Collections No Classes (although the solution could be said to be upper class No Arrays No Memory overheads Forms shown the language required every time with no overheads. Unlimited Languages Should I post the sample mdb to you? Max Ps. Bet your intrigued - you will love this solution. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Mon Feb 23 10:22:52 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Mon, 23 Feb 2009 08:22:52 -0800 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <49A1792E.4090802@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg><49a14c9c.0a04d00a.0836.28b5@mx.google.com> <49A1792E.4090802@colbyconsulting.com> Message-ID: So add a Tags collection to the form? Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Sunday, February 22, 2009 8:11 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer A tag is NOT a collection,it is a property. Too bad it isn't a collection or it would be much more useful. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Oh no. That is not necessary Stuart. > > What I would do is write a little function which runs down the > language table and populates the contol.tag on the appropriate form > with the caption text plus a delimiter. > > You only have to do this ONCE and then ONLY again if you add a new > language (having added the values to the language table). > > Users can switch languages at will. All that is required is to change > the global variable to the new value to point into the .tag string. > Instantaneous resolution of the displayed text. Coding is minimal. > Even the loading code on initial setup is only a dozen or so lines. > > The caption.tag is an Access provided collection so why not make use of it. > No data access at run time. No need to open any tables etc. > The required caption is in the tag of the caption control, just display it. > > But, I am not decrying your just posted routine. I think it is very good. > Not as good as mine though (I just had an impartial show of hands in > the room and my solution won). Back to the pub. > > The more I think of it, the better this solution appears to me. > > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. > And always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan > Sent: 22 February 2009 12:46 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution > Revisited - Now Tag is the Answer > > Minimal programming until you add a new language - then it's a real > PITA - you have to edit every control on every form. > > :-( > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Feb 23 10:34:10 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 23 Feb 2009 11:34:10 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg><49a14c9c.0a04d00a.0836.28b5@mx.google.com> <49A1792E.4090802@colbyconsulting.com> Message-ID: <49A2D002.5030204@colbyconsulting.com> Eh? To my knowledge you can add custom properties to a form, but I don't remember being able to make that a collection. Even if you could you would be faced with adding it to EVERY form, and remembering to add it every time you added a new form. That is exactly the point of a clsFrm. You add it there and be done with it. Every form that uses clsFrm automatically gets that new thing. John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > So add a Tags collection to the form? > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Sunday, February 22, 2009 8:11 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited > - Now Tag is the Answer > > A tag is NOT a collection,it is a property. Too bad it isn't a > collection or it would be much more useful. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> Oh no. That is not necessary Stuart. >> >> What I would do is write a little function which runs down the >> language table and populates the contol.tag on the appropriate form >> with the caption text plus a delimiter. >> >> You only have to do this ONCE and then ONLY again if you add a new >> language (having added the values to the language table). >> >> Users can switch languages at will. All that is required is to change > >> the global variable to the new value to point into the .tag string. >> Instantaneous resolution of the displayed text. Coding is minimal. >> Even the loading code on initial setup is only a dozen or so lines. >> >> The caption.tag is an Access provided collection so why not make use > of it. >> No data access at run time. No need to open any tables etc. >> The required caption is in the tag of the caption control, just > display it. >> But, I am not decrying your just posted routine. I think it is very > good. >> Not as good as mine though (I just had an impartial show of hands in >> the room and my solution won). Back to the pub. >> >> The more I think of it, the better this solution appears to me. >> >> >> Max >> Laugh more than cry. Smile more than frown. Be generous in spirit. > >> And always stand your round in the pub! >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart >> McLachlan >> Sent: 22 February 2009 12:46 >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? - The Solution >> Revisited - Now Tag is the Answer >> >> Minimal programming until you add a new language - then it's a real >> PITA - you have to edit every control on every form. >> >> :-( >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From cfoust at infostatsystems.com Mon Feb 23 10:52:43 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Mon, 23 Feb 2009 08:52:43 -0800 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <49A2D002.5030204@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg><49a14c9c.0a04d00a.0836.28b5@mx.google.com> <49A1792E.4090802@colbyconsulting.com> <49A2D002.5030204@colbyconsulting.com> Message-ID: That was what I meant John. Of course you wouldn't add it directly to each form. Anything like that would be added to the class wrapping the form. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Monday, February 23, 2009 8:34 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer Eh? To my knowledge you can add custom properties to a form, but I don't remember being able to make that a collection. Even if you could you would be faced with adding it to EVERY form, and remembering to add it every time you added a new form. That is exactly the point of a clsFrm. You add it there and be done with it. Every form that uses clsFrm automatically gets that new thing. John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > So add a Tags collection to the form? > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Sunday, February 22, 2009 8:11 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution > Revisited > - Now Tag is the Answer > > A tag is NOT a collection,it is a property. Too bad it isn't a > collection or it would be much more useful. > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> Oh no. That is not necessary Stuart. >> >> What I would do is write a little function which runs down the >> language table and populates the contol.tag on the appropriate form >> with the caption text plus a delimiter. >> >> You only have to do this ONCE and then ONLY again if you add a new >> language (having added the values to the language table). >> >> Users can switch languages at will. All that is required is to >> change > >> the global variable to the new value to point into the .tag string. >> Instantaneous resolution of the displayed text. Coding is minimal. >> Even the loading code on initial setup is only a dozen or so lines. >> >> The caption.tag is an Access provided collection so why not make use > of it. >> No data access at run time. No need to open any tables etc. >> The required caption is in the tag of the caption control, just > display it. >> But, I am not decrying your just posted routine. I think it is very > good. >> Not as good as mine though (I just had an impartial show of hands in >> the room and my solution won). Back to the pub. >> >> The more I think of it, the better this solution appears to me. >> >> >> Max >> Laugh more than cry. Smile more than frown. Be generous in spirit. > >> And always stand your round in the pub! >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart >> McLachlan >> Sent: 22 February 2009 12:46 >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? - The Solution >> Revisited - Now Tag is the Answer >> >> Minimal programming until you add a new language - then it's a real >> PITA - you have to edit every control on every form. >> >> :-( >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Mon Feb 23 11:09:51 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Mon, 23 Feb 2009 09:09:51 -0800 Subject: [AccessD] OK versus Cancel Message-ID: <0A3101B60A15471295C8ACA87AAD50A4@HAL9005> Dear List: I have a client app which opens to a form displaying log in combo, password text box, a command button labeled OK and a command button labeled Cancel. The Cancel issues Application.Quit. The OK checks the password, and lets the user in of correct. After entering the password the focus shifted to the OK button. So far so good. Then the client wanted the user not to have to click OK after they entered the password - just go right to the switchboard if the password was correct. So I simply added Call cmdOK_Click to the After Update event of the password text box and walla! no need to click OK. But now if the user enters a correct password and clicks Cancel, the program still goes to the switchboard because of the After Update event call. I can't see a way in the After Update event to know that the user clicked Cancel. Screen.ActiveControl.Name still shows txtPassword. The After Update event is triggering before the Cancel click event apparently. Is there a way to know the user clicked Cancel? MTIA, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com From jwcolby at colbyconsulting.com Mon Feb 23 11:28:31 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 23 Feb 2009 12:28:31 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg><49a14c9c.0a04d00a.0836.28b5@mx.google.com> <49A1792E.4090802@colbyconsulting.com> <49A2D002.5030204@colbyconsulting.com> Message-ID: <49A2DCBF.4000809@colbyconsulting.com> OK. But the whole point of the tag goes away when you have a wrapper class. The purpose of a tag is to contain "anything" that the developer wants for that form. Once I have a wrapper class I can simply create new properties of the class, with strong typing, etc. If you have a class you no longer need a tag, never mind a whole collection of them. John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > That was what I meant John. Of course you wouldn't add it directly to > each form. Anything like that would be added to the class wrapping the > form. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Monday, February 23, 2009 8:34 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited > - Now Tag is the Answer > > Eh? > > To my knowledge you can add custom properties to a form, but I don't > remember being able to make that a collection. Even if you could you > would be faced with adding it to EVERY form, and remembering to add it > every time you added a new form. > > That is exactly the point of a clsFrm. You add it there and be done > with it. Every form that uses clsFrm automatically gets that new thing. > > John W. Colby > www.ColbyConsulting.com > > > Charlotte Foust wrote: >> So add a Tags collection to the form? >> >> Charlotte Foust From jwcolby at colbyconsulting.com Mon Feb 23 11:33:04 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 23 Feb 2009 12:33:04 -0500 Subject: [AccessD] OK versus Cancel In-Reply-To: <0A3101B60A15471295C8ACA87AAD50A4@HAL9005> References: <0A3101B60A15471295C8ACA87AAD50A4@HAL9005> Message-ID: <49A2DDD0.7060400@colbyconsulting.com> Checkout the Default property of the command button. One and only one button can have its default property set true. If true this button will be clicked when the user hits Enter anywhere on the form. Set the Default property of the OK button to true. Now if the user clicks Cancel, they did not hit Enter and the Cancel button click fires as you would expect. Remove the code that calls the cmdOK_Click from the after update of the text box. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Dear List: > > I have a client app which opens to a form displaying log in combo, password > text box, a command button labeled OK and a command button labeled Cancel. > > The Cancel issues Application.Quit. The OK checks the password, and lets > the user in of correct. > > After entering the password the focus shifted to the OK button. So far so > good. > > Then the client wanted the user not to have to click OK after they entered > the password - just go right to the switchboard if the password was correct. > So I simply added Call cmdOK_Click to the After Update event of the password > text box and walla! no need to click OK. > > But now if the user enters a correct password and clicks Cancel, the program > still goes to the switchboard because of the After Update event call. I > can't see a way in the After Update event to know that the user clicked > Cancel. Screen.ActiveControl.Name still shows txtPassword. The After > Update event is triggering before the Cancel click event apparently. > > Is there a way to know the user clicked Cancel? > > MTIA, > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > From Donald.A.McGillivray at sprint.com Mon Feb 23 11:38:42 2009 From: Donald.A.McGillivray at sprint.com (McGillivray, Don [IT]) Date: Mon, 23 Feb 2009 11:38:42 -0600 Subject: [AccessD] OK versus Cancel In-Reply-To: <0A3101B60A15471295C8ACA87AAD50A4@HAL9005> References: <0A3101B60A15471295C8ACA87AAD50A4@HAL9005> Message-ID: <59F4C79E0A20B74990A3775EF2388A89422CA9BE88@PDAWM03C.ad.sprint.com> I don't think I've EVER seen an application interface that behaves the way your client requests that this one should behave. (Which is not to say that past design ideas must be the basis for future ones.) If the choice to proceed or cancel is being given, then the user MUST choose one action or the other - either by clicking the button or by tabbing to it and pressing the carriage return. If the client doesn't wish to have a choice to bail out before logging in (which is essentially what s/he is saying by telling you to assume OK upon entering the PWD), then get rid of BOTH the OK and cancel buttons. Just be sure that it's understood that the point for a change of mind will be shifted from before login to after the app starts. Just my $0.02 . . . -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Monday, February 23, 2009 9:10 AM To: 'Access Developers discussion and problem solving' Subject: [AccessD] OK versus Cancel Dear List: I have a client app which opens to a form displaying log in combo, password text box, a command button labeled OK and a command button labeled Cancel. The Cancel issues Application.Quit. The OK checks the password, and lets the user in of correct. After entering the password the focus shifted to the OK button. So far so good. Then the client wanted the user not to have to click OK after they entered the password - just go right to the switchboard if the password was correct. So I simply added Call cmdOK_Click to the After Update event of the password text box and walla! no need to click OK. But now if the user enters a correct password and clicks Cancel, the program still goes to the switchboard because of the After Update event call. I can't see a way in the After Update event to know that the user clicked Cancel. Screen.ActiveControl.Name still shows txtPassword. The After Update event is triggering before the Cancel click event apparently. Is there a way to know the user clicked Cancel? MTIA, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com This e-mail may contain Sprint Nextel Company proprietary information intended for the sole use of the recipient(s). Any use by others is prohibited. If you are not the intended recipient, please contact the sender and delete all copies of the message. From rockysmolin at bchacc.com Mon Feb 23 11:50:08 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Mon, 23 Feb 2009 09:50:08 -0800 Subject: [AccessD] OK versus Cancel In-Reply-To: <49A2DDD0.7060400@colbyconsulting.com> References: <0A3101B60A15471295C8ACA87AAD50A4@HAL9005> <49A2DDD0.7060400@colbyconsulting.com> Message-ID: <22FDF92A6B96481AA2496B198E20CFE5@HAL9005> John: Thanks. Works perfectly. They hit enter and the switchboard comes up (if password is correct, of course). Enter correct password and click cancel and the app quits. Enter password and hit TAB, however, and the focus shifts to the OK button. Is there a way to finesse that? Elsie I guess if they use TAB, they'll just have to hit enter. Of course, I'll have to ask the client why, at this point, they even need an OK button. (Lateral, Max, lateral.) Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Monday, February 23, 2009 9:33 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OK versus Cancel Checkout the Default property of the command button. One and only one button can have its default property set true. If true this button will be clicked when the user hits Enter anywhere on the form. Set the Default property of the OK button to true. Now if the user clicks Cancel, they did not hit Enter and the Cancel button click fires as you would expect. Remove the code that calls the cmdOK_Click from the after update of the text box. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Dear List: > > I have a client app which opens to a form displaying log in combo, > password text box, a command button labeled OK and a command button labeled Cancel. > > The Cancel issues Application.Quit. The OK checks the password, and > lets the user in of correct. > > After entering the password the focus shifted to the OK button. So > far so good. > > Then the client wanted the user not to have to click OK after they > entered the password - just go right to the switchboard if the password was correct. > So I simply added Call cmdOK_Click to the After Update event of the > password text box and walla! no need to click OK. > > But now if the user enters a correct password and clicks Cancel, the > program still goes to the switchboard because of the After Update > event call. I can't see a way in the After Update event to know that > the user clicked Cancel. Screen.ActiveControl.Name still shows > txtPassword. The After Update event is triggering before the Cancel click event apparently. > > Is there a way to know the user clicked Cancel? > > MTIA, > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From davidmcafee at gmail.com Mon Feb 23 11:51:56 2009 From: davidmcafee at gmail.com (David McAfee) Date: Mon, 23 Feb 2009 09:51:56 -0800 Subject: [AccessD] OK versus Cancel In-Reply-To: <59F4C79E0A20B74990A3775EF2388A89422CA9BE88@PDAWM03C.ad.sprint.com> References: <0A3101B60A15471295C8ACA87AAD50A4@HAL9005> <59F4C79E0A20B74990A3775EF2388A89422CA9BE88@PDAWM03C.ad.sprint.com> Message-ID: <8786a4c00902230951g5aeb03b5g38eb1e913b96e8cc@mail.gmail.com> I usually set cmdCancel to not be a tabstop. My users know to to either type in a password and his tab then stop (two extra keystrokes) or hit enter twice (one to leave the pw field and the other for OK, since it is the next control with focus). I also had a similar request for an ADP and what I did there was to store and encrypted login and pw in a text/ini file. I would check the fOSuser name at start up and read the ini file. If the OSuser name and the last login name are the same, I log them in automatically. This only works with split databases, obviously. The only time they ever have to login is when an update is released. David On Mon, Feb 23, 2009 at 9:38 AM, McGillivray, Don [IT] wrote: > I don't think I've EVER seen an application interface that behaves the way your client requests that this one should behave. (Which is not to say that past design ideas must be the basis for future ones.) If the choice to proceed or cancel is being given, then the user MUST choose one action or the other - either by clicking the button or by tabbing to it and pressing the carriage return. > > If the client doesn't wish to have a choice to bail out before logging in (which is essentially what s/he is saying by telling you to assume OK upon entering the PWD), then get rid of BOTH the OK and cancel buttons. Just be sure that it's understood that the point for a change of mind will be shifted from before login to after the app starts. > > Just my $0.02 . . . > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software > Sent: Monday, February 23, 2009 9:10 AM > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] OK versus Cancel > > Dear List: > > I have a client app which opens to a form displaying log in combo, password > text box, a command button labeled OK and a command button labeled Cancel. > > The Cancel issues Application.Quit. The OK checks the password, and lets > the user in of correct. > > After entering the password the focus shifted to the OK button. So far so > good. > > Then the client wanted the user not to have to click OK after they entered > the password - just go right to the switchboard if the password was correct. > So I simply added Call cmdOK_Click to the After Update event of the password > text box and walla! no need to click OK. > > But now if the user enters a correct password and clicks Cancel, the program > still goes to the switchboard because of the After Update event call. I > can't see a way in the After Update event to know that the user clicked > Cancel. Screen.ActiveControl.Name still shows txtPassword. The After > Update event is triggering before the Cancel click event apparently. > > Is there a way to know the user clicked Cancel? > > MTIA, > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > > This e-mail may contain Sprint Nextel Company proprietary information intended for the sole use of the recipient(s). Any use by others is prohibited. If you are not the intended recipient, please contact the sender and delete all copies of the message. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From rockysmolin at bchacc.com Mon Feb 23 12:00:55 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Mon, 23 Feb 2009 10:00:55 -0800 Subject: [AccessD] OK versus Cancel In-Reply-To: <59F4C79E0A20B74990A3775EF2388A89422CA9BE88@PDAWM03C.ad.sprint.com> References: <0A3101B60A15471295C8ACA87AAD50A4@HAL9005> <59F4C79E0A20B74990A3775EF2388A89422CA9BE88@PDAWM03C.ad.sprint.com> Message-ID: Well, you're right Don - I'm looking at that OK button and wondering why we need it at all. But I just talked to the client and he says if the user enters a password they can click the OK button instead of hitting enter to TAB so leave it there. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of McGillivray, Don [IT] Sent: Monday, February 23, 2009 9:39 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] OK versus Cancel I don't think I've EVER seen an application interface that behaves the way your client requests that this one should behave. (Which is not to say that past design ideas must be the basis for future ones.) If the choice to proceed or cancel is being given, then the user MUST choose one action or the other - either by clicking the button or by tabbing to it and pressing the carriage return. If the client doesn't wish to have a choice to bail out before logging in (which is essentially what s/he is saying by telling you to assume OK upon entering the PWD), then get rid of BOTH the OK and cancel buttons. Just be sure that it's understood that the point for a change of mind will be shifted from before login to after the app starts. Just my $0.02 . . . -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Monday, February 23, 2009 9:10 AM To: 'Access Developers discussion and problem solving' Subject: [AccessD] OK versus Cancel Dear List: I have a client app which opens to a form displaying log in combo, password text box, a command button labeled OK and a command button labeled Cancel. The Cancel issues Application.Quit. The OK checks the password, and lets the user in of correct. After entering the password the focus shifted to the OK button. So far so good. Then the client wanted the user not to have to click OK after they entered the password - just go right to the switchboard if the password was correct. So I simply added Call cmdOK_Click to the After Update event of the password text box and walla! no need to click OK. But now if the user enters a correct password and clicks Cancel, the program still goes to the switchboard because of the After Update event call. I can't see a way in the After Update event to know that the user clicked Cancel. Screen.ActiveControl.Name still shows txtPassword. The After Update event is triggering before the Cancel click event apparently. Is there a way to know the user clicked Cancel? MTIA, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com This e-mail may contain Sprint Nextel Company proprietary information intended for the sole use of the recipient(s). Any use by others is prohibited. If you are not the intended recipient, please contact the sender and delete all copies of the message. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Mon Feb 23 13:57:42 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Mon, 23 Feb 2009 19:57:42 -0000 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <95332F6ED8CA4C5CA5D95687C6607153@HAL9005> References: <49a0a674.1701d00a.1bce.1568@mx.google.com><8E2FCA4F8F244B47B1E1C321CC80C357@HAL9005><49a12910.0707d00a.614b.735a@mx.google.com><29AD9DF93B024FB1B76E3806D044E940@HAL9005><49a1d0c5.1701d00a.17b7.17d9@mx.google.com><9B6866CE2B6144F8AF4BB22BBF36953C@jislaptopdev> <08881A88BCC548649C2141319132ACB5@XPS> <49a2acf8.01ac420a.3d29.ffff8932@mx.google.com> <95332F6ED8CA4C5CA5D95687C6607153@HAL9005> Message-ID: <49a2ffda.0508d00a.58a0.fffff8a6@mx.google.com> This one max.wanadoo at gmail.com Can you also include 1xform any one will do, but the "busier" the better, ie as many controls as possible that need the language converting. If that is too much work, then don't bother. See what people do for you - popular or what? Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 23 February 2009 14:10 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution What's the best email address? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Monday, February 23, 2009 6:05 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Me too Rocky, Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 23 February 2009 13:54 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution I can do that. What's the best address? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman Sent: Monday, February 23, 2009 5:50 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution If someone can send me the language tables off list, I'll take the time to do the seek approach just for the heck of it and then we really can do an apples to apples comparison. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Sunday, February 22, 2009 5:44 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution ...can't speak for Rocky but I've got three good solutions and two sample mdbs, all of which work ...hard to beat that! ...thanks all :) William -------------------------------------------------- From: "Max Wanadoo" Sent: Sunday, February 22, 2009 5:25 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Find First in an Array? - The Solution > Rocky, > > My last direct posting to you via the mdb addresses all the concerns > in your last three posting which have just hit my in-box. > It does use the caption.tag to store the language strings but when I > get some time I will see about appending a user.property to the form. > I think that is doable so you don't need to have to use the .tag. > > But anyway, the last version allows for instant swapping between > languages in a flash. No need to create different versions for > different language clients. One version now fits all. It also has > code to create all the language strings from the language table - you > don't have to type any thing in - just run the code. > > I would also recommend the options from John, Stuart etc which all > have advantages. > > Have a look. Sorry about the diminishing market but in the UK I think > it is starting to pick up again so hopefully that will happen in the > US. > > Take care. > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. > And always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 22 February 2009 22:08 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > I'm flexible. I'm bending over for these people right now. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Sunday, February 22, 2009 2:30 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Further to my last posting, Rocky. > > I suppose you could also give the evaluators the one you currently > have where the form get updated each time based on the language > selected and tell the potential clients that a language specific > option is available with improved form rendering. Then when the order > (as they will surely do) give them the translated mde copy, > Flexibility is the keyword here, I think. > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. > And always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 22 February 2009 08:47 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Another complication - evaluators can be requested from the web site. > I suppose I could ask for the language as part of the request. I'd > have to allow them to ask for multiple copies - different languages in > case French speaking management wanted to evaluate it as well as the > Chinese workers in the factory. IOW, the customer may not know for > sure which language they want. > > Plus I'd have to maintain currently 5 versions of the program - one > for each language. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Saturday, February 21, 2009 5:12 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hi Gustav, > Pub is now dry.. came home...ha! > Well, if you are sending an MDE you would run the Translation Program > then convert to an .MDE and then send it to client and then go back to > pub - eh? > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav > Brock > Sent: 21 February 2009 23:14 > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hi Max and Rocky > > OK, that minor reason turned into a major; you will perform design > changes of the forms which isn't possible in an mde. > > /gustav > >>>> Gustav at cactus.dk 21-02-2009 16:10 >>> > Hi Max > > Very good! You have point here. > It's a bit like Drew's suggestion but with a clever twist which I will > leave for others to figure out (I have seen the sample db from Max). > > I can, however, think of one minor reason to not use your approach. > > Who said you don't get bright ideas while sleeping? > > /gustav > >>>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> > Hello Rocky, > Well, I have read with interest all the to-ing and fro-ing from the > various contributors. > So, I laid me down laterally and started thinking laterally. > The solution came to be sometime around my 3rd drink. > I consolidated my thoughts in bed. > When I woke this morning, I tested them out with a sample mdb using > English, French and German. All work beautifully. Add as many > languages as you want. > > The solution I have has the following benefits: > > Instantaneous > No variables > No Collections > No Classes (although the solution could be said to be upper class > No Arrays No Memory overheads Forms shown the language required > every time with no overheads. > Unlimited Languages > > Should I post the sample mdb to you? > > Max > Ps. Bet your intrigued - you will love this solution. > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Mon Feb 23 14:54:31 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Mon, 23 Feb 2009 12:54:31 -0800 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <49a2ffda.0508d00a.58a0.fffff8a6@mx.google.com> References: <49a0a674.1701d00a.1bce.1568@mx.google.com><8E2FCA4F8F244B47B1E1C321CC80C357@HAL9005><49a12910.0707d00a.614b.735a@mx.google.com><29AD9DF93B024FB1B76E3806D044E940@HAL9005><49a1d0c5.1701d00a.17b7.17d9@mx.google.com><9B6866CE2B6144F8AF4BB22BBF36953C@jislaptopdev> <08881A88BCC548649C2141319132ACB5@XPS> <49a2acf8.01ac420a.3d29.ffff8932@mx.google.com><95332F6ED8CA4C5CA5D95687C6607153@HAL9005> <49a2ffda.0508d00a.58a0.fffff8a6@mx.google.com> Message-ID: <0A84369DF61E4C44AC494E29D37F2EF7@HAL9005> Done. Easy. I still had the zip file I sent to JC. Let me know if it doesn't get there in good order. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Monday, February 23, 2009 11:58 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution This one max.wanadoo at gmail.com Can you also include 1xform any one will do, but the "busier" the better, ie as many controls as possible that need the language converting. If that is too much work, then don't bother. See what people do for you - popular or what? Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 23 February 2009 14:10 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution What's the best email address? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Monday, February 23, 2009 6:05 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Me too Rocky, Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 23 February 2009 13:54 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution I can do that. What's the best address? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman Sent: Monday, February 23, 2009 5:50 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution If someone can send me the language tables off list, I'll take the time to do the seek approach just for the heck of it and then we really can do an apples to apples comparison. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Sunday, February 22, 2009 5:44 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution ...can't speak for Rocky but I've got three good solutions and two sample mdbs, all of which work ...hard to beat that! ...thanks all :) William -------------------------------------------------- From: "Max Wanadoo" Sent: Sunday, February 22, 2009 5:25 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Find First in an Array? - The Solution > Rocky, > > My last direct posting to you via the mdb addresses all the concerns > in your last three posting which have just hit my in-box. > It does use the caption.tag to store the language strings but when I > get some time I will see about appending a user.property to the form. > I think that is doable so you don't need to have to use the .tag. > > But anyway, the last version allows for instant swapping between > languages in a flash. No need to create different versions for > different language clients. One version now fits all. It also has > code to create all the language strings from the language table - you > don't have to type any thing in - just run the code. > > I would also recommend the options from John, Stuart etc which all > have advantages. > > Have a look. Sorry about the diminishing market but in the UK I think > it is starting to pick up again so hopefully that will happen in the > US. > > Take care. > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. > And always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 22 February 2009 22:08 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > I'm flexible. I'm bending over for these people right now. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Sunday, February 22, 2009 2:30 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Further to my last posting, Rocky. > > I suppose you could also give the evaluators the one you currently > have where the form get updated each time based on the language > selected and tell the potential clients that a language specific > option is available with improved form rendering. Then when the order > (as they will surely do) give them the translated mde copy, > Flexibility is the keyword here, I think. > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. > And always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: 22 February 2009 08:47 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Another complication - evaluators can be requested from the web site. > I suppose I could ask for the language as part of the request. I'd > have to allow them to ask for multiple copies - different languages in > case French speaking management wanted to evaluate it as well as the > Chinese workers in the factory. IOW, the customer may not know for > sure which language they want. > > Plus I'd have to maintain currently 5 versions of the program - one > for each language. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Saturday, February 21, 2009 5:12 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hi Gustav, > Pub is now dry.. came home...ha! > Well, if you are sending an MDE you would run the Translation Program > then convert to an .MDE and then send it to client and then go back to > pub - eh? > Max > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav > Brock > Sent: 21 February 2009 23:14 > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Hi Max and Rocky > > OK, that minor reason turned into a major; you will perform design > changes of the forms which isn't possible in an mde. > > /gustav > >>>> Gustav at cactus.dk 21-02-2009 16:10 >>> > Hi Max > > Very good! You have point here. > It's a bit like Drew's suggestion but with a clever twist which I will > leave for others to figure out (I have seen the sample db from Max). > > I can, however, think of one minor reason to not use your approach. > > Who said you don't get bright ideas while sleeping? > > /gustav > >>>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> > Hello Rocky, > Well, I have read with interest all the to-ing and fro-ing from the > various contributors. > So, I laid me down laterally and started thinking laterally. > The solution came to be sometime around my 3rd drink. > I consolidated my thoughts in bed. > When I woke this morning, I tested them out with a sample mdb using > English, French and German. All work beautifully. Add as many > languages as you want. > > The solution I have has the following benefits: > > Instantaneous > No variables > No Collections > No Classes (although the solution could be said to be upper class > No Arrays No Memory overheads Forms shown the language required > every time with no overheads. > Unlimited Languages > > Should I post the sample mdb to you? > > Max > Ps. Bet your intrigued - you will love this solution. > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From tinanfields at torchlake.com Mon Feb 23 16:52:10 2009 From: tinanfields at torchlake.com (Tina Norris Fields) Date: Mon, 23 Feb 2009 17:52:10 -0500 Subject: [AccessD] Classes and Events - EVENTS NOT REQUIRED In-Reply-To: <4991B478.1060501@colbyconsulting.com> References: <4991B478.1060501@colbyconsulting.com> Message-ID: <49A3289A.1040604@torchlake.com> John, My question is why is StartTimer() a Sub and EndTimer() a Function? It is not clear to me what the distinction is between a Sub and a Function - they both look like "methods" or "functions" as found in Java. So, please explain that difference to me. Thanks. Tina jwcolby wrote: > To this point the classes we have looked at were specifically designed to allow you to ?wrap? an > object that generates events and add code and variables to process those events. This lecture will > demonstrate that classes have other uses and do not have to wrap other objects. > > The class introduced today will be clsTimer, a means of timing events (things happening) in your > code. The class is perhaps the simplest class I have ever written, and perhaps the simplest class > you will ever see. > > ? Click Insert / Class > ? Save immediately as clsTimer > ? Insert the following code into the class: > > Private Declare Function apiGetTime Lib "winmm.dll" _ > Alias "timeGetTime" () As Long > > Private lngStartTime As Long > > Private Sub Class_Initialize() > StartTimer > End Sub > > Function EndTimer() > EndTimer = apiGetTime() - lngStartTime > End Function > > Sub StartTimer() > lngStartTime = apiGetTime() > End Sub > > ? Compile and save the class. > > Notice that in the header of the class we have a function definition apiGetTime that calls out to > Windows. This function gets the windows tick timer and has a resolution of 1 millisecond, or one > thousandth of a second. This simply means that we can?t time anything that takes less than one > thousandth of a second without resorting to timing it several times. It returns a long integer that > is simply an absolute number of ?ticks?. Since when? It doesn?t matter, it is just ?this is the > tick count RIGHT NOW?. > > To compute a ?time? (and we aren?t really doing that, we are calculating a time since the first > time), you get the tick count and store it, then later you get another tick and compare it to the > first tick. The difference is the number of 1000ths of a second since the first tick count. > > Notice that we have no mInit() method in this class. Notice also that the Class_Initialize calls > the StartTimer() function. As you know now, the Class_Initialize is a class event that fires as the > class loads, so this tells the class to load the first tick time as soon as the class instance loads. > > In the header of the class we dimensioned a long variable lngStartTime. This will be used to store > the starting tick count. StartTimer() simply calls out to Windows, gets the current tick count from > Windows, and stores that count to lngStartTime. > > EndTimer() simply calls out to Windows again to get the current tick count, subtracts the current > count to the previous count stored in lngStartTime and returns that count to you the programmer. > > That?s it folks! This class has in the header a function definition to call Windows and a place to > store the count. In the body of the class it then has two methods to start the ?timer? and to > return the ticks since the timer started. You are not going to see many classes simpler than that. > > So let?s discuss why we need to encapsulate this in a class. You might be saying that you can do > the same thing without the class but a class allows you to create as many of these timers as you > want. Let?s build some test code to see how this thing works and why we might need several. > > ? In the tools menu click Insert / MODULE. We are building a normal module this time, NOT a class > module. > ? Immediately save the module as basTimerTest > ? Into this new module insert the following code: > > Function TmrTest() > Dim lngCtr1 As Long > Dim lngCtr2 As Long > Dim clsTmr1 As clsTimer > Dim clsTmr2 As clsTimer > > Set clsTmr1 = New clsTimer > For lngCtr1 = 1 To 5 > Set clsTmr2 = New clsTimer > For lngCtr2 = 1 To 100000 > Pi > Next lngCtr2 > Debug.Print clsTmr2.EndTimer > Next lngCtr1 > Debug.Print clsTmr1.EndTimer > End Function > > Function Pi() As Double > Dim dblPi As Double > dblPi = 4 * Atn(1) > Pi = dblPi > End Function > > Notice that we dim two timers, then we SET the timers on the outside of their respective loops. As > you know, the SET statement loads the class, at which point the Class_Initialize fires which grabs > the first timer tick from windows. > > The Debug.Print statement simply calls the .EndTimer method of the class and prints it to the debug > window. > > Voila, a timer, with a resolution of one thousandth of a second. > > TmrTest simulates a real world code where you have two loops, and inner loop and an outer loop. > > The inner loop times how long it takes to calculate Pi. Notice that modern computers are so fast > that I have to do it a hundred thousand times in order to get enough ?tick counts? (thousandths of a > second) to even get a number to use. The outer loop simply times how long it takes to run the inner > loop 5 times. > > I have intentionally kept this thing simple, but your outer loop might time how long it takes to > read a thousand records and the inner loop might be replaced with timing how long it takes to ? > transform a string from comma delimited to pipe delimited or something like that. > > In this lecture we have demonstrated that a class encapsulates all of the code required to perform > its function, plus the variables required to store its data. It also demonstrates that you can use > as many instances of the class as you need. If you need one or a hundred timers, you just dim and > SET the variables and you are off to the races so to speak. > > Classes are used to encapsulate code and data required to implement a system. You?re your > imagination is the only limit to what that system can be. > > From cfoust at infostatsystems.com Mon Feb 23 17:16:33 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Mon, 23 Feb 2009 15:16:33 -0800 Subject: [AccessD] Classes and Events - EVENTS NOT REQUIRED In-Reply-To: <49A3289A.1040604@torchlake.com> References: <4991B478.1060501@colbyconsulting.com> <49A3289A.1040604@torchlake.com> Message-ID: EndTimer has to be a function to return the elapsed time. StartTimer doesn't need to return a value. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Tina Norris Fields Sent: Monday, February 23, 2009 2:52 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Classes and Events - EVENTS NOT REQUIRED John, My question is why is StartTimer() a Sub and EndTimer() a Function? It is not clear to me what the distinction is between a Sub and a Function - they both look like "methods" or "functions" as found in Java. So, please explain that difference to me. Thanks. Tina jwcolby wrote: > To this point the classes we have looked at were specifically designed > to allow you to "wrap" an object that generates events and add code > and variables to process those events. This lecture will demonstrate that classes have other uses and do not have to wrap other objects. > > The class introduced today will be clsTimer, a means of timing events > (things happening) in your code. The class is perhaps the simplest > class I have ever written, and perhaps the simplest class you will ever see. > > * Click Insert / Class > * Save immediately as clsTimer > * Insert the following code into the class: > > Private Declare Function apiGetTime Lib "winmm.dll" _ > Alias "timeGetTime" () As Long > > Private lngStartTime As Long > > Private Sub Class_Initialize() > StartTimer > End Sub > > Function EndTimer() > EndTimer = apiGetTime() - lngStartTime End Function > > Sub StartTimer() > lngStartTime = apiGetTime() > End Sub > > * Compile and save the class. > > Notice that in the header of the class we have a function definition > apiGetTime that calls out to Windows. This function gets the windows > tick timer and has a resolution of 1 millisecond, or one thousandth of > a second. This simply means that we can't time anything that takes > less than one thousandth of a second without resorting to timing it > several times. It returns a long integer that is simply an absolute number of "ticks". Since when? It doesn't matter, it is just "this is the tick count RIGHT NOW". > > To compute a "time" (and we aren't really doing that, we are > calculating a time since the first time), you get the tick count and > store it, then later you get another tick and compare it to the first tick. The difference is the number of 1000ths of a second since the first tick count. > > Notice that we have no mInit() method in this class. Notice also that > the Class_Initialize calls the StartTimer() function. As you know > now, the Class_Initialize is a class event that fires as the class loads, so this tells the class to load the first tick time as soon as the class instance loads. > > In the header of the class we dimensioned a long variable > lngStartTime. This will be used to store the starting tick count. > StartTimer() simply calls out to Windows, gets the current tick count from Windows, and stores that count to lngStartTime. > > EndTimer() simply calls out to Windows again to get the current tick > count, subtracts the current count to the previous count stored in lngStartTime and returns that count to you the programmer. > > That's it folks! This class has in the header a function definition > to call Windows and a place to store the count. In the body of the > class it then has two methods to start the "timer" and to return the ticks since the timer started. You are not going to see many classes simpler than that. > > So let's discuss why we need to encapsulate this in a class. You > might be saying that you can do the same thing without the class but a > class allows you to create as many of these timers as you want. Let's build some test code to see how this thing works and why we might need several. > > * In the tools menu click Insert / MODULE. We are building a normal module this time, NOT a class > module. > * Immediately save the module as basTimerTest > * Into this new module insert the following code: > > Function TmrTest() > Dim lngCtr1 As Long > Dim lngCtr2 As Long > Dim clsTmr1 As clsTimer > Dim clsTmr2 As clsTimer > > Set clsTmr1 = New clsTimer > For lngCtr1 = 1 To 5 > Set clsTmr2 = New clsTimer > For lngCtr2 = 1 To 100000 > Pi > Next lngCtr2 > Debug.Print clsTmr2.EndTimer > Next lngCtr1 > Debug.Print clsTmr1.EndTimer > End Function > > Function Pi() As Double > Dim dblPi As Double > dblPi = 4 * Atn(1) > Pi = dblPi > End Function > > Notice that we dim two timers, then we SET the timers on the outside > of their respective loops. As you know, the SET statement loads the > class, at which point the Class_Initialize fires which grabs the first timer tick from windows. > > The Debug.Print statement simply calls the .EndTimer method of the > class and prints it to the debug window. > > Voila, a timer, with a resolution of one thousandth of a second. > > TmrTest simulates a real world code where you have two loops, and inner loop and an outer loop. > > The inner loop times how long it takes to calculate Pi. Notice that > modern computers are so fast that I have to do it a hundred thousand > times in order to get enough "tick counts" (thousandths of a > second) to even get a number to use. The outer loop simply times how > long it takes to run the inner loop 5 times. > > I have intentionally kept this thing simple, but your outer loop might > time how long it takes to read a thousand records and the inner loop > might be replaced with timing how long it takes to ... transform a string from comma delimited to pipe delimited or something like that. > > In this lecture we have demonstrated that a class encapsulates all of > the code required to perform its function, plus the variables required > to store its data. It also demonstrates that you can use as many > instances of the class as you need. If you need one or a hundred timers, you just dim and SET the variables and you are off to the races so to speak. > > Classes are used to encapsulate code and data required to implement a > system. You're your imagination is the only limit to what that system can be. > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From tinanfields at torchlake.com Mon Feb 23 17:21:10 2009 From: tinanfields at torchlake.com (Tina Norris Fields) Date: Mon, 23 Feb 2009 18:21:10 -0500 Subject: [AccessD] A Design Opinion, Please In-Reply-To: <1B4605E2455A416F8686C716823DBAEA@jislaptopdev> References: <49A095E0.1080304@torchlake.com><49A1891B.3060602@torchlake.com> <1B4605E2455A416F8686C716823DBAEA@jislaptopdev> Message-ID: <49A32F66.1050002@torchlake.com> Thank you, William. Tina William Hindman wrote: > http://www.mvps.org/access/lookupfields.htm > > William > > -------------------------------------------------- > From: "Tina Norris Fields" > Sent: Sunday, February 22, 2009 12:19 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] A Design Opinion, Please > > >> Thanks to William, Susan, and Dan for your replies. >> >> The setup is, indeed, that the outside sales people need to know who the >> primary sales person is. In fact, the outside sales people's data entry >> form shows a textbox for the primary sales person. That is a field in >> the underlying table. The main data entry form, not accessible to the >> outside sales people, does not have the textbox for that field, which is >> why the information has not been getting into the table. I am adding >> that information to the main data entry form. To make certain that the >> correct code is selected for the primary salesperson, I want to use a >> combobox for the selection. I thought I would put a combobox on the >> form to select the correct salesperson and have that store the >> information in the appropriate field in the table. Then I thought maybe >> I would modify the table and make that field a lookup field which would >> make the selection on the form very easy. >> >> Noodling over which choice would be the better, I turned to you all. >> William, you said you learned the hard way never to set a lookup field >> in a table. Please tell me why - that sounds like just exactly the >> lesson I need. >> >> Tina >> >> William Hindman wrote: >> >>> ...I learned the hard way never to set a lookup in a table field :( >>> >>> William >>> >>> -------------------------------------------------- >>> From: "Tina Norris Fields" >>> Sent: Saturday, February 21, 2009 7:01 PM >>> To: "Access Developers discussion and problem solving" >>> >>> Subject: [AccessD] A Design Opinion, Please >>> >>> >>> >>>> Hi All, >>>> >>>> On a data entry form, where a choice should be made to identify the >>>> sales staff person primarily responsible for a particular customer, >>>> which of these methods is better and why? >>>> >>>> Method 1 - set the sales staff field in the table to be a lookup field >>>> Method 2 - place a combobox on the form that looks up the sales staff >>>> and then updates the field in the table. >>>> >>>> This is a remodeling job. The outside sales people need to know who the >>>> lead sales staff person is on any given customer. However, at present >>>> the main data entry form does not indicate that information. I'll be >>>> making this change, and I got to thinking about which approach would be >>>> the wiser of the two. >>>> >>>> Thanks for your opinions. >>>> >>>> Tina >>>> -- >>>> AccessD mailing list >>>> AccessD at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>> Website: http://www.databaseadvisors.com >>>> >>>> >>>> >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> > > From stuart at lexacorp.com.pg Mon Feb 23 17:21:12 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Tue, 24 Feb 2009 09:21:12 +1000 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <49a2ffda.0508d00a.58a0.fffff8a6@mx.google.com> References: , <95332F6ED8CA4C5CA5D95687C6607153@HAL9005>, <49a2ffda.0508d00a.58a0.fffff8a6@mx.google.com> Message-ID: <49A3BC08.19624.2E2F40D@stuart.lexacorp.com.pg> I've played around with Max's solution a bit. Here is the *total* code required (apart from Max's existing code to update Tags which is only run when changes are made to the languages table) A single line inserted in each Form's on_open event: GetLanguageCaptions Me A simple seven line function placed somewhere in a standard module (actually five lines if you make it a single line If...... statement): Public Function GetLanguageCaptions(frm As Form) Dim ctl As Control, lng As Long lng = DLookup("ChosenLanguage", "tblSysInfo") - 1 For Each ctl In frm.Controls If ctl.ControlType = acLabel And Len(ctl.Tag) > 1 Then ctl.Caption = Split(ctl.Tag, "+")(lng) End If Next ctl End Function That's all folks! Cheers, Stuart On 23 Feb 2009 at 19:57, Max Wanadoo wrote: > This one max.wanadoo at gmail.com > Can you also include 1xform any one will do, but the "busier" the better, ie > as many controls as possible that need the language converting. If that is > too much work, then don't bother. > > See what people do for you - popular or what? > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: 23 February 2009 14:10 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > What's the best email address? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Monday, February 23, 2009 6:05 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > Me too Rocky, > > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: 23 February 2009 13:54 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > I can do that. What's the best address? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman > Sent: Monday, February 23, 2009 5:50 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > > > > If someone can send me the language tables off list, I'll take the time to > do the seek approach just for the heck of it and then we really can do an > apples to apples comparison. > > Jim. > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman > Sent: Sunday, February 22, 2009 5:44 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution > > ...can't speak for Rocky but I've got three good solutions and two sample > mdbs, all of which work ...hard to beat that! > ...thanks all :) > > William > > -------------------------------------------------- > From: "Max Wanadoo" > Sent: Sunday, February 22, 2009 5:25 PM > To: "'Access Developers discussion and problem solving'" > > Subject: Re: [AccessD] Find First in an Array? - The Solution > > > Rocky, > > > > My last direct posting to you via the mdb addresses all the concerns > > in your last three posting which have just hit my in-box. > > It does use the caption.tag to store the language strings but when I > > get some time I will see about appending a user.property to the form. > > I think that is doable so you don't need to have to use the .tag. > > > > But anyway, the last version allows for instant swapping between > > languages in a flash. No need to create different versions for > > different language clients. One version now fits all. It also has > > code to create all the language strings from the language table - you > > don't have to type any thing in - just run the code. > > > > I would also recommend the options from John, Stuart etc which all > > have advantages. > > > > Have a look. Sorry about the diminishing market but in the UK I think > > it is starting to pick up again so hopefully that will happen in the > > US. > > > > Take care. > > > > Max > > Laugh more than cry. Smile more than frown. Be generous in spirit. > > And always stand your round in the pub! > > > > > > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > > Smolin at Beach Access Software > > Sent: 22 February 2009 22:08 > > To: 'Access Developers discussion and problem solving' > > Subject: Re: [AccessD] Find First in an Array? - The Solution > > > > I'm flexible. I'm bending over for these people right now. > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > > Sent: Sunday, February 22, 2009 2:30 AM > > To: 'Access Developers discussion and problem solving' > > Subject: Re: [AccessD] Find First in an Array? - The Solution > > > > Further to my last posting, Rocky. > > > > I suppose you could also give the evaluators the one you currently > > have where the form get updated each time based on the language > > selected and tell the potential clients that a language specific > > option is available with improved form rendering. Then when the order > > (as they will surely do) give them the translated mde copy, > > Flexibility is the keyword here, I think. > > > > Max > > Laugh more than cry. Smile more than frown. Be generous in spirit. > > And always stand your round in the pub! > > > > > > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > > Smolin at Beach Access Software > > Sent: 22 February 2009 08:47 > > To: 'Access Developers discussion and problem solving' > > Subject: Re: [AccessD] Find First in an Array? - The Solution > > > > Another complication - evaluators can be requested from the web site. > > I suppose I could ask for the language as part of the request. I'd > > have to allow them to ask for multiple copies - different languages in > > case French speaking management wanted to evaluate it as well as the > > Chinese workers in the factory. IOW, the customer may not know for > > sure which language they want. > > > > Plus I'd have to maintain currently 5 versions of the program - one > > for each language. > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > > Sent: Saturday, February 21, 2009 5:12 PM > > To: 'Access Developers discussion and problem solving' > > Subject: Re: [AccessD] Find First in an Array? - The Solution > > > > Hi Gustav, > > Pub is now dry.. came home...ha! > > Well, if you are sending an MDE you would run the Translation Program > > then convert to an .MDE and then send it to client and then go back to > > pub - eh? > > Max > > > > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav > > Brock > > Sent: 21 February 2009 23:14 > > To: accessd at databaseadvisors.com > > Subject: Re: [AccessD] Find First in an Array? - The Solution > > > > Hi Max and Rocky > > > > OK, that minor reason turned into a major; you will perform design > > changes of the forms which isn't possible in an mde. > > > > /gustav > > > >>>> Gustav at cactus.dk 21-02-2009 16:10 >>> > > Hi Max > > > > Very good! You have point here. > > It's a bit like Drew's suggestion but with a clever twist which I will > > leave for others to figure out (I have seen the sample db from Max). > > > > I can, however, think of one minor reason to not use your approach. > > > > Who said you don't get bright ideas while sleeping? > > > > /gustav > > > >>>> max.wanadoo at gmail.com 21-02-2009 13:47 >>> > > Hello Rocky, > > Well, I have read with interest all the to-ing and fro-ing from the > > various contributors. > > So, I laid me down laterally and started thinking laterally. > > The solution came to be sometime around my 3rd drink. > > I consolidated my thoughts in bed. > > When I woke this morning, I tested them out with a sample mdb using > > English, French and German. All work beautifully. Add as many > > languages as you want. > > > > The solution I have has the following benefits: > > > > Instantaneous > > No variables > > No Collections > > No Classes (although the solution could be said to be upper class > > No Arrays No Memory overheads Forms shown the language required > > every time with no overheads. > > Unlimited Languages > > > > Should I post the sample mdb to you? > > > > Max > > Ps. Bet your intrigued - you will love this solution. > > > > > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Mon Feb 23 17:42:34 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Tue, 24 Feb 2009 09:42:34 +1000 Subject: [AccessD] Classes and Events - EVENTS NOT REQUIRED In-Reply-To: References: <4991B478.1060501@colbyconsulting.com>, <49A3289A.1040604@torchlake.com>, Message-ID: <49A3C10A.7489.2F686BB@stuart.lexacorp.com.pg> That's the theory. In practice Functions do not *need* to return a value, you can replace "Sub" with "Function" anywhere you like, but you can only replace "Function" with "Sub" if there is no return value. I tend to use "Function" all the time, the only "Sub"s you'll see in my apps are the built in events in Forms etc. It's also good practice to "type" Functions which do return a value, otherwise you have the overhead of converting from/to variants - it also makes it clear whether a Function does in fact return a value. Here it would be preferable to use: "Function EndTimer() As Long" -- Stuart On 23 Feb 2009 at 15:16, Charlotte Foust wrote: > EndTimer has to be a function to return the elapsed time. StartTimer > doesn't need to return a value. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Tina Norris > Fields > Sent: Monday, February 23, 2009 2:52 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Classes and Events - EVENTS NOT REQUIRED > > John, > > My question is why is StartTimer() a Sub and EndTimer() a Function? It > is not clear to me what the distinction is between a Sub and a Function > - they both look like "methods" or "functions" as found in Java. So, > please explain that difference to me. Thanks. > > Tina > > jwcolby wrote: > > To this point the classes we have looked at were specifically designed > > > to allow you to "wrap" an object that generates events and add code > > and variables to process those events. This lecture will demonstrate > that classes have other uses and do not have to wrap other objects. > > > > The class introduced today will be clsTimer, a means of timing events > > (things happening) in your code. The class is perhaps the simplest > > class I have ever written, and perhaps the simplest class you will > ever see. > > > > * Click Insert / Class > > * Save immediately as clsTimer > > * Insert the following code into the class: > > > > Private Declare Function apiGetTime Lib "winmm.dll" _ > > Alias "timeGetTime" () As Long > > > > Private lngStartTime As Long > > > > Private Sub Class_Initialize() > > StartTimer > > End Sub > > > > Function EndTimer() > > EndTimer = apiGetTime() - lngStartTime End Function > > > > Sub StartTimer() > > lngStartTime = apiGetTime() > > End Sub > > > > * Compile and save the class. > > > > Notice that in the header of the class we have a function definition > > apiGetTime that calls out to Windows. This function gets the windows > > tick timer and has a resolution of 1 millisecond, or one thousandth of > > > a second. This simply means that we can't time anything that takes > > less than one thousandth of a second without resorting to timing it > > several times. It returns a long integer that is simply an absolute > number of "ticks". Since when? It doesn't matter, it is just "this is > the tick count RIGHT NOW". > > > > To compute a "time" (and we aren't really doing that, we are > > calculating a time since the first time), you get the tick count and > > store it, then later you get another tick and compare it to the first > tick. The difference is the number of 1000ths of a second since the > first tick count. > > > > Notice that we have no mInit() method in this class. Notice also that > > > the Class_Initialize calls the StartTimer() function. As you know > > now, the Class_Initialize is a class event that fires as the class > loads, so this tells the class to load the first tick time as soon as > the class instance loads. > > > > In the header of the class we dimensioned a long variable > > lngStartTime. This will be used to store the starting tick count. > > StartTimer() simply calls out to Windows, gets the current tick count > from Windows, and stores that count to lngStartTime. > > > > EndTimer() simply calls out to Windows again to get the current tick > > count, subtracts the current count to the previous count stored in > lngStartTime and returns that count to you the programmer. > > > > That's it folks! This class has in the header a function definition > > to call Windows and a place to store the count. In the body of the > > class it then has two methods to start the "timer" and to return the > ticks since the timer started. You are not going to see many classes > simpler than that. > > > > So let's discuss why we need to encapsulate this in a class. You > > might be saying that you can do the same thing without the class but a > > > class allows you to create as many of these timers as you want. Let's > build some test code to see how this thing works and why we might need > several. > > > > * In the tools menu click Insert / MODULE. We are building a > normal module this time, NOT a class > > module. > > * Immediately save the module as basTimerTest > > * Into this new module insert the following code: > > > > Function TmrTest() > > Dim lngCtr1 As Long > > Dim lngCtr2 As Long > > Dim clsTmr1 As clsTimer > > Dim clsTmr2 As clsTimer > > > > Set clsTmr1 = New clsTimer > > For lngCtr1 = 1 To 5 > > Set clsTmr2 = New clsTimer > > For lngCtr2 = 1 To 100000 > > Pi > > Next lngCtr2 > > Debug.Print clsTmr2.EndTimer > > Next lngCtr1 > > Debug.Print clsTmr1.EndTimer > > End Function > > > > Function Pi() As Double > > Dim dblPi As Double > > dblPi = 4 * Atn(1) > > Pi = dblPi > > End Function > > > > Notice that we dim two timers, then we SET the timers on the outside > > of their respective loops. As you know, the SET statement loads the > > class, at which point the Class_Initialize fires which grabs the first > timer tick from windows. > > > > The Debug.Print statement simply calls the .EndTimer method of the > > class and prints it to the debug window. > > > > Voila, a timer, with a resolution of one thousandth of a second. > > > > TmrTest simulates a real world code where you have two loops, and > inner loop and an outer loop. > > > > The inner loop times how long it takes to calculate Pi. Notice that > > modern computers are so fast that I have to do it a hundred thousand > > times in order to get enough "tick counts" (thousandths of a > > second) to even get a number to use. The outer loop simply times how > > long it takes to run the inner loop 5 times. > > > > I have intentionally kept this thing simple, but your outer loop might > > > time how long it takes to read a thousand records and the inner loop > > might be replaced with timing how long it takes to ... transform a > string from comma delimited to pipe delimited or something like that. > > > > In this lecture we have demonstrated that a class encapsulates all of > > the code required to perform its function, plus the variables required > > > to store its data. It also demonstrates that you can use as many > > instances of the class as you need. If you need one or a hundred > timers, you just dim and SET the variables and you are off to the races > so to speak. > > > > Classes are used to encapsulate code and data required to implement a > > system. You're your imagination is the only limit to what that system > can be. > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Mon Feb 23 18:14:52 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Mon, 23 Feb 2009 16:14:52 -0800 Subject: [AccessD] Classes and Events - EVENTS NOT REQUIRED In-Reply-To: <49A3C10A.7489.2F686BB@stuart.lexacorp.com.pg> References: <4991B478.1060501@colbyconsulting.com>, <49A3289A.1040604@torchlake.com>, <49A3C10A.7489.2F686BB@stuart.lexacorp.com.pg> Message-ID: I didn't say functions HAD to return a value, just that you had to have a function in order to return the value in this case. Actually, using ByRef for arguments passed into a sub allows you to get values back too, but it isn't as tidy. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Monday, February 23, 2009 3:43 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Classes and Events - EVENTS NOT REQUIRED That's the theory. In practice Functions do not *need* to return a value, you can replace "Sub" with "Function" anywhere you like, but you can only replace "Function" with "Sub" if there is no return value. I tend to use "Function" all the time, the only "Sub"s you'll see in my apps are the built in events in Forms etc. It's also good practice to "type" Functions which do return a value, otherwise you have the overhead of converting from/to variants - it also makes it clear whether a Function does in fact return a value. Here it would be preferable to use: "Function EndTimer() As Long" -- Stuart On 23 Feb 2009 at 15:16, Charlotte Foust wrote: > EndTimer has to be a function to return the elapsed time. StartTimer > doesn't need to return a value. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Tina Norris > Fields > Sent: Monday, February 23, 2009 2:52 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Classes and Events - EVENTS NOT REQUIRED > > John, > > My question is why is StartTimer() a Sub and EndTimer() a Function? > It is not clear to me what the distinction is between a Sub and a > Function > - they both look like "methods" or "functions" as found in Java. So, > please explain that difference to me. Thanks. > > Tina > > jwcolby wrote: > > To this point the classes we have looked at were specifically > > designed > > > to allow you to "wrap" an object that generates events and add code > > and variables to process those events. This lecture will > > demonstrate > that classes have other uses and do not have to wrap other objects. > > > > The class introduced today will be clsTimer, a means of timing > > events (things happening) in your code. The class is perhaps the > > simplest class I have ever written, and perhaps the simplest class > > you will > ever see. > > > > * Click Insert / Class > > * Save immediately as clsTimer > > * Insert the following code into the class: > > > > Private Declare Function apiGetTime Lib "winmm.dll" _ > > Alias "timeGetTime" () As Long > > > > Private lngStartTime As Long > > > > Private Sub Class_Initialize() > > StartTimer > > End Sub > > > > Function EndTimer() > > EndTimer = apiGetTime() - lngStartTime End Function > > > > Sub StartTimer() > > lngStartTime = apiGetTime() > > End Sub > > > > * Compile and save the class. > > > > Notice that in the header of the class we have a function definition > > apiGetTime that calls out to Windows. This function gets the > > windows tick timer and has a resolution of 1 millisecond, or one > > thousandth of > > > a second. This simply means that we can't time anything that takes > > less than one thousandth of a second without resorting to timing it > > several times. It returns a long integer that is simply an absolute > number of "ticks". Since when? It doesn't matter, it is just "this > is the tick count RIGHT NOW". > > > > To compute a "time" (and we aren't really doing that, we are > > calculating a time since the first time), you get the tick count and > > store it, then later you get another tick and compare it to the > > first > tick. The difference is the number of 1000ths of a second since the > first tick count. > > > > Notice that we have no mInit() method in this class. Notice also > > that > > > the Class_Initialize calls the StartTimer() function. As you know > > now, the Class_Initialize is a class event that fires as the class > loads, so this tells the class to load the first tick time as soon as > the class instance loads. > > > > In the header of the class we dimensioned a long variable > > lngStartTime. This will be used to store the starting tick count. > > StartTimer() simply calls out to Windows, gets the current tick > > count > from Windows, and stores that count to lngStartTime. > > > > EndTimer() simply calls out to Windows again to get the current tick > > count, subtracts the current count to the previous count stored in > lngStartTime and returns that count to you the programmer. > > > > That's it folks! This class has in the header a function definition > > to call Windows and a place to store the count. In the body of the > > class it then has two methods to start the "timer" and to return the > ticks since the timer started. You are not going to see many classes > simpler than that. > > > > So let's discuss why we need to encapsulate this in a class. You > > might be saying that you can do the same thing without the class but > > a > > > class allows you to create as many of these timers as you want. > > Let's > build some test code to see how this thing works and why we might need > several. > > > > * In the tools menu click Insert / MODULE. We are building a > normal module this time, NOT a class > > module. > > * Immediately save the module as basTimerTest > > * Into this new module insert the following code: > > > > Function TmrTest() > > Dim lngCtr1 As Long > > Dim lngCtr2 As Long > > Dim clsTmr1 As clsTimer > > Dim clsTmr2 As clsTimer > > > > Set clsTmr1 = New clsTimer > > For lngCtr1 = 1 To 5 > > Set clsTmr2 = New clsTimer > > For lngCtr2 = 1 To 100000 > > Pi > > Next lngCtr2 > > Debug.Print clsTmr2.EndTimer > > Next lngCtr1 > > Debug.Print clsTmr1.EndTimer > > End Function > > > > Function Pi() As Double > > Dim dblPi As Double > > dblPi = 4 * Atn(1) > > Pi = dblPi > > End Function > > > > Notice that we dim two timers, then we SET the timers on the outside > > of their respective loops. As you know, the SET statement loads the > > class, at which point the Class_Initialize fires which grabs the > > first > timer tick from windows. > > > > The Debug.Print statement simply calls the .EndTimer method of the > > class and prints it to the debug window. > > > > Voila, a timer, with a resolution of one thousandth of a second. > > > > TmrTest simulates a real world code where you have two loops, and > inner loop and an outer loop. > > > > The inner loop times how long it takes to calculate Pi. Notice that > > modern computers are so fast that I have to do it a hundred thousand > > times in order to get enough "tick counts" (thousandths of a > > second) to even get a number to use. The outer loop simply times > > how long it takes to run the inner loop 5 times. > > > > I have intentionally kept this thing simple, but your outer loop > > might > > > time how long it takes to read a thousand records and the inner loop > > might be replaced with timing how long it takes to ... transform a > string from comma delimited to pipe delimited or something like that. > > > > In this lecture we have demonstrated that a class encapsulates all > > of the code required to perform its function, plus the variables > > required > > > to store its data. It also demonstrates that you can use as many > > instances of the class as you need. If you need one or a hundred > timers, you just dim and SET the variables and you are off to the > races so to speak. > > > > Classes are used to encapsulate code and data required to implement > > a system. You're your imagination is the only limit to what that > > system > can be. > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Mon Feb 23 19:38:14 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Mon, 23 Feb 2009 20:38:14 -0500 Subject: [AccessD] Classes and Events - EVENTS NOT REQUIRED In-Reply-To: <49A3C10A.7489.2F686BB@stuart.lexacorp.com.pg> References: <4991B478.1060501@colbyconsulting.com>, <49A3289A.1040604@torchlake.com>, <49A3C10A.7489.2F686BB@stuart.lexacorp.com.pg> Message-ID: <49A34F86.9050307@colbyconsulting.com> Exactly and exactly. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > That's the theory. In practice Functions do not *need* to return a value, you can replace > "Sub" with "Function" anywhere you like, but you can only replace "Function" with "Sub" if > there is no return value. > > I tend to use "Function" all the time, the only "Sub"s you'll see in my apps are the built in > events in Forms etc. > > It's also good practice to "type" Functions which do return a value, otherwise you have the > overhead of converting from/to variants - it also makes it clear whether a Function does in > fact return a value. Here it would be preferable to use: "Function EndTimer() As Long" > From darren at activebilling.com.au Tue Feb 24 00:10:31 2009 From: darren at activebilling.com.au (Darren D) Date: Tue, 24 Feb 2009 17:10:31 +1100 Subject: [AccessD] OLEDB Connection In-Reply-To: <7E02B06E41E5404589EDDDA2BAA1C5A83ECA20@sanex101.nciinc.com> References: <7E02B06E41E5404589EDDDA2BAA1C5A83ECA20@sanex101.nciinc.com> Message-ID: <007701c99646$9b5c14b0$131b910a@denzilnote> Hi Jim Sample sent off list Darren -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Hewson, Jim Sent: Saturday, 21 February 2009 8:05 AM To: Access Developers discussion and problem solving Subject: [AccessD] OLEDB Connection How do you connect to SQL Server from Access using OLEDB? I've used ODBC using a DSN but I don't have any idea how to use OLEDB. I did some research on the issue, but all I found was the connection string but nothing that told me what to do with it. Where do I put it? Is it better than using a DSN? Are there any maintenance issues when deploying to multiple machines on a LAN? Many Thanks in advance. Jim ################################################################################ If you have received this message in error, please contact the sender immediately and be aware that the use, copying, or dissemination of this information is prohibited. This email transmission contains information from NCI Information Systems, Inc. that may be considered privileged or confidential and is intended solely for the named recipient. ################################################################################ -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Tue Feb 24 02:44:35 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 24 Feb 2009 08:44:35 -0000 Subject: [AccessD] Classes and Events - EVENTS NOT REQUIRED In-Reply-To: <49A34F86.9050307@colbyconsulting.com> References: <4991B478.1060501@colbyconsulting.com>, <49A3289A.1040604@torchlake.com>, <49A3C10A.7489.2F686BB@stuart.lexacorp.com.pg> <49A34F86.9050307@colbyconsulting.com> Message-ID: <49a3b37e.0508d00a.15d3.28cc@mx.google.com> True, but I think it is bad coding, stuart. A function returns a value. A command carries out an action A function in VBA is a function (!) Calling it a function indicates in itself that a value is required. A sub in VBA is a command. Calling it a sub indicates that it is going to do something and then finish. Those who remember back to Ashton Tate and DB, FoxPRo etc will know what I mean! My 2p worth Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 24 February 2009 01:38 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Classes and Events - EVENTS NOT REQUIRED Exactly and exactly. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > That's the theory. In practice Functions do not *need* to return a value, you can replace > "Sub" with "Function" anywhere you like, but you can only replace "Function" with "Sub" if > there is no return value. > > I tend to use "Function" all the time, the only "Sub"s you'll see in my apps are the built in > events in Forms etc. > > It's also good practice to "type" Functions which do return a value, otherwise you have the > overhead of converting from/to variants - it also makes it clear whether a Function does in > fact return a value. Here it would be preferable to use: "Function EndTimer() As Long" > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Tue Feb 24 03:45:13 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 24 Feb 2009 10:45:13 +0100 Subject: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOT REQUIRED) Message-ID: Hi Charlotte Not tidy? In some cases this feature is very useful. Here is a simple example of sub returning multiple values: Public Sub CompositeRGB( _ ByVal lngRGB As Long, _ ByRef intRed As Integer, _ ByRef intGreen As Integer, _ ByRef intBlue As Integer) ' Calculate discrete RGB colours from composite colour Value. ' ' 1999-08-20. Cactus Data ApS, CPH If lngRGB < 0 Then ' Nothing to do. intRed = 0 intGreen = 0 intBlue = 0 Else ' Dissolve composite RGB into discrete colours. intRed = lngRGB And vbRed intGreen = (lngRGB And vbGreen) / &H100 intBlue = (lngRGB And vbBlue) / &H10000 End If Debug.Print intRed, intGreen, intBlue End Sub The only reason I see to not write a sub when a return value is not needed, is if the (sub)function will be used in a macro as these can't call subfunctions. /gustav >>> cfoust at infostatsystems.com 24-02-2009 01:14 >>> I didn't say functions HAD to return a value, just that you had to have a function in order to return the value in this case. Actually, using ByRef for arguments passed into a sub allows you to get values back too, but it isn't as tidy. Charlotte Foust From stuart at lexacorp.com.pg Tue Feb 24 03:58:27 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Tue, 24 Feb 2009 19:58:27 +1000 Subject: [AccessD] Classes and Events - EVENTS NOT REQUIRED In-Reply-To: <49a3b37e.0508d00a.15d3.28cc@mx.google.com> References: <4991B478.1060501@colbyconsulting.com>, <49A34F86.9050307@colbyconsulting.com>, <49a3b37e.0508d00a.15d3.28cc@mx.google.com> Message-ID: <49A45163.21195.1048357@stuart.lexacorp.com.pg> Guess it depends on what other languages you are used to Many languages don't differentiate. A Basic SUB is the equivalent of a "Void Function" in many languages. IMNSHO, It's really a matter of personal preference rather than "best practice" Cheers, Stuart On 24 Feb 2009 at 8:44, Max Wanadoo wrote: > True, but I think it is bad coding, stuart. > > A function returns a value. > A command carries out an action > > A function in VBA is a function (!) Calling it a function indicates in > itself that a value is required. > A sub in VBA is a command. Calling it a sub indicates that it is going to > do something and then finish. > > Those who remember back to Ashton Tate and DB, FoxPRo etc will know what I > mean! > > My 2p worth > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 24 February 2009 01:38 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Classes and Events - EVENTS NOT REQUIRED > > Exactly and exactly. > > John W. Colby > www.ColbyConsulting.com > > > Stuart McLachlan wrote: > > That's the theory. In practice Functions do not *need* to return a value, > you can replace > > "Sub" with "Function" anywhere you like, but you can only replace > "Function" with "Sub" if > > there is no return value. > > > > I tend to use "Function" all the time, the only "Sub"s you'll see in my > apps are the built in > > events in Forms etc. > > > > It's also good practice to "type" Functions which do return a value, > otherwise you have the > > overhead of converting from/to variants - it also makes it clear whether a > Function does in > > fact return a value. Here it would be preferable to use: "Function > EndTimer() As Long" > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Tue Feb 24 04:02:39 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Tue, 24 Feb 2009 20:02:39 +1000 Subject: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOT REQUIRED) In-Reply-To: References: Message-ID: <49A4525F.6996.1085C76@stuart.lexacorp.com.pg> Good point. I often use an Autoexec macro which calls a Startup() function which doesn't return a value. Stuart On 24 Feb 2009 at 10:45, Gustav Brock wrote: > The only reason I see to not write a sub when a return value is not > needed, is if the (sub)function will be used in a macro as these can't > call subfunctions. > > /gustav > From stuart at lexacorp.com.pg Tue Feb 24 06:14:53 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Tue, 24 Feb 2009 22:14:53 +1000 Subject: [AccessD] A Design Opinion, Please In-Reply-To: <49A1891B.3060602@torchlake.com> References: <49A095E0.1080304@torchlake.com>, , <49A1891B.3060602@torchlake.com> Message-ID: <49A4715D.31942.1816D98@stuart.lexacorp.com.pg> I've just been bitten by Lookup fields in a table. I've got an old application, originally written in Access 97 and subsequently upgraded to Ak2. Using A2K3, I was trying to clean out all of the data to set up a new clean version. Every time I tried to open one particular table to delete the records, Access froze solid. I finally opened the table in Design view and found that a couple of fields had lookups defined. Once I removed the lookups and saved the table, I could open it and delete the data. Cheers, Stuart On 22 Feb 2009 at 12:19, Tina Norris Fields wrote: > William, you said you learned the hard way never to set a lookup field > in a table. Please tell me why - that sounds like just exactly the > lesson I need. From jwcolby at colbyconsulting.com Tue Feb 24 06:38:22 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 24 Feb 2009 07:38:22 -0500 Subject: [AccessD] A Design Opinion, Please In-Reply-To: <49A4715D.31942.1816D98@stuart.lexacorp.com.pg> References: <49A095E0.1080304@torchlake.com>, , <49A1891B.3060602@torchlake.com> <49A4715D.31942.1816D98@stuart.lexacorp.com.pg> Message-ID: <49A3EA3E.6030307@colbyconsulting.com> They are definitely a mixed blessing. On the one hand they automatically design combo boxes for you as you drag and drop a FK out onto a form. Thus they can make said combo consistent throughout your application, including sort fields and orders. Likewise you can see the FK text values in a query without pulling in the FK table and specifically using that text field. OTOH it is now difficult to see the actual PK values of that FK table without specifically including the table in the query. And if the FK table ever goes away or changes field names the application starts to break. I think they are of more use to the neophyte and more a pain to the experienced developer. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > I've just been bitten by Lookup fields in a table. > > I've got an old application, originally written in Access 97 and subsequently > upgraded to Ak2. > > Using A2K3, I was trying to clean out all of the data to set up a new clean > version. Every time I tried to open one particular table to delete the > records, Access froze solid. > > I finally opened the table in Design view and found that a couple of fields > had lookups defined. Once I removed the lookups and saved the table, I > could open it and delete the data. > > Cheers, > Stuart > > On 22 Feb 2009 at 12:19, Tina Norris Fields wrote: > >> William, you said you learned the hard way never to set a lookup field >> in a table. Please tell me why - that sounds like just exactly the >> lesson I need. > From Gustav at cactus.dk Tue Feb 24 06:38:07 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 24 Feb 2009 13:38:07 +0100 Subject: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOT REQUIRED) Message-ID: Hi Stuart Well, it will always return "something", if for nothing else an empty Variant ... though that is supposed to be slightly less than Nothing - which hardly is anything - so right you are: No value. /gustav >>> stuart at lexacorp.com.pg 24-02-2009 11:02 >>> Good point. I often use an Autoexec macro which calls a Startup() function which doesn't return a value. Stuart On 24 Feb 2009 at 10:45, Gustav Brock wrote: > The only reason I see to not write a sub when a return value is not > needed, is if the (sub)function will be used in a macro as these can't > call subfunctions. > > /gustav From Gustav at cactus.dk Tue Feb 24 07:07:27 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 24 Feb 2009 14:07:27 +0100 Subject: [AccessD] A Design Opinion, Please Message-ID: Hi John, Stuart et al Can't see a purpose for them at the table level. However, I've found one area where they can be smart and provide a quick tool: In a query. This way you can design - for example for some admin application - some select queries to view in data table view where the IDs are hidden and you have nice combo- or listboxes for the lookup fields. Very easy and at zero code and no forms. /gustav >>> jwcolby at colbyconsulting.com 24-02-2009 13:38 >>> They are definitely a mixed blessing. On the one hand they automatically design combo boxes for you as you drag and drop a FK out onto a form. Thus they can make said combo consistent throughout your application, including sort fields and orders. Likewise you can see the FK text values in a query without pulling in the FK table and specifically using that text field. OTOH it is now difficult to see the actual PK values of that FK table without specifically including the table in the query. And if the FK table ever goes away or changes field names the application starts to break. I think they are of more use to the neophyte and more a pain to the experienced developer. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > I've just been bitten by Lookup fields in a table. > > I've got an old application, originally written in Access 97 and subsequently > upgraded to Ak2. > > Using A2K3, I was trying to clean out all of the data to set up a new clean > version. Every time I tried to open one particular table to delete the > records, Access froze solid. > > I finally opened the table in Design view and found that a couple of fields > had lookups defined. Once I removed the lookups and saved the table, I > could open it and delete the data. > > Cheers, > Stuart > > On 22 Feb 2009 at 12:19, Tina Norris Fields wrote: > >> William, you said you learned the hard way never to set a lookup field >> in a table. Please tell me why - that sounds like just exactly the >> lesson I need. From tinanfields at torchlake.com Tue Feb 24 07:24:35 2009 From: tinanfields at torchlake.com (Tina Norris Fields) Date: Tue, 24 Feb 2009 08:24:35 -0500 Subject: [AccessD] Classes and Events - EVENTS NOT REQUIRED In-Reply-To: <49A45163.21195.1048357@stuart.lexacorp.com.pg> References: <4991B478.1060501@colbyconsulting.com>, <49A34F86.9050307@colbyconsulting.com>, <49a3b37e.0508d00a.15d3.28cc@mx.google.com> <49A45163.21195.1048357@stuart.lexacorp.com.pg> Message-ID: <49A3F513.9020906@torchlake.com> Thank you to all who responded. The comparison to the "void" function makes it clear to me. Tina Stuart McLachlan wrote: > Guess it depends on what other languages you are used to > Many languages don't differentiate. > > A Basic SUB is the equivalent of a "Void Function" in many languages. > > IMNSHO, It's really a matter of personal preference rather than "best > practice" > > > Cheers, > Stuart > > On 24 Feb 2009 at 8:44, Max Wanadoo wrote: > > >> True, but I think it is bad coding, stuart. >> >> A function returns a value. >> A command carries out an action >> >> A function in VBA is a function (!) Calling it a function indicates in >> itself that a value is required. >> A sub in VBA is a command. Calling it a sub indicates that it is going to >> do something and then finish. >> >> Those who remember back to Ashton Tate and DB, FoxPRo etc will know what I >> mean! >> >> My 2p worth >> >> Max >> Laugh more than cry. Smile more than frown. Be generous in spirit. And >> always stand your round in the pub! >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: 24 February 2009 01:38 >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Classes and Events - EVENTS NOT REQUIRED >> >> Exactly and exactly. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Stuart McLachlan wrote: >> >>> That's the theory. In practice Functions do not *need* to return a value, >>> >> you can replace >> >>> "Sub" with "Function" anywhere you like, but you can only replace >>> >> "Function" with "Sub" if >> >>> there is no return value. >>> >>> I tend to use "Function" all the time, the only "Sub"s you'll see in my >>> >> apps are the built in >> >>> events in Forms etc. >>> >>> It's also good practice to "type" Functions which do return a value, >>> >> otherwise you have the >> >>> overhead of converting from/to variants - it also makes it clear whether a >>> >> Function does in >> >>> fact return a value. Here it would be preferable to use: "Function >>> >> EndTimer() As Long" >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > > From stuart at lexacorp.com.pg Tue Feb 24 07:26:55 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Tue, 24 Feb 2009 23:26:55 +1000 Subject: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOT REQUIRED) In-Reply-To: References: Message-ID: <49A4823F.2576.1C35F67@stuart.lexacorp.com.pg> Now we are getting philosophical :-) "If a tree falls in a forest and no one is around to hear it, does it make a sound?" Answer?? "Sound is vibration, transmitted to our senses through the mechanism of the ear, and recognized as sound only at our nerve centers. The falling of the tree or any other disturbance will produce vibration of the air. If there be no ears to hear, there will be no sound." x= myFunction() demonstrably returns an Empty Variant does "Call myFunction()" *return* anything? If so, where to? Cheers, Stuart (aka Bishop Berkely) > Well, it will always return "something", if for nothing else an empty > Variant ... though that is supposed to be slightly less than Nothing - > which hardly is anything - so right you are: No value. > > /gustav > > >>> stuart at lexacorp.com.pg 24-02-2009 11:02 >>> > Good point. I often use an Autoexec macro which calls a Startup() > function which doesn't return a value. > > Stuart > > On 24 Feb 2009 at 10:45, Gustav Brock wrote: > > > The only reason I see to not write a sub when a return value is not > > needed, is if the (sub)function will be used in a macro as these can't > > call subfunctions. > > > > /gustav > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Tue Feb 24 07:29:25 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Tue, 24 Feb 2009 23:29:25 +1000 Subject: [AccessD] A Design Opinion, Please In-Reply-To: References: Message-ID: <49A482D5.9615.1C5A8C5@stuart.lexacorp.com.pg> The only problem with that approach is that you can't sort/filter the data on the lookup fields properly. -- Stuart On 24 Feb 2009 at 14:07, Gustav Brock wrote: > Hi John, Stuart et al > > Can't see a purpose for them at the table level. > > However, I've found one area where they can be smart and provide a > quick tool: In a query. This way you can design - for example for some > admin application - some select queries to view in data table view > where the IDs are hidden and you have nice combo- or listboxes for the > lookup fields. Very easy and at zero code and no forms. > > /gustav > > > >>> jwcolby at colbyconsulting.com 24-02-2009 13:38 >>> > They are definitely a mixed blessing. On the one hand they automatically design combo boxes for you > as you drag and drop a FK out onto a form. Thus they can make said combo consistent throughout your > application, including sort fields and orders. > > Likewise you can see the FK text values in a query without pulling in the FK table and specifically > using that text field. > > OTOH it is now difficult to see the actual PK values of that FK table without specifically including > the table in the query. And if the FK table ever goes away or changes field names the application > starts to break. > > I think they are of more use to the neophyte and more a pain to the experienced developer. > > John W. Colby > www.ColbyConsulting.com > > > Stuart McLachlan wrote: > > I've just been bitten by Lookup fields in a table. > > > > I've got an old application, originally written in Access 97 and subsequently > > upgraded to Ak2. > > > > Using A2K3, I was trying to clean out all of the data to set up a new clean > > version. Every time I tried to open one particular table to delete the > > records, Access froze solid. > > > > I finally opened the table in Design view and found that a couple of fields > > had lookups defined. Once I removed the lookups and saved the table, I > > could open it and delete the data. > > > > Cheers, > > Stuart > > > > On 22 Feb 2009 at 12:19, Tina Norris Fields wrote: > > > >> William, you said you learned the hard way never to set a lookup field > >> in a table. Please tell me why - that sounds like just exactly the > >> lesson I need. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Feb 24 07:46:35 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 24 Feb 2009 08:46:35 -0500 Subject: [AccessD] Classes and Events - Where are classes initialized and stored? Message-ID: <49A3FA3B.4020400@colbyconsulting.com> There might be some confusion about where classes get initialized, and where the pointer to a class instance is stored. We use classes for many different purposes so the answer to this question doesn't have a single answer. Let's take some examples. We discussed the fact that classes model objects, and sometimes multiple classes are used together to model systems of objects. In one case we looked at clsMsg, which is both an object and a system. The object being modeled is an email message. The system being modeled is a messaging system. In the case of clsMsg, we created an initialization module where we stored a pointer to a single instance of the message class. In this same module we then created an Init, Term and a function to get a pointer to the base object - the clsMsg instance. As you can see, in this case there is only one instance of the message class, and so we initialized it somewhere that any other module could see and use it, in an "initialization module". Notice that once loaded, as long as the APPLICATION is loaded the clsMsg instance will remain loaded. The APPLICATION is tasked with closing the instance when it closes. We also looked at other instances where the base class was not a public class instance used by everyone, but rather a private instance used by only one other object. As an example the clsFrm that I designed is a base class. It is instantiated once for each and every form that uses clsFrm. This class might very well have 0 (no forms open) or 1, 10 or 40 instances loaded at any given time. Each form opened will load its own instance of clsFrm, so if you have a form with a tab with 8 subforms, then you already have 9 instances of clsFrm. Leave that form open and open a second form, also with a tab with 5 subforms, and you now have an additional six instances of clsFrm loaded. In this case, the class instance is dimensioned in the header of the form's "code behind form" class, and held open in the form's class. As long as a given form is loaded, its instance of clsFrm is open, and when that form closes, it destroys its clsFrm instance. As you can see from the examples, classes are loaded on demand by the objects that need them. WHERE the pointer to the class instance is initialized and stored depends on the function of the class. If a (child) class is used by another (parent) class, and the instance of that child class is used only by the parent class, then the child class is instantiated and stored inside of the parent class, usually but not always in the class header. Think about the clsTimer that we discussed. It will be instantiated inside of the function where you are trying to time something. But again, it is used ONLY by that code, and is instantiated, used and destroyed inside of that function. To summarize, if a class instance is going to be used by multiple other objects, the class instance has to be initialized and stored in a location where all of those other objects can get at it. If a class instance is going to be used only by a single parent object, then it is usually instantiated, stored and destroyed inside of that parent object. From jwcolby at colbyconsulting.com Tue Feb 24 08:09:54 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 24 Feb 2009 09:09:54 -0500 Subject: [AccessD] Function vs Sub In-Reply-To: <49A4823F.2576.1C35F67@stuart.lexacorp.com.pg> References: <49A4823F.2576.1C35F67@stuart.lexacorp.com.pg> Message-ID: <49A3FFB2.6020905@colbyconsulting.com> Yes, but "return anything" has an overhead implication. At the machine code level, a function has a storage location somewhere that is set to something when the function returns. The code has to explicitly set the value of the function return location to something. So MAYBE that "return value location" is being manipulated, even though when that "something" is "returned" to the caller, it is not being placed into a set of ears. If you explicitly set the return value of the function inside of the function then it definitely WILL manipulate that return value location. As an example, you might cause a function to return an error code, even though in some cases the caller never checks for errors. To be honest though, computers are so fast that worrying about that overhead doesn't make it onto my radar. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > Now we are getting philosophical :-) > > "If a tree falls in a forest and no one is around to hear it, does it make a sound?" > > Answer?? > "Sound is vibration, transmitted to our senses through the mechanism of the ear, and > recognized as sound only at our nerve centers. The falling of the tree or any other > disturbance will produce vibration of the air. If there be no ears to hear, there will be no > sound." > > x= myFunction() demonstrably returns an Empty Variant > > does "Call myFunction()" *return* anything? If so, where to? > > Cheers, > Stuart (aka Bishop Berkely) > > >> Well, it will always return "something", if for nothing else an empty >> Variant ... though that is supposed to be slightly less than Nothing - >> which hardly is anything - so right you are: No value. >> >> /gustav >> >>>>> stuart at lexacorp.com.pg 24-02-2009 11:02 >>> >> Good point. I often use an Autoexec macro which calls a Startup() >> function which doesn't return a value. >> >> Stuart >> >> On 24 Feb 2009 at 10:45, Gustav Brock wrote: >> >>> The only reason I see to not write a sub when a return value is not >>> needed, is if the (sub)function will be used in a macro as these can't >>> call subfunctions. >>> >>> /gustav >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com > > From Gustav at cactus.dk Tue Feb 24 08:38:12 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 24 Feb 2009 15:38:12 +0100 Subject: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOT REQUIRED) Message-ID: Hi Stuart That's a nice old story. However, it fails because it defines sound as being dependant on both a transmitter and a receiver. A sound transmitter (speaker, siren etc.) will continue to produce sound even if a receiver is not there; in that case the sound energy is absorbed by the air surrounding it or ultimately by the surroundings and turns into heat. That tells further, that no _air_, no sound. So no transmitting media, no sound. Thus everything in outer space is silent, which is why all the roaring and noise from the spaceships in Starwars is nonsense. But who cares. One Silent Movie is enough! /gustav >>> stuart at lexacorp.com.pg 24-02-2009 14:26 >>> Now we are getting philosophical :-) "If a tree falls in a forest and no one is around to hear it, does it make a sound?" Answer?? "Sound is vibration, transmitted to our senses through the mechanism of the ear, and recognized as sound only at our nerve centers. The falling of the tree or any other disturbance will produce vibration of the air. If there be no ears to hear, there will be no sound." x= myFunction() demonstrably returns an Empty Variant does "Call myFunction()" *return* anything? If so, where to? Cheers, Stuart (aka Bishop Berkely) > Well, it will always return "something", if for nothing else an empty > Variant ... though that is supposed to be slightly less than Nothing - > which hardly is anything - so right you are: No value. > > /gustav > > >>> stuart at lexacorp.com.pg 24-02-2009 11:02 >>> > Good point. I often use an Autoexec macro which calls a Startup() > function which doesn't return a value. > > Stuart > > On 24 Feb 2009 at 10:45, Gustav Brock wrote: > > > The only reason I see to not write a sub when a return value is not > > needed, is if the (sub)function will be used in a macro as these can't > > call subfunctions. > > > > /gustav From Gustav at cactus.dk Tue Feb 24 08:40:00 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 24 Feb 2009 15:40:00 +0100 Subject: [AccessD] A Design Opinion, Please Message-ID: Hi Stuart OK, thanks for the warning. In my case I had nothing to sort, just some users and properties to add or change. /gustav >>> stuart at lexacorp.com.pg 24-02-2009 14:29 >>> The only problem with that approach is that you can't sort/filter the data on the lookup fields properly. -- Stuart On 24 Feb 2009 at 14:07, Gustav Brock wrote: > Hi John, Stuart et al > > Can't see a purpose for them at the table level. > > However, I've found one area where they can be smart and provide a > quick tool: In a query. This way you can design - for example for some > admin application - some select queries to view in data table view > where the IDs are hidden and you have nice combo- or listboxes for the > lookup fields. Very easy and at zero code and no forms. > > /gustav > > > >>> jwcolby at colbyconsulting.com 24-02-2009 13:38 >>> > They are definitely a mixed blessing. On the one hand they automatically design combo boxes for you > as you drag and drop a FK out onto a form. Thus they can make said combo consistent throughout your > application, including sort fields and orders. > > Likewise you can see the FK text values in a query without pulling in the FK table and specifically > using that text field. > > OTOH it is now difficult to see the actual PK values of that FK table without specifically including > the table in the query. And if the FK table ever goes away or changes field names the application > starts to break. > > I think they are of more use to the neophyte and more a pain to the experienced developer. > > John W. Colby > www.ColbyConsulting.com > > > Stuart McLachlan wrote: > > I've just been bitten by Lookup fields in a table. > > > > I've got an old application, originally written in Access 97 and subsequently > > upgraded to Ak2. > > > > Using A2K3, I was trying to clean out all of the data to set up a new clean > > version. Every time I tried to open one particular table to delete the > > records, Access froze solid. > > > > I finally opened the table in Design view and found that a couple of fields > > had lookups defined. Once I removed the lookups and saved the table, I > > could open it and delete the data. > > > > Cheers, > > Stuart > > > > On 22 Feb 2009 at 12:19, Tina Norris Fields wrote: > > > >> William, you said you learned the hard way never to set a lookup field > >> in a table. Please tell me why - that sounds like just exactly the > >> lesson I need. From max.wanadoo at gmail.com Tue Feb 24 08:56:30 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Tue, 24 Feb 2009 14:56:30 -0000 Subject: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOT REQUIRED) In-Reply-To: References: Message-ID: <49a40aa9.08e9300a.77ae.6a25@mx.google.com> Yeah, and if you deaf like me then you wouldn't hear it anyway! Sheesh! Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 24 February 2009 14:38 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOT REQUIRED) Hi Stuart That's a nice old story. However, it fails because it defines sound as being dependant on both a transmitter and a receiver. A sound transmitter (speaker, siren etc.) will continue to produce sound even if a receiver is not there; in that case the sound energy is absorbed by the air surrounding it or ultimately by the surroundings and turns into heat. That tells further, that no _air_, no sound. So no transmitting media, no sound. Thus everything in outer space is silent, which is why all the roaring and noise from the spaceships in Starwars is nonsense. But who cares. One Silent Movie is enough! /gustav >>> stuart at lexacorp.com.pg 24-02-2009 14:26 >>> Now we are getting philosophical :-) "If a tree falls in a forest and no one is around to hear it, does it make a sound?" Answer?? "Sound is vibration, transmitted to our senses through the mechanism of the ear, and recognized as sound only at our nerve centers. The falling of the tree or any other disturbance will produce vibration of the air. If there be no ears to hear, there will be no sound." x= myFunction() demonstrably returns an Empty Variant does "Call myFunction()" *return* anything? If so, where to? Cheers, Stuart (aka Bishop Berkely) > Well, it will always return "something", if for nothing else an empty > Variant ... though that is supposed to be slightly less than Nothing - > which hardly is anything - so right you are: No value. > > /gustav > > >>> stuart at lexacorp.com.pg 24-02-2009 11:02 >>> > Good point. I often use an Autoexec macro which calls a Startup() > function which doesn't return a value. > > Stuart > > On 24 Feb 2009 at 10:45, Gustav Brock wrote: > > > The only reason I see to not write a sub when a return value is not > > needed, is if the (sub)function will be used in a macro as these can't > > call subfunctions. > > > > /gustav -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From doug at starntech.com Tue Feb 24 10:19:55 2009 From: doug at starntech.com (Doug Barnes) Date: Tue, 24 Feb 2009 11:19:55 -0500 Subject: [AccessD] Quickbooks Message-ID: Hi group, I acquired an older database A2K. They want to export data into an iif file and import that into their QB's. I'm at a loss on how to create the proper formatting for the task at hand. I've looked at the SDK from Intuit and it very overwhelming. Does anybody have a template or other ideas on getting this 'bear' out the door? thanks Douglas Barnes Starn Technical Services P.O. Box 1172 1057 French Street Meadville, PA 16335 P: 814.724.1045 F: 814.337.3460 From rockysmolin at bchacc.com Tue Feb 24 10:33:32 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 24 Feb 2009 08:33:32 -0800 Subject: [AccessD] Quickbooks In-Reply-To: References: Message-ID: <7E3AFB732E574C168FCE04B26B09A1C4@HAL9005> Douglas: What version of QB are they using? The later versions allow import and export via XL or CSV files. I did write a couple interfaces to QB a few years back and it was a real PITA. Like you I found the SDK to be impenetrable. I took a while but I finally found the IIF file layouts and it turned out to be one of the most Kafkaesque approaches to application interfaces I've ever seen. I've still got the formats in a folder but I don't think I can find the link that described how they're used. But I can send them to you offline if you'd like. But check out the version your client is using first and see if it will import from XL or CSV. It will save a lot of aggravation. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Doug Barnes Sent: Tuesday, February 24, 2009 8:20 AM To: Access Developers discussion and problem solving Subject: [AccessD] Quickbooks Hi group, I acquired an older database A2K. They want to export data into an iif file and import that into their QB's. I'm at a loss on how to create the proper formatting for the task at hand. I've looked at the SDK from Intuit and it very overwhelming. Does anybody have a template or other ideas on getting this 'bear' out the door? thanks Douglas Barnes Starn Technical Services P.O. Box 1172 1057 French Street Meadville, PA 16335 P: 814.724.1045 F: 814.337.3460 -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From krosenstiel at comcast.net Tue Feb 24 10:34:06 2009 From: krosenstiel at comcast.net (krosenstiel at comcast.net) Date: Tue, 24 Feb 2009 16:34:06 +0000 (UTC) Subject: [AccessD] Quickbooks In-Reply-To: Message-ID: <943956155.567341235493246232.JavaMail.root@sz0037a.emeryville.ca.mail.comcast.net> Yeah, it is not obvious. However, I did something a long time ago with this. I recall that the trick was exporting to Excel but leaving the top row and left column blank. Then there were some special headers (inside those margins) but I don't remember what they were. That's all I recall. Karen Rosenstiel Seattle WA USA ----- Original Message ----- From: "Doug Barnes" To: "Access Developers discussion and problem solving" Sent: Tuesday, February 24, 2009 8:19:55 AM GMT -08:00 US/Canada Pacific Subject: [AccessD] Quickbooks Hi group, I acquired an older database A2K. They want to export data into an iif file and import that into their QB's. I'm at a loss on how to create the proper formatting for the task at hand. I've looked at the SDK from Intuit and it very overwhelming. Does anybody have a template or other ideas on getting this 'bear' out the door? thanks Douglas Barnes Starn Technical Services P.O. Box 1172 1057 French Street Meadville, PA 16335 P: 814.724.1045 F: 814.337.3460 -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From doug at starntech.com Tue Feb 24 10:42:54 2009 From: doug at starntech.com (Doug Barnes) Date: Tue, 24 Feb 2009 11:42:54 -0500 Subject: [AccessD] Quickbooks In-Reply-To: <7E3AFB732E574C168FCE04B26B09A1C4@HAL9005> Message-ID: Thanks Rocky, I be more than happy if you could sent the info. doug at starntech.com Doug -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Rocky Smolin at Beach Access Software Sent: Tuesday, February 24, 2009 11:34 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Quickbooks Douglas: What version of QB are they using? The later versions allow import and export via XL or CSV files. I did write a couple interfaces to QB a few years back and it was a real PITA. Like you I found the SDK to be impenetrable. I took a while but I finally found the IIF file layouts and it turned out to be one of the most Kafkaesque approaches to application interfaces I've ever seen. I've still got the formats in a folder but I don't think I can find the link that described how they're used. But I can send them to you offline if you'd like. But check out the version your client is using first and see if it will import from XL or CSV. It will save a lot of aggravation. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Doug Barnes Sent: Tuesday, February 24, 2009 8:20 AM To: Access Developers discussion and problem solving Subject: [AccessD] Quickbooks Hi group, I acquired an older database A2K. They want to export data into an iif file and import that into their QB's. I'm at a loss on how to create the proper formatting for the task at hand. I've looked at the SDK from Intuit and it very overwhelming. Does anybody have a template or other ideas on getting this 'bear' out the door? thanks Douglas Barnes Starn Technical Services P.O. Box 1172 1057 French Street Meadville, PA 16335 P: 814.724.1045 F: 814.337.3460 -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com Internal Virus Database is out of date. Checked by AVG - http://www.avg.com Version: 8.0.233 / Virus Database: 270.10.17/1932 - Release Date: 2/3/2009 7:57 AM From cfoust at infostatsystems.com Tue Feb 24 11:24:32 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Tue, 24 Feb 2009 09:24:32 -0800 Subject: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOTREQUIRED) In-Reply-To: References: Message-ID: Absolutely when you need multiple return values, but a simple boolean or single value? Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Tuesday, February 24, 2009 1:45 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOTREQUIRED) Hi Charlotte Not tidy? In some cases this feature is very useful. Here is a simple example of sub returning multiple values: Public Sub CompositeRGB( _ ByVal lngRGB As Long, _ ByRef intRed As Integer, _ ByRef intGreen As Integer, _ ByRef intBlue As Integer) ' Calculate discrete RGB colours from composite colour Value. ' ' 1999-08-20. Cactus Data ApS, CPH If lngRGB < 0 Then ' Nothing to do. intRed = 0 intGreen = 0 intBlue = 0 Else ' Dissolve composite RGB into discrete colours. intRed = lngRGB And vbRed intGreen = (lngRGB And vbGreen) / &H100 intBlue = (lngRGB And vbBlue) / &H10000 End If Debug.Print intRed, intGreen, intBlue End Sub The only reason I see to not write a sub when a return value is not needed, is if the (sub)function will be used in a macro as these can't call subfunctions. /gustav >>> cfoust at infostatsystems.com 24-02-2009 01:14 >>> I didn't say functions HAD to return a value, just that you had to have a function in order to return the value in this case. Actually, using ByRef for arguments passed into a sub allows you to get values back too, but it isn't as tidy. Charlotte Foust -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Tue Feb 24 11:46:10 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Tue, 24 Feb 2009 18:46:10 +0100 Subject: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOT REQUIRED) Message-ID: Hi Charlotte No, you are right, that is seldom. However, a sub may call(!) for more elegant code. Instead of: curAmount = 12.345 curAmount = RoundAmount(curAmount, 2) Debug.Print curAmount ' Returns 12.35 then this: curAmount = 12.345 Call RoundAmount(curAmount, 2) Debug.Print curAmount ' Returns 12.35 or even: curAmount = 12.345 RoundAmount curAmount, 2 Debug.Print curAmount ' Returns 12.35 Still a matter of taste, I guess. /gustav >>> cfoust at infostatsystems.com 24-02-2009 18:24 >>> Absolutely when you need multiple return values, but a simple boolean or single value? Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Tuesday, February 24, 2009 1:45 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOTREQUIRED) Hi Charlotte Not tidy? In some cases this feature is very useful. Here is a simple example of sub returning multiple values: Public Sub CompositeRGB( _ ByVal lngRGB As Long, _ ByRef intRed As Integer, _ ByRef intGreen As Integer, _ ByRef intBlue As Integer) ' Calculate discrete RGB colours from composite colour Value. ' ' 1999-08-20. Cactus Data ApS, CPH If lngRGB < 0 Then ' Nothing to do. intRed = 0 intGreen = 0 intBlue = 0 Else ' Dissolve composite RGB into discrete colours. intRed = lngRGB And vbRed intGreen = (lngRGB And vbGreen) / &H100 intBlue = (lngRGB And vbBlue) / &H10000 End If Debug.Print intRed, intGreen, intBlue End Sub The only reason I see to not write a sub when a return value is not needed, is if the (sub)function will be used in a macro as these can't call subfunctions. /gustav >>> cfoust at infostatsystems.com 24-02-2009 01:14 >>> I didn't say functions HAD to return a value, just that you had to have a function in order to return the value in this case. Actually, using ByRef for arguments passed into a sub allows you to get values back too, but it isn't as tidy. Charlotte Foust From jwcolby at colbyconsulting.com Tue Feb 24 12:04:16 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 24 Feb 2009 13:04:16 -0500 Subject: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOT REQUIRED) In-Reply-To: References: Message-ID: <49A436A0.3060700@colbyconsulting.com> In that case I prefer the function returning a value, because the = tells the mind that a value is coming back. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi Charlotte > > No, you are right, that is seldom. > However, a sub may call(!) for more elegant code. > > Instead of: > > curAmount = 12.345 > curAmount = RoundAmount(curAmount, 2) > Debug.Print curAmount ' Returns 12.35 > > then this: > > curAmount = 12.345 > Call RoundAmount(curAmount, 2) > Debug.Print curAmount ' Returns 12.35 > > or even: > > curAmount = 12.345 > RoundAmount curAmount, 2 > Debug.Print curAmount ' Returns 12.35 > > Still a matter of taste, I guess. > > /gustav > >>>> cfoust at infostatsystems.com 24-02-2009 18:24 >>> > Absolutely when you need multiple return values, but a simple boolean or > single value? > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Tuesday, February 24, 2009 1:45 AM > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOTREQUIRED) > > Hi Charlotte > > Not tidy? In some cases this feature is very useful. > Here is a simple example of sub returning multiple values: > > > Public Sub CompositeRGB( _ > ByVal lngRGB As Long, _ > ByRef intRed As Integer, _ > ByRef intGreen As Integer, _ > ByRef intBlue As Integer) > > ' Calculate discrete RGB colours from composite colour Value. > ' > ' 1999-08-20. Cactus Data ApS, CPH > > If lngRGB < 0 Then > ' Nothing to do. > intRed = 0 > intGreen = 0 > intBlue = 0 > Else > ' Dissolve composite RGB into discrete colours. > intRed = lngRGB And vbRed > intGreen = (lngRGB And vbGreen) / &H100 > intBlue = (lngRGB And vbBlue) / &H10000 > End If > Debug.Print intRed, intGreen, intBlue > End Sub > > > > The only reason I see to not write a sub when a return value is not > needed, is if the (sub)function will be used in a macro as these can't > call subfunctions. > > /gustav > > >>>> cfoust at infostatsystems.com 24-02-2009 01:14 >>> > I didn't say functions HAD to return a value, just that you had to have > a function in order to return the value in this case. Actually, using > ByRef for arguments passed into a sub allows you to get values back too, > but it isn't as tidy. > > Charlotte Foust > > > From DWUTKA at Marlow.com Tue Feb 24 12:52:01 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 12:52:01 -0600 Subject: [AccessD] Rocky's translation tool finished. In-Reply-To: <499FA1E0.10007@colbyconsulting.com> References: <499FA1E0.10007@colbyconsulting.com> Message-ID: No fair, I was sick this weekend! ;) Looks good. I just posted mine a few minutes ago.... Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, February 21, 2009 12:41 AM To: Access Developers discussion and problem solving Subject: [AccessD] Rocky's translation tool finished. Roughly 1.5 hours from receipt of email to back out the door to Rocky Two classes, clsXlateFrm and clsXlateSupervisor and a simple module for initialization. Each form loads the form class from its open event. Translation happens then and there. Strings cached to a collection for that form and will load from the cache each time. Understand this is just the basics, no fancy error handling or interface around the translation. The important thing for me is to have the code for the system in a known place to add functionality (additional properties such as tool tip etc.) should there ever be a need. Neatly organized, easy to understand, fast, efficient, easy to program. '----------------------------------------------------------------------- ---------------- ' Module : clsXlateFrm ' Author : jwcolby ' Date : 2/21/2009 ' Purpose : This class loads all of the phrase strings into a collection for a single form ' the first time the form loads, keyed on control name. It ignores control ' names not in the language table. ' ' It then uses those strings in the collection to translate the form. ' The second and subsequent times the form loads, the class already has the ' strings in the collection so the collection load does not happen again (cached) ' and the translation happens from the collection. '----------------------------------------------------------------------- ---------------- Const cstrModule As String = "clsXlateFrm" Option Compare Database Option Explicit Private mcolPhrase As Collection Private mstrName As String Private mstrLanguageFldName As String Private Sub Class_Initialize() Set mcolPhrase = New Collection End Sub Private Sub Class_Terminate() Set mcolPhrase = Nothing End Sub '----------------------------------------------------------------------- ---------------- ' Procedure : mInit ' Author : jwcolby ' Date : 2/21/2009 ' Purpose : Called the first time the form loads. Loads the translation phrases from the table ' and translates the form. '----------------------------------------------------------------------- ---------------- ' Function mInit(lfrm As Form, lstrLanguageFldName As String) mstrName = lfrm.Name mstrLanguageFldName = lstrLanguageFldName ' 'If nothing in the collection then load the collection ' If Not mcolPhrase.Count Then mLoadColPhrase End If ' 'Now translate the form ' mXlateFrm lfrm End Function Property Get pName() As String pName = mstrName End Property Function colPhrase() As Collection Set colPhrase = mcolPhrase End Function '----------------------------------------------------------------------- ---------------- ' Procedure : mXlateFrm ' Author : jwcolby ' Date : 2/21/2009 ' Purpose : This function trnaslates the form. By the time this function is called the ' collection already contains all of the translation strings keyed by the ' control name. All it has to do is attempt to index into the collection ' using each control name. If there is something in the collection for that ' control name then the string is returned from the collection and placed in ' the control property. ' ' if nothing there, the error is ignored and the next control is tried. '----------------------------------------------------------------------- ---------------- ' Function mXlateFrm(frm As Form) Dim ctl As Control On Error GoTo Err_mXlateFrm ' 'Check every control on the form 'Expand this case to add new control types. For Each ctl In frm.Controls Select Case ctl.ControlType Case acLabel ' 'Try to get a translation phrase from the collection 'Any errors will be ignored ctl.Caption = mcolPhrase(ctl.Name) Case acCommandButton ctl.Caption = mcolPhrase(ctl.Name) Case Else End Select Next ctl Exit_mXlateFrm: On Error Resume Next Exit Function Err_mXlateFrm: Select Case Err Case 0 '.insert Errors you wish to ignore here Resume Next Case 5 'Control name not in translation table, ignore the error Resume Next Case Else '.All other errors will trap Beep MsgBox Err.Number & ":" & Err.Description Resume Exit_mXlateFrm End Select Resume 0 '.FOR TROUBLESHOOTING End Function '----------------------------------------------------------------------- ---------------- ' Procedure : mLoadColPhrase ' Author : jwcolby ' Date : 2/21/2009 ' Purpose : Loads the translation phrase strings out of the table for one form ' Builds a query dynamically based on the form name and the translation ' language field name '----------------------------------------------------------------------- ---------------- ' Private Function mLoadColPhrase() Dim db As DAO.Database Dim rst As DAO.Recordset Dim strSQL As String On Error GoTo Err_mLoadColPhrase ' 'Dynamically build the query to pull the translation strings for a specific form and language ' strSQL = "SELECT fldLanguageForm, fldLanguageControl, " & mstrLanguageFldName & " " & _ "FROM [tblLanguage-Controls] " & _ "WHERE ((([tblLanguage-Controls].fldLanguageForm)='" & mstrName & "'));" Set db = CurrentDb Set rst = db.OpenRecordset(strSQL) With rst While Not .EOF ' 'Drop all phrases found into the phrase collection 'Keyed on the control name fldLanguageControl ' mcolPhrase.Add .Fields(mstrLanguageFldName).Value, .Fields("fldLanguageControl").Value .MoveNext Wend End With Exit_mLoadColPhrase: On Error Resume Next Exit Function Err_mLoadColPhrase: Select Case Err Case 0 '.insert Errors you wish to ignore here Resume Next Case Else '.All other errors will trap Beep MsgBox Err.Number & ":" & Err.Description Resume Exit_mLoadColPhrase End Select Resume 0 '.FOR TROUBLESHOOTING End Function Option Compare Database Option Explicit Private mcolClsXlateFrm As Collection Private Sub Class_Initialize() Set mcolClsXlateFrm = New Collection End Sub Private Sub Class_Terminate() Set mcolClsXlateFrm = Nothing End Sub '----------------------------------------------------------------------- ---------------- ' Procedure : mTranslateFrm ' Author : jwcolby ' Date : 2/21/2009 ' Purpose : Performs the translation for one form passed in. '----------------------------------------------------------------------- ---------------- ' Function mTranslateFrm(lfrm As Form, lstrLanguageFldName As String) Dim lclsXlateFrm As clsXlateFrm On Error GoTo Err_mTranslateFrm On Error Resume Next ' 'Try to get an instance of the clsXlateFrm from the collection for this form ' Set lclsXlateFrm = mcolClsXlateFrm(lfrm.Name) If Err Then ' 'If that fials then this is the first time so perform the initialize ' Set lclsXlateFrm = New clsXlateFrm ' 'Now that we have an instance for this form perform the load and translation ' lclsXlateFrm.mInit lfrm, lstrLanguageFldName ' 'And save the instance to the collection for the next time ' mcolClsXlateFrm.Add lclsXlateFrm, lfrm.Name Else ' 'We have already loaded this form once so perform the translation ' lclsXlateFrm.mXlateFrm lfrm End If Exit_mTranslateFrm: On Error Resume Next Exit Function Err_mTranslateFrm: Select Case Err Case 0 '.insert Errors you wish to ignore here Resume Next Case Else '.All other errors will trap Beep MsgBox Err.Number & ":" & Err.Description Resume Exit_mTranslateFrm End Select Resume 0 '.FOR TROUBLESHOOTING End Function ' 'Return a pointer to colClsXlateFrm ' Property Get colClsXlateFrm() As Collection Set colClsXlateFrm = mcolClsXlateFrm End Property '----------------------------------------------------------------------- ---------------- ' Module : basXlate ' Author : jwcolby ' Date : 2/21/2009 ' Purpose : Functions to initialize, terminate and return a pointer to clsXlateSupervisor ' as well as a global variable for the translation string field name. '----------------------------------------------------------------------- ---------------- Const cstrModule As String = "basXlate" Option Compare Database Option Explicit Private mclsXlateSupervisor As clsXlateSupervisor ' 'Set this variable to the name of the field holding the translation language strings ' 'fldLanguageEnglish 'fldLanguageChineseComplex 'etc ' Public mstrLanguageFldName As String Function mXlateSupervisorInit() If mclsXlateSupervisor Is Nothing Then Set mclsXlateSupervisor = New clsXlateSupervisor mstrLanguageFldName = "fldLanguageSpanish" 'Default language to English End If Set mXlateSupervisorInit = mclsXlateSupervisor End Function Function mXlateSupervisorTerm() Set mclsXlateSupervisor = Nothing End Function Function cXS() As clsXlateSupervisor Set cXS = mXlateSupervisorInit() End Function -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Tue Feb 24 12:59:35 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 12:59:35 -0600 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <49A09E82.8010202@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005> <499E0667.3030008@colbyconsulting.com> <38E60799BABA432CBE6E72FA8F1ECF5D@XPS> <499EC1BF.9050102@colbyconsulting.com><00B081D149A644ADBDE5C4BEF589F120@XPS><499EFE58.6050703@colbyconsulting.com><8475E883E0DF4EBB94B684E9525182D1@HAL9005> <82745B5E88DE4DF2873544CB371BED1B@HAL9005> <499ff7dc.0a04d00a.7b19.593f@mx.google.com> <9348165EACB84473BF8DFF66D7F51274@HAL9005><49a02500.0508d00a.4eb0.ffffbe67@mx.google.com> <49A0319B.70600@colbyconsulting.com> <49A039AA.80903@colbyconsulting.com> <49a05c38.0508d00a.4eb0.ffffb1d0@mx.google.com><3F18D21AB48C494CA24F451109FD3C3C@jislaptopdev> <49A09E82.8010202@colbyconsulting.com> Message-ID: Ya, I used a class. If he wants to do the font thing, would need to use two classes. I kept mine pretty short and sweet. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, February 21, 2009 6:38 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution We need to get our web design person to do the posting. I am hoping to get Drew's solution as well, he might use classes as well, even if not it would give another perspective. John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...ouch! ...so simple ...so obvious ...the old thing about too busy looking > at the trees to see the forest :) > ...still ...assuming JC posts the mdb sample ...we got a good look at using > classes and collections in the real world. > > William > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Tue Feb 24 13:03:54 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 13:03:54 -0600 Subject: [AccessD] Find First in an Array? - The Solution In-Reply-To: <8232A039E02548E891948D27DA51E3F0@jislaptopdev> References: , <8E2FCA4F8F244B47B1E1C321CC80C357@HAL9005>, <49a12910.0707d00a.614b.735a@mx.google.com><49A1D43A.18411.77A1819@stuart.lexacorp.com.pg><49A14E89.1000201@colbyconsulting.com> <8232A039E02548E891948D27DA51E3F0@jislaptopdev> Message-ID: Ha ha..... I don't care if people think I'm brilliant....just get me some more Nyquil please!!!! Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Sunday, February 22, 2009 7:34 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution ...sigh ...shakes head ...doesn't work ...tries banging head against wall ...for some reason that only makes it worse :( ..."Simple, sweet, and to the point" it ain't, eh ...and telling Drew he's brilliant is like throwing a cat into a bag full of catnip :( ...for this specific case ...translations ...using tags makes a lot more sense ...imnsho of course. ...now WHERE is that damn Tylenol? William The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Tue Feb 24 13:09:22 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 13:09:22 -0600 Subject: [AccessD] Rocky's translation database (Drew's version) Message-ID: (Whoops, posted this to OT first...) http://www.marlow.com/Translate.zip Sorry for the delay folks, I was sick all weekend and yesterday. Still feel like I walked into a wall this morning! But here's the database Rocky sent to me with a 'global class' handling the translations. I did a few things. First, I changed the table structure. I created a table called tblControlLanguages. The difference is that in the table I used, the language is a field value, instead of a separate field. I created an importlanguages function that took Rocky's initial table structure, and converted the data into the new table. There were a few duplicates and records where there was a blank form or control name. Deleted those. Then there is the Startup Function, which an Autoexec macro runs. That initiates the global class. Then each form has: Option Compare Database Option Explicit Dim WithEvents ContrlLang As ControlLanguage Private Sub ContrlLang_LanguageChanged() Dim ctrl For Each ctrl In Me.Controls If ContrlLang.Caption(Me.Name, ctrl.Name) <> "" Then ctrl.Caption = ContrlLang.Caption(Me.Name, ctrl.Name) End If Next End Sub Private Sub Form_Load() Set ContrlLang = CurrentControlLanguages ContrlLang_LanguageChanged End Sub Behind it. This way, when the form loads, it automatically gets it's controls set.... If you open Form1, you can change the language. If you keep the other forms open, you'll notice they all change when the language is changed (due to an event being raised by the ControlLanguage global instance! This is a nitty gritty example....no real errorhandling, and it doesn't do anything with fonts, which I believe Rocky mentioned he has to do for certain languages. But it shows how a global class (which loads when the app starts (and it loads in a split second...putting all that translation info into memory...and it hardly uses any space)) can handle something like this very quick and easy. And, as you can see, to add a new language, or to add a new form with controls, it's just adding records into the table (no need to change the table design for a new language...) Drew The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From Lambert.Heenan at AIG.com Tue Feb 24 12:24:34 2009 From: Lambert.Heenan at AIG.com (Heenan, Lambert) Date: Tue, 24 Feb 2009 13:24:34 -0500 Subject: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOT REQUIRED) In-Reply-To: <49A436A0.3060700@colbyconsulting.com> References: <49A436A0.3060700@colbyconsulting.com> Message-ID: I also favor using *real* function calls. I especially don't like subs mysteriously modifying data. The example given was RoundAmount curAmount, 2 Debug.Print curAmount ' Returns 12.35 Here we have a Sub that is modifying its input parameter curAmount, but the only way to rally know this is by examining the source code of the Sub, which may not be available to you. One might say that the fact that the sub is Named "RoundAmount" tells you what it's going to do, but even that's not really the case. The RoundAmount sub is doing more than just rounding. I'll stick my neck out and say in most cases where rounding is done it's because you want to *display* data at a certain precision, but the underlying data should remain unchanged. So curRounded = Round(curAmount,2) does just that, we get a rounded value to display, and curAmount does not alter. Whereas RoundAmount curAmount, 2 is throwing data away. My 2 cents. Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, February 24, 2009 1:04 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOT REQUIRED) In that case I prefer the function returning a value, because the = tells the mind that a value is coming back. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi Charlotte > > No, you are right, that is seldom. > However, a sub may call(!) for more elegant code. > > Instead of: > > curAmount = 12.345 > curAmount = RoundAmount(curAmount, 2) > Debug.Print curAmount ' Returns 12.35 > > then this: > > curAmount = 12.345 > Call RoundAmount(curAmount, 2) > Debug.Print curAmount ' Returns 12.35 > > or even: > > curAmount = 12.345 > RoundAmount curAmount, 2 > Debug.Print curAmount ' Returns 12.35 > > Still a matter of taste, I guess. > > /gustav > >>>> cfoust at infostatsystems.com 24-02-2009 18:24 >>> > Absolutely when you need multiple return values, but a simple boolean > or single value? > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav > Brock > Sent: Tuesday, February 24, 2009 1:45 AM > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - > EVENTS NOTREQUIRED) > > Hi Charlotte > > Not tidy? In some cases this feature is very useful. > Here is a simple example of sub returning multiple values: > > > Public Sub CompositeRGB( _ > ByVal lngRGB As Long, _ > ByRef intRed As Integer, _ > ByRef intGreen As Integer, _ > ByRef intBlue As Integer) > > ' Calculate discrete RGB colours from composite colour Value. > ' > ' 1999-08-20. Cactus Data ApS, CPH > > If lngRGB < 0 Then > ' Nothing to do. > intRed = 0 > intGreen = 0 > intBlue = 0 > Else > ' Dissolve composite RGB into discrete colours. > intRed = lngRGB And vbRed > intGreen = (lngRGB And vbGreen) / &H100 > intBlue = (lngRGB And vbBlue) / &H10000 > End If > Debug.Print intRed, intGreen, intBlue End Sub > > > > The only reason I see to not write a sub when a return value is not > needed, is if the (sub)function will be used in a macro as these can't > call subfunctions. > > /gustav > > >>>> cfoust at infostatsystems.com 24-02-2009 01:14 >>> > I didn't say functions HAD to return a value, just that you had to > have a function in order to return the value in this case. Actually, > using ByRef for arguments passed into a sub allows you to get values > back too, but it isn't as tidy. > > Charlotte Foust > > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From DWUTKA at Marlow.com Tue Feb 24 13:27:11 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 13:27:11 -0600 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <49A2DCBF.4000809@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg><49a14c9c.0a04d00a.0836.28b5@mx.google.com> <49A1792E.4090802@colbyconsulting.com> <49A2D002.5030204@colbyconsulting.com> <49A2DCBF.4000809@colbyconsulting.com> Message-ID: Sorry to chime in here late...but if you use tags for a system wide process you completely eliminate the ability to use the tags on the fly for other purposes. 300k in memory is nothing nowadays. If we were designing systems back in the 80's and 90's, sure, but in today's world, most cell phones have more computing power then a high end system in the early 90's. I didn't read every detail in the 'tag' solution, but I believe it required saving the design of the forms. Using a class solution (and using the Event driven method, so that translations can be changed by the user) prevents constantly having to redesign every form. And leaves the tags available for other purposes. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Monday, February 23, 2009 11:29 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer OK. But the whole point of the tag goes away when you have a wrapper class. The purpose of a tag is to contain "anything" that the developer wants for that form. Once I have a wrapper class I can simply create new properties of the class, with strong typing, etc. If you have a class you no longer need a tag, never mind a whole collection of them. John W. Colby www.ColbyConsulting.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwcolby at colbyconsulting.com Tue Feb 24 14:51:48 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 24 Feb 2009 15:51:48 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg><49a14c9c.0a04d00a.0836.28b5@mx.google.com> <49A1792E.4090802@colbyconsulting.com> <49A2D002.5030204@colbyconsulting.com> <49A2DCBF.4000809@colbyconsulting.com> Message-ID: <49A45DE4.3060001@colbyconsulting.com> I don't use tags at all for much the same reason. Once you understand and use classes, tags quickly lose their appeal. I have just run into too many databases where the previous programmer used the tags in various places. Now I come along and start overwriting their old tag usage and the application breaks. It takes me literally minutes to write a class template and a few more minutes to fill it in. I used to use the tags extensively back before I learned about collections. A collection can easily and quickly completely replace the old VarName1=VarVal1;VarName2=VarVal2; stuff that you end up writing into tags. Collections are a modern programming construct. Tags are a very early 90s programming kluge (IMOOC). John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > Sorry to chime in here late...but if you use tags for a system wide > process you completely eliminate the ability to use the tags on the fly > for other purposes. > > 300k in memory is nothing nowadays. If we were designing systems back > in the 80's and 90's, sure, but in today's world, most cell phones have > more computing power then a high end system in the early 90's. > > I didn't read every detail in the 'tag' solution, but I believe it > required saving the design of the forms. Using a class solution (and > using the Event driven method, so that translations can be changed by > the user) prevents constantly having to redesign every form. And leaves > the tags available for other purposes. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Monday, February 23, 2009 11:29 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited > - Now Tag is the Answer > > OK. But the whole point of the tag goes away when you have a wrapper > class. The purpose of a tag > is to contain "anything" that the developer wants for that form. Once I > have a wrapper class I can > simply create new properties of the class, with strong typing, etc. > > If you have a class you no longer need a tag, never mind a whole > collection of them. > > John W. Colby > www.ColbyConsulting.com > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > > From stuart at lexacorp.com.pg Tue Feb 24 15:05:15 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 25 Feb 2009 07:05:15 +1000 Subject: [AccessD] Function vs Sub In-Reply-To: <49A3FFB2.6020905@colbyconsulting.com> References: , <49A4823F.2576.1C35F67@stuart.lexacorp.com.pg>, <49A3FFB2.6020905@colbyconsulting.com> Message-ID: <49A4EDAB.30153.366FCC7@stuart.lexacorp.com.pg> Don't know about VBA, but according to Bob Zale, the overhead in the PowerBasic compiler is exactly one Opcode. :-) -- Stuart On 24 Feb 2009 at 9:09, jwcolby wrote: > Yes, but "return anything" has an overhead implication. At the machine code level, a function has a > storage location somewhere that is set to something when the function returns. The code has to > explicitly set the value of the function return location to something. So MAYBE that "return value > location" is being manipulated, even though when that "something" is "returned" to the caller, it is > not being placed into a set of ears. > > If you explicitly set the return value of the function inside of the function then it definitely > WILL manipulate that return value location. As an example, you might cause a function to return an > error code, even though in some cases the caller never checks for errors. > > To be honest though, computers are so fast that worrying about that overhead doesn't make it onto my > radar. > > John W. Colby > www.ColbyConsulting.com From stuart at lexacorp.com.pg Tue Feb 24 15:12:22 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 25 Feb 2009 07:12:22 +1000 Subject: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOTREQUIRED) In-Reply-To: References: , Message-ID: <49A4EF56.3515.36D82E6@stuart.lexacorp.com.pg> Which begs the question, why does VBA use Subs for event procedures which return values such as Cancel or KeyCode? Aren't these Functions? :-) -- Stuart On 24 Feb 2009 at 9:24, Charlotte Foust wrote: > Absolutely when you need multiple return values, but a simple boolean or > single value? > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Tuesday, February 24, 2009 1:45 AM > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTS > NOTREQUIRED) > > Hi Charlotte > > Not tidy? In some cases this feature is very useful. > Here is a simple example of sub returning multiple values: > > > Public Sub CompositeRGB( _ > ByVal lngRGB As Long, _ > ByRef intRed As Integer, _ > ByRef intGreen As Integer, _ > ByRef intBlue As Integer) > > ' Calculate discrete RGB colours from composite colour Value. > ' > ' 1999-08-20. Cactus Data ApS, CPH > > If lngRGB < 0 Then > ' Nothing to do. > intRed = 0 > intGreen = 0 > intBlue = 0 > Else > ' Dissolve composite RGB into discrete colours. > intRed = lngRGB And vbRed > intGreen = (lngRGB And vbGreen) / &H100 > intBlue = (lngRGB And vbBlue) / &H10000 > End If > Debug.Print intRed, intGreen, intBlue > End Sub > > > > The only reason I see to not write a sub when a return value is not > needed, is if the (sub)function will be used in a macro as these can't > call subfunctions. > > /gustav > > > >>> cfoust at infostatsystems.com 24-02-2009 01:14 >>> > I didn't say functions HAD to return a value, just that you had to have > a function in order to return the value in this case. Actually, using > ByRef for arguments passed into a sub allows you to get values back too, > but it isn't as tidy. > > Charlotte Foust > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Tue Feb 24 15:21:02 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Tue, 24 Feb 2009 13:21:02 -0800 Subject: [AccessD] Function vs Sub (was: Classes and Events - EVENTSNOTREQUIRED) In-Reply-To: <49A4EF56.3515.36D82E6@stuart.lexacorp.com.pg> References: , <49A4EF56.3515.36D82E6@stuart.lexacorp.com.pg> Message-ID: Not sure I follow, Stuart. Subs set values like Cancel or process a keycode. They don't return them per se. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Tuesday, February 24, 2009 1:12 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTSNOTREQUIRED) Which begs the question, why does VBA use Subs for event procedures which return values such as Cancel or KeyCode? Aren't these Functions? :-) -- Stuart On 24 Feb 2009 at 9:24, Charlotte Foust wrote: > Absolutely when you need multiple return values, but a simple boolean or > single value? > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Tuesday, February 24, 2009 1:45 AM > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTS > NOTREQUIRED) > > Hi Charlotte > > Not tidy? In some cases this feature is very useful. > Here is a simple example of sub returning multiple values: > > > Public Sub CompositeRGB( _ > ByVal lngRGB As Long, _ > ByRef intRed As Integer, _ > ByRef intGreen As Integer, _ > ByRef intBlue As Integer) > > ' Calculate discrete RGB colours from composite colour Value. > ' > ' 1999-08-20. Cactus Data ApS, CPH > > If lngRGB < 0 Then > ' Nothing to do. > intRed = 0 > intGreen = 0 > intBlue = 0 > Else > ' Dissolve composite RGB into discrete colours. > intRed = lngRGB And vbRed > intGreen = (lngRGB And vbGreen) / &H100 > intBlue = (lngRGB And vbBlue) / &H10000 > End If > Debug.Print intRed, intGreen, intBlue > End Sub > > > > The only reason I see to not write a sub when a return value is not > needed, is if the (sub)function will be used in a macro as these can't > call subfunctions. > > /gustav > > > >>> cfoust at infostatsystems.com 24-02-2009 01:14 >>> > I didn't say functions HAD to return a value, just that you had to have > a function in order to return the value in this case. Actually, using > ByRef for arguments passed into a sub allows you to get values back too, > but it isn't as tidy. > > Charlotte Foust > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Feb 24 15:22:51 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 24 Feb 2009 16:22:51 -0500 Subject: [AccessD] Function vs Sub In-Reply-To: <49A4EDAB.30153.366FCC7@stuart.lexacorp.com.pg> References: , <49A4823F.2576.1C35F67@stuart.lexacorp.com.pg>, <49A3FFB2.6020905@colbyconsulting.com> <49A4EDAB.30153.366FCC7@stuart.lexacorp.com.pg> Message-ID: <49A4652B.6050709@colbyconsulting.com> I would think that the subject gets deep rather quickly. You have to understand where the various local variables (inside of the function) are stored and how they are passed back. My understanding is that complex data types such as classes, strings etc are stored on the heap (global to the program, outside of the function) but that simple data types are stored on the stack (local to or "inside" of the function). Is the return code copying the data itself into a storage location or simply returning a pointer to the data. With complex data types it is almost certainly a pointer to a location on the heap. With local variables however, if it is a pointer to the data, then "simple variables" would be getting a pointer to a location to the stack, and the stack is SUPPOSED to be popped as the function exits. That would APPEAR to mean that a pointer is not possible with a local simple variable, and so a copy of the data would be required. Now... one OPCODE maybe, but how about the data (a float for instance is 80 bytes stored in a register) being copied to a memory location. It may in fact just be one "op code" to do that but there is at least some overhead to pack / unpack that 80 byte real into 32 / 64 / 128 bit memory locations. Again, I do not understand the inner workings of the interpreter, but common sense says there is probably some overhead. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > Don't know about VBA, but according to Bob Zale, the overhead in the > PowerBasic compiler is exactly one Opcode. :-) > From jimdettman at verizon.net Tue Feb 24 15:22:52 2009 From: jimdettman at verizon.net (Jim Dettman) Date: Tue, 24 Feb 2009 16:22:52 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg><49a14c9c.0a04d00a.0836.28b5@mx.google.com> <49A1792E.4090802@colbyconsulting.com> <49A2D002.5030204@colbyconsulting.com> <49A2DCBF.4000809@colbyconsulting.com> Message-ID: <262BBEBB7F3C4F37A241CE8D554CFB30@XPS> Drew, <> No you don't; code for manipulating tags to store multiple values has been floating around since A2 and has been discussed numerous times on this list. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, February 24, 2009 2:27 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer Sorry to chime in here late...but if you use tags for a system wide process you completely eliminate the ability to use the tags on the fly for other purposes. 300k in memory is nothing nowadays. If we were designing systems back in the 80's and 90's, sure, but in today's world, most cell phones have more computing power then a high end system in the early 90's. I didn't read every detail in the 'tag' solution, but I believe it required saving the design of the forms. Using a class solution (and using the Event driven method, so that translations can be changed by the user) prevents constantly having to redesign every form. And leaves the tags available for other purposes. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Monday, February 23, 2009 11:29 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer OK. But the whole point of the tag goes away when you have a wrapper class. The purpose of a tag is to contain "anything" that the developer wants for that form. Once I have a wrapper class I can simply create new properties of the class, with strong typing, etc. If you have a class you no longer need a tag, never mind a whole collection of them. John W. Colby www.ColbyConsulting.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Feb 24 15:34:54 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 24 Feb 2009 16:34:54 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <262BBEBB7F3C4F37A241CE8D554CFB30@XPS> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg><49a14c9c.0a04d00a.0836.28b5@mx.google.com> <49A1792E.4090802@colbyconsulting.com> <49A2D002.5030204@colbyconsulting.com> <49A2DCBF.4000809@colbyconsulting.com> <262BBEBB7F3C4F37A241CE8D554CFB30@XPS> Message-ID: <49A467FE.70300@colbyconsulting.com> >No you don't; code for manipulating tags to store multiple values has been floating around since A2 and has been discussed numerous times on this list. That is true Jim. It is however almost exactly analogous to denormalizing a table by storing a ton of entirely unrelated data in a single field in a table. Sure it can be done, but you won't catch me doing it (anymore). The pluses just don't outweigh the minuses. Put that same stuff in a table and load it from there as the form opens. Once you load it you REALLY don't need to place it in a tag because you have much better constructs to use. I am sure it used to make sense back when a computer was dog slow, only had 64 megs of memory, and had slow hard disks, slow networks and so forth. To try and justify it now becomes a stretch. John W. Colby www.ColbyConsulting.com Jim Dettman wrote: > Drew, > > < process you completely eliminate the ability to use the tags on the fly > for other purposes. >> > > No you don't; code for manipulating tags to store multiple values has been > floating around since A2 and has been discussed numerous times on this list. > > Jim. > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Tuesday, February 24, 2009 2:27 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - > Now Tag is the Answer > > Sorry to chime in here late...but if you use tags for a system wide > process you completely eliminate the ability to use the tags on the fly > for other purposes. > > 300k in memory is nothing nowadays. If we were designing systems back > in the 80's and 90's, sure, but in today's world, most cell phones have > more computing power then a high end system in the early 90's. > > I didn't read every detail in the 'tag' solution, but I believe it > required saving the design of the forms. Using a class solution (and > using the Event driven method, so that translations can be changed by > the user) prevents constantly having to redesign every form. And leaves > the tags available for other purposes. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Monday, February 23, 2009 11:29 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited > - Now Tag is the Answer > > OK. But the whole point of the tag goes away when you have a wrapper > class. The purpose of a tag > is to contain "anything" that the developer wants for that form. Once I > have a wrapper class I can > simply create new properties of the class, with strong typing, etc. > > If you have a class you no longer need a tag, never mind a whole > collection of them. > > John W. Colby > www.ColbyConsulting.com > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI Proprietary > and/or II-VI Business Sensitive material. If you are not the intended > recipient, please contact the sender immediately and destroy the material in > its entirety, whether electronic or hard copy. You are notified that any > review, retransmission, copying, disclosure, dissemination, or other use of, > or taking of any action in reliance upon this information by persons or > entities other than the intended recipient is prohibited. > > From jimdettman at verizon.net Tue Feb 24 15:44:15 2009 From: jimdettman at verizon.net (Jim Dettman) Date: Tue, 24 Feb 2009 16:44:15 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <49A467FE.70300@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg><49a14c9c.0a04d00a.0836.28b5@mx.google.com> <49A1792E.4090802@colbyconsulting.com> <49A2D002.5030204@colbyconsulting.com> <49A2DCBF.4000809@colbyconsulting.com> <262BBEBB7F3C4F37A241CE8D554CFB30@XPS> <49A467FE.70300@colbyconsulting.com> Message-ID: <96323C3220B0447892C0396AC52E277B@XPS> John, << To try and justify it now becomes a stretch.>> I didn't justify it by any means, I just said the statement wasn't true. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, February 24, 2009 4:35 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer >No you don't; code for manipulating tags to store multiple values has been floating around since A2 and has been discussed numerous times on this list. That is true Jim. It is however almost exactly analogous to denormalizing a table by storing a ton of entirely unrelated data in a single field in a table. Sure it can be done, but you won't catch me doing it (anymore). The pluses just don't outweigh the minuses. Put that same stuff in a table and load it from there as the form opens. Once you load it you REALLY don't need to place it in a tag because you have much better constructs to use. I am sure it used to make sense back when a computer was dog slow, only had 64 megs of memory, and had slow hard disks, slow networks and so forth. To try and justify it now becomes a stretch. John W. Colby www.ColbyConsulting.com Jim Dettman wrote: > Drew, > > < process you completely eliminate the ability to use the tags on the fly > for other purposes. >> > > No you don't; code for manipulating tags to store multiple values has been > floating around since A2 and has been discussed numerous times on this list. > > Jim. > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Tuesday, February 24, 2009 2:27 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - > Now Tag is the Answer > > Sorry to chime in here late...but if you use tags for a system wide > process you completely eliminate the ability to use the tags on the fly > for other purposes. > > 300k in memory is nothing nowadays. If we were designing systems back > in the 80's and 90's, sure, but in today's world, most cell phones have > more computing power then a high end system in the early 90's. > > I didn't read every detail in the 'tag' solution, but I believe it > required saving the design of the forms. Using a class solution (and > using the Event driven method, so that translations can be changed by > the user) prevents constantly having to redesign every form. And leaves > the tags available for other purposes. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Monday, February 23, 2009 11:29 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited > - Now Tag is the Answer > > OK. But the whole point of the tag goes away when you have a wrapper > class. The purpose of a tag > is to contain "anything" that the developer wants for that form. Once I > have a wrapper class I can > simply create new properties of the class, with strong typing, etc. > > If you have a class you no longer need a tag, never mind a whole > collection of them. > > John W. Colby > www.ColbyConsulting.com > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI Proprietary > and/or II-VI Business Sensitive material. If you are not the intended > recipient, please contact the sender immediately and destroy the material in > its entirety, whether electronic or hard copy. You are notified that any > review, retransmission, copying, disclosure, dissemination, or other use of, > or taking of any action in reliance upon this information by persons or > entities other than the intended recipient is prohibited. > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Tue Feb 24 16:26:46 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 25 Feb 2009 08:26:46 +1000 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, Message-ID: <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> So let me get this clear. Your argument is: 1. I need to store a string value for each control. 2. Controls has been designed with a property specifically for this purpose. 3. I won't use the property in case I need to use it for something else later on, instead I will build a complete new system which will allow me to do all sorts of neat things with controls in case I need to in the future. May I refer you to Shamil's posting last Friday in this thread? May I warn you about what is known as: "Premature Optimization" http://c2.com/cgi/wiki?PrematureOptimization and "Premature Generalization" http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil Have a look: "Death by premature generalization" http://ryanfarley.com/blog/archive/2004/04/30/570.aspx -- Stuart On 24 Feb 2009 at 13:27, Drew Wutka wrote: > Sorry to chime in here late...but if you use tags for a system wide > process you completely eliminate the ability to use the tags on the fly > for other purposes. > From DWUTKA at Marlow.com Tue Feb 24 16:46:55 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 16:46:55 -0600 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <262BBEBB7F3C4F37A241CE8D554CFB30@XPS> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com><49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg><49a14c9c.0a04d00a.0836.28b5@mx.google.com><49A1792E.4090802@colbyconsulting.com><49A2D002.5030204@colbyconsulting.com><49A2DCBF.4000809@colbyconsulting.com> <262BBEBB7F3C4F37A241CE8D554CFB30@XPS> Message-ID: Yes...it does. If you are using the tag property for EVERY control in every form, then how do you use that same property for something else? You could copy the value out, but what if, during the process where the tag is holding your value, it tries to use the tag for the translation? It won't work right. Besides, one of the great purposes of a tag is that it will let you store arbitrary information about a control at design time. Why waste that functionality in an entire app, when you can 'translate' in other ways that leave the tags alone? Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman Sent: Tuesday, February 24, 2009 3:23 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer Drew, <> No you don't; code for manipulating tags to store multiple values has been floating around since A2 and has been discussed numerous times on this list. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, February 24, 2009 2:27 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer Sorry to chime in here late...but if you use tags for a system wide process you completely eliminate the ability to use the tags on the fly for other purposes. 300k in memory is nothing nowadays. If we were designing systems back in the 80's and 90's, sure, but in today's world, most cell phones have more computing power then a high end system in the early 90's. I didn't read every detail in the 'tag' solution, but I believe it required saving the design of the forms. Using a class solution (and using the Event driven method, so that translations can be changed by the user) prevents constantly having to redesign every form. And leaves the tags available for other purposes. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Monday, February 23, 2009 11:29 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer OK. But the whole point of the tag goes away when you have a wrapper class. The purpose of a tag is to contain "anything" that the developer wants for that form. Once I have a wrapper class I can simply create new properties of the class, with strong typing, etc. If you have a class you no longer need a tag, never mind a whole collection of them. John W. Colby www.ColbyConsulting.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Tue Feb 24 16:49:12 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 16:49:12 -0600 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <49A467FE.70300@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com> <49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg><49a14c9c.0a04d00a.0836.28b5@mx.google.com> <49A1792E.4090802@colbyconsulting.com> <49A2D002.5030204@colbyconsulting.com> <49A2DCBF.4000809@colbyconsulting.com> <262BBEBB7F3C4F37A241CE8D554CFB30@XPS> <49A467FE.70300@colbyconsulting.com> Message-ID: On top of that, loading the controls into memory, when a form loads, you're still putting all that stuff into memory.... Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, February 24, 2009 3:35 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer >No you don't; code for manipulating tags to store multiple values has been floating around since A2 and has been discussed numerous times on this list. That is true Jim. It is however almost exactly analogous to denormalizing a table by storing a ton of entirely unrelated data in a single field in a table. Sure it can be done, but you won't catch me doing it (anymore). The pluses just don't outweigh the minuses. Put that same stuff in a table and load it from there as the form opens. Once you load it you REALLY don't need to place it in a tag because you have much better constructs to use. I am sure it used to make sense back when a computer was dog slow, only had 64 megs of memory, and had slow hard disks, slow networks and so forth. To try and justify it now becomes a stretch. John W. Colby www.ColbyConsulting.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From wdhindman at dejpolsystems.com Tue Feb 24 16:54:37 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Tue, 24 Feb 2009 17:54:37 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> Message-ID: ...loud, long, clamoring applause!!!!!!!!!!! ...one of these days we're going to learn not to get jc into warmongering mode ...makes a mule look pliable, he does :) ...while there are many good things to be said of classes, the bottom line is that both solutions work equally well in my tests. ...and I can read max's tag code without twisting my neck all out of shape trying to follow it :) ...don't get me wrong, I like classes ...very useful tools ...but for this specific case, I like tags better ...and I fully admit that if I used classes from a framework as jc does, I'd probably see it different ...but I don't.. ...seems to me I recall way back when in the days of the bound wars, jc preaching the gospel about simplicity and using the tools Access gives you ...made a lot of sense then, makes a lot of sense now :) William -------------------------------------------------- From: "Stuart McLachlan" Sent: Tuesday, February 24, 2009 5:26 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer > So let me get this clear. Your argument is: > > 1. I need to store a string value for each control. > > 2. Controls has been designed with a property specifically for this > purpose. > > 3. I won't use the property in case I need to use it for something else > later on, instead I will > build a complete new system which will allow me to do all sorts of neat > things with controls > in case I need to in the future. > > May I refer you to Shamil's posting last Friday in this thread? > > > May I warn you about what is known as: > "Premature Optimization" > http://c2.com/cgi/wiki?PrematureOptimization > and > "Premature Generalization" > http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil > Have a look: > "Death by premature generalization" > http://ryanfarley.com/blog/archive/2004/04/30/570.aspx > > > -- > Stuart > > On 24 Feb 2009 at 13:27, Drew Wutka wrote: > >> Sorry to chime in here late...but if you use tags for a system wide >> process you completely eliminate the ability to use the tags on the fly >> for other purposes. >> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From DWUTKA at Marlow.com Tue Feb 24 16:58:08 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 16:58:08 -0600 Subject: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer In-Reply-To: <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> Message-ID: Not quite. 1. Need to have multiple values for a single value property for the controls. 2. There is a generic property (limited to 2048 characters, by the way), which can be used for anything...and can be used by anything. But using it for multiple purposes gets to be very hairy! 3. It took me less then 30 minutes to build a completely new system that does the same thing, just as fast, and it is event enabled (ie, changing the language on the fly updates ALL visible forms (and I'm assuming reports...) to the new language. Something you can't do as easily with the Tag. I'm not saying that using the .Tag property would be bad. I just think a class/collection method is better. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Tuesday, February 24, 2009 4:27 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer So let me get this clear. Your argument is: 1. I need to store a string value for each control. 2. Controls has been designed with a property specifically for this purpose. 3. I won't use the property in case I need to use it for something else later on, instead I will build a complete new system which will allow me to do all sorts of neat things with controls in case I need to in the future. May I refer you to Shamil's posting last Friday in this thread? May I warn you about what is known as: "Premature Optimization" http://c2.com/cgi/wiki?PrematureOptimization and "Premature Generalization" http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil Have a look: "Death by premature generalization" http://ryanfarley.com/blog/archive/2004/04/30/570.aspx -- Stuart The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Tue Feb 24 16:59:38 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 16:59:38 -0600 Subject: [AccessD] Find First in an Array? - The Solution Revisited -NowTag is the Answer In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> Message-ID: Did you look at the code I posted? I'm going to go back and look at what max posted code wise....kinda perused the earlier posts here.... Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Tuesday, February 24, 2009 4:55 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -NowTag is the Answer ...loud, long, clamoring applause!!!!!!!!!!! ...one of these days we're going to learn not to get jc into warmongering mode ...makes a mule look pliable, he does :) ...while there are many good things to be said of classes, the bottom line is that both solutions work equally well in my tests. ...and I can read max's tag code without twisting my neck all out of shape trying to follow it :) ...don't get me wrong, I like classes ...very useful tools ...but for this specific case, I like tags better ...and I fully admit that if I used classes from a framework as jc does, I'd probably see it different ...but I don't.. ...seems to me I recall way back when in the days of the bound wars, jc preaching the gospel about simplicity and using the tools Access gives you ...made a lot of sense then, makes a lot of sense now :) William The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwcolby at colbyconsulting.com Tue Feb 24 17:03:26 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 24 Feb 2009 18:03:26 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> Message-ID: <49A47CBE.5000306@colbyconsulting.com> LOL. No I think the argument is that the tag is NOT designed for this purpose, it is a general purpose property left over from the dark ages. It is used by nubee programmers, business owners etc who build their own systems, which most of us have had to come in and work on at one point or another in our illustrious careers. Given that it is used by nubees and business owners, who haven't a clue about proper programming techniques (though WE ARE SUPPOSED TO!!!), you cannot depend on it not to contain leftover junk that just may be critical. So to get in the habit of using the tag to store denormalized data is: A) Silly B) Possibly dangerous, depending on where the system had it's origins. C) Silly D) Silly and finally E) Silly. Stuart, we are supposed to be professionals. Excuse me for putting it quite so bluntly, but the tag is squarely in the domain of the amateur. Personally I do not care if you use it, nor if anyone else uses it, but to ridicule those who have much more powerful tools at their disposal and the knowledge to use them, is unprofessional in and of itself. As I said, if you love them, by all means use them. You will not find me using them for a LOT of very good reasons. I choose not to comment on Shamil's opinions. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > So let me get this clear. Your argument is: > > 1. I need to store a string value for each control. > > 2. Controls has been designed with a property specifically for this purpose. > > 3. I won't use the property in case I need to use it for something else later on, instead I will > build a complete new system which will allow me to do all sorts of neat things with controls > in case I need to in the future. > > May I refer you to Shamil's posting last Friday in this thread? > > > May I warn you about what is known as: > "Premature Optimization" > http://c2.com/cgi/wiki?PrematureOptimization > and > "Premature Generalization" > http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil > Have a look: > "Death by premature generalization" > http://ryanfarley.com/blog/archive/2004/04/30/570.aspx > > From jwcolby at colbyconsulting.com Tue Feb 24 17:15:09 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 24 Feb 2009 18:15:09 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com><49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg><49a14c9c.0a04d00a.0836.28b5@mx.google.com><49A1792E.4090802@colbyconsulting.com><49A2D002.5030204@colbyconsulting.com><49A2DCBF.4000809@colbyconsulting.com> <262BBEBB7F3C4F37A241CE8D554CFB30@XPS> Message-ID: <49A47F7D.6080801@colbyconsulting.com> I sense a "tag war" coming on... ;-) John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > Yes...it does. > > If you are using the tag property for EVERY control in every form, then > how do you use that same property for something else? > > You could copy the value out, but what if, during the process where the > tag is holding your value, it tries to use the tag for the translation? > It won't work right. > > Besides, one of the great purposes of a tag is that it will let you > store arbitrary information about a control at design time. Why waste > that functionality in an entire app, when you can 'translate' in other > ways that leave the tags alone? > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman > Sent: Tuesday, February 24, 2009 3:23 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited > - Now Tag is the Answer > > Drew, > > < process you completely eliminate the ability to use the tags on the fly > for other purposes. >> > > No you don't; code for manipulating tags to store multiple values has > been > floating around since A2 and has been discussed numerous times on this > list. > > Jim. > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Tuesday, February 24, 2009 2:27 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited > - > Now Tag is the Answer > > Sorry to chime in here late...but if you use tags for a system wide > process you completely eliminate the ability to use the tags on the fly > for other purposes. > > 300k in memory is nothing nowadays. If we were designing systems back > in the 80's and 90's, sure, but in today's world, most cell phones have > more computing power then a high end system in the early 90's. > > I didn't read every detail in the 'tag' solution, but I believe it > required saving the design of the forms. Using a class solution (and > using the Event driven method, so that translations can be changed by > the user) prevents constantly having to redesign every form. And leaves > the tags available for other purposes. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Monday, February 23, 2009 11:29 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited > - Now Tag is the Answer > > OK. But the whole point of the tag goes away when you have a wrapper > class. The purpose of a tag > is to contain "anything" that the developer wants for that form. Once I > have a wrapper class I can > simply create new properties of the class, with strong typing, etc. > > If you have a class you no longer need a tag, never mind a whole > collection of them. > > John W. Colby > www.ColbyConsulting.com > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI > Proprietary > and/or II-VI Business Sensitive material. If you are not the intended > recipient, please contact the sender immediately and destroy the > material in > its entirety, whether electronic or hard copy. You are notified that any > review, retransmission, copying, disclosure, dissemination, or other use > of, > or taking of any action in reliance upon this information by persons or > entities other than the intended recipient is prohibited. > > From DWUTKA at Marlow.com Tue Feb 24 17:17:56 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 17:17:56 -0600 Subject: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer In-Reply-To: <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> Message-ID: Ok, I think Max emailed out his database, I didn't see any specific code. But the concept was initially to put all the translations into the captions .Tag property, in a 'master' copy, and then create a language specific database. It's a great idea (good job Max!). But there are draw backs: 1. Your languages are in the Tag property. (Think that's not a drawback? Ask someone to proof the translations, or add new translations..... you either go through each and every control, find something to run through them all, etc. having the translations in the table makes it easier for changes, additions, and proofing). 2. 2048 character limit. Sure, for your command buttons and labels on your forms, no big deal. If you have a more paragraph style 'label' on a report (or even a form for that matter, but I would assume they would be more common on a report), you're going to hit that limit. 3. No 'event' driven changes. With the example I posted, the 'changing' form (Form1) could easily be setup as a Menu bar. Allowing anyone sitting at a console to switch to whatever language they want. And instead of having to find all the open forms/reports, the raised event would change everything automatically. (Without having to open and close the forms) But again, it is a great idea. (Kudos Max!) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Tuesday, February 24, 2009 4:27 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer So let me get this clear. Your argument is: 1. I need to store a string value for each control. 2. Controls has been designed with a property specifically for this purpose. 3. I won't use the property in case I need to use it for something else later on, instead I will build a complete new system which will allow me to do all sorts of neat things with controls in case I need to in the future. May I refer you to Shamil's posting last Friday in this thread? May I warn you about what is known as: "Premature Optimization" http://c2.com/cgi/wiki?PrematureOptimization and "Premature Generalization" http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil Have a look: "Death by premature generalization" http://ryanfarley.com/blog/archive/2004/04/30/570.aspx -- Stuart The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwcolby at colbyconsulting.com Tue Feb 24 17:20:07 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 24 Feb 2009 18:20:07 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> Message-ID: <49A480A7.1010400@colbyconsulting.com> ROTFLMAO. Hmm, lets throw THIS thing in the tag too. OK, that worked so well let's throw THAT thing in the tag. Ohhhh, wait a minute, how 'bout this other thing over there... Enjoy yourself, I will stick to the tools that Access gave me - like collections, and classes, containers for encapsulating code, all of that kind of stuff that programmers have been begging for for decades. Now we have them, let's store the world in the tag property. Hmmmm... OK, YOU do that! ;-) John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...loud, long, clamoring applause!!!!!!!!!!! > > ...one of these days we're going to learn not to get jc into warmongering > mode ...makes a mule look pliable, he does :) > > ...while there are many good things to be said of classes, the bottom line > is that both solutions work equally well in my tests. > > ...and I can read max's tag code without twisting my neck all out of shape > trying to follow it :) > > ...don't get me wrong, I like classes ...very useful tools ...but for this > specific case, I like tags better ...and I fully admit that if I used > classes from a framework as jc does, I'd probably see it different ...but I > don't.. > > ...seems to me I recall way back when in the days of the bound wars, jc > preaching the gospel about simplicity and using the tools Access gives you > ...made a lot of sense then, makes a lot of sense now :) > > William > > -------------------------------------------------- > From: "Stuart McLachlan" > Sent: Tuesday, February 24, 2009 5:26 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -Now > Tag is the Answer > >> So let me get this clear. Your argument is: >> >> 1. I need to store a string value for each control. >> >> 2. Controls has been designed with a property specifically for this >> purpose. >> >> 3. I won't use the property in case I need to use it for something else >> later on, instead I will >> build a complete new system which will allow me to do all sorts of neat >> things with controls >> in case I need to in the future. >> >> May I refer you to Shamil's posting last Friday in this thread? >> >> >> May I warn you about what is known as: >> "Premature Optimization" >> http://c2.com/cgi/wiki?PrematureOptimization >> and >> "Premature Generalization" >> http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil >> Have a look: >> "Death by premature generalization" >> http://ryanfarley.com/blog/archive/2004/04/30/570.aspx >> >> >> -- >> Stuart >> >> On 24 Feb 2009 at 13:27, Drew Wutka wrote: >> >>> Sorry to chime in here late...but if you use tags for a system wide >>> process you completely eliminate the ability to use the tags on the fly >>> for other purposes. >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From DWUTKA at Marlow.com Tue Feb 24 17:21:34 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 17:21:34 -0600 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <49A47F7D.6080801@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A03291.7040904@colbyconsulting.com>, <49a13f12.0707d00a.614b.ffff9abf@mx.google.com><49A1D5B8.27.77FEEC8@stuart.lexacorp.com.pg><49a14c9c.0a04d00a.0836.28b5@mx.google.com><49A1792E.4090802@colbyconsulting.com><49A2D002.5030204@colbyconsulting.com><49A2DCBF.4000809@colbyconsulting.com> <262BBEBB7F3C4F37A241CE8D554CFB30@XPS> <49A47F7D.6080801@colbyconsulting.com> Message-ID: LOL. Nah. It's a good idea. I think you and I agree that the Class/Collection method is more powerful and capable. It doesn't make the Tag method 'wrong'. There are drawbacks, which I mentioned in a post a few minutes ago, but it doesn't make it a bad idea. There are drawbacks to the class/collection method (the big one is that if you don't have a firm grasp of classes and collections, you'd be putting a process you don't really understand into a production app you own...). I haven't gotten any feedback on my example though.... (Rocky commented on OT, posted it there first by accident). Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, February 24, 2009 5:15 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer I sense a "tag war" coming on... ;-) John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > Yes...it does. > > If you are using the tag property for EVERY control in every form, then > how do you use that same property for something else? > > You could copy the value out, but what if, during the process where the > tag is holding your value, it tries to use the tag for the translation? > It won't work right. > > Besides, one of the great purposes of a tag is that it will let you > store arbitrary information about a control at design time. Why waste > that functionality in an entire app, when you can 'translate' in other > ways that leave the tags alone? > > Drew > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwcolby at colbyconsulting.com Tue Feb 24 17:24:49 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 24 Feb 2009 18:24:49 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> Message-ID: <49A481C1.6020103@colbyconsulting.com> Now Drew... Storing the world in a single value property A limit of 2K total storage Can be used by anybody (including some folks with no business programming) Who knows what might be trying to read / write this single value property Can build a replacement in minutes > I'm not saying that using the .Tag property would be bad. No guts at all Drew. 8-) John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > Not quite. > > 1. Need to have multiple values for a single value property for the > controls. > > 2. There is a generic property (limited to 2048 characters, by the > way), which can be used for anything...and can be used by anything. But > using it for multiple purposes gets to be very hairy! > > 3. It took me less then 30 minutes to build a completely new system > that does the same thing, just as fast, and it is event enabled (ie, > changing the language on the fly updates ALL visible forms (and I'm > assuming reports...) to the new language. Something you can't do as > easily with the Tag. > > I'm not saying that using the .Tag property would be bad. I just think > a class/collection method is better. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan > Sent: Tuesday, February 24, 2009 4:27 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited > -Now Tag is the Answer > > So let me get this clear. Your argument is: > > 1. I need to store a string value for each control. > > 2. Controls has been designed with a property specifically for this > purpose. > > 3. I won't use the property in case I need to use it for something else > later on, instead I will > build a complete new system which will allow me to do all sorts of neat > things with controls > in case I need to in the future. > > May I refer you to Shamil's posting last Friday in this thread? > > > May I warn you about what is known as: > "Premature Optimization" > http://c2.com/cgi/wiki?PrematureOptimization > and > "Premature Generalization" > http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil > Have a look: > "Death by premature generalization" > http://ryanfarley.com/blog/archive/2004/04/30/570.aspx > > From DWUTKA at Marlow.com Tue Feb 24 17:26:37 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 17:26:37 -0600 Subject: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer In-Reply-To: <49A480A7.1010400@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49A480A7.1010400@colbyconsulting.com> Message-ID: That is the other failing point of the Tag property. If you use it for one purpose, fine. But if you become dependent on it, the amount of work required to maintain those 'multiple' values is a stretch. Tags really do server a good purpose. For example, let's say I want to have specific fields required in a form, that aren't necessarily required in the tables. You can 'tag' the controls you want required at design time, without having to come up with a special naming structure or naming all the required fields in code. But if I want to tag those 'required' fields, and translate them too, it would be more complicated. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, February 24, 2009 5:20 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer ROTFLMAO. Hmm, lets throw THIS thing in the tag too. OK, that worked so well let's throw THAT thing in the tag. Ohhhh, wait a minute, how 'bout this other thing over there... Enjoy yourself, I will stick to the tools that Access gave me - like collections, and classes, containers for encapsulating code, all of that kind of stuff that programmers have been begging for for decades. Now we have them, let's store the world in the tag property. Hmmmm... OK, YOU do that! ;-) John W. Colby www.ColbyConsulting.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From wdhindman at dejpolsystems.com Tue Feb 24 17:37:27 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Tue, 24 Feb 2009 18:37:27 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49A47CBE.5000306@colbyconsulting.com> Message-ID: ...sigh ...c'mon jc ...you're whole argument has become pros use classes, nubees use tags ...which is not only insulting but simply not true ...I can take you on a guided tour of access pro sites offering tag solutions/code. ...now as it happens, I've never used tags before ...just seemed like there was always an easier way ...but then I've never written classes in access either ...but my apps still work and the clients keep calling ...which, insults aside, is the bottom line for all of us. William -------------------------------------------------- From: "jwcolby" Sent: Tuesday, February 24, 2009 6:03 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer > LOL. No I think the argument is that the tag is NOT designed for this > purpose, it is a general > purpose property left over from the dark ages. It is used by nubee > programmers, business owners etc > who build their own systems, which most of us have had to come in and work > on at one point or > another in our illustrious careers. Given that it is used by nubees and > business owners, who > haven't a clue about proper programming techniques (though WE ARE SUPPOSED > TO!!!), you cannot depend > on it not to contain leftover junk that just may be critical. So to get > in the habit of using the > tag to store denormalized data is: > > A) Silly > B) Possibly dangerous, depending on where the system had it's origins. > C) Silly > D) Silly > > and finally > > E) Silly. > > Stuart, we are supposed to be professionals. Excuse me for putting it > quite so bluntly, but the tag > is squarely in the domain of the amateur. Personally I do not care if you > use it, nor if anyone > else uses it, but to ridicule those who have much more powerful tools at > their disposal and the > knowledge to use them, is unprofessional in and of itself. > > As I said, if you love them, by all means use them. You will not find me > using them for a LOT of > very good reasons. > > I choose not to comment on Shamil's opinions. > > John W. Colby > www.ColbyConsulting.com > > > Stuart McLachlan wrote: >> So let me get this clear. Your argument is: >> >> 1. I need to store a string value for each control. >> >> 2. Controls has been designed with a property specifically for this >> purpose. >> >> 3. I won't use the property in case I need to use it for something else >> later on, instead I will >> build a complete new system which will allow me to do all sorts of neat >> things with controls >> in case I need to in the future. >> >> May I refer you to Shamil's posting last Friday in this thread? >> >> >> May I warn you about what is known as: >> "Premature Optimization" >> http://c2.com/cgi/wiki?PrematureOptimization >> and >> "Premature Generalization" >> http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil >> Have a look: >> "Death by premature generalization" >> http://ryanfarley.com/blog/archive/2004/04/30/570.aspx >> >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From wdhindman at dejpolsystems.com Tue Feb 24 17:38:17 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Tue, 24 Feb 2009 18:38:17 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited -NowTag is the Answer References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> Message-ID: ...you REALLY need to look at what max did ...you're way off base. William -------------------------------------------------- From: "Drew Wutka" Sent: Tuesday, February 24, 2009 6:17 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -NowTag is the Answer > Ok, I think Max emailed out his database, I didn't see any specific > code. But the concept was initially to put all the translations into > the captions .Tag property, in a 'master' copy, and then create a > language specific database. > > It's a great idea (good job Max!). But there are draw backs: > > 1. Your languages are in the Tag property. (Think that's not a > drawback? Ask someone to proof the translations, or add new > translations..... you either go through each and every control, find > something to run through them all, etc. having the translations in the > table makes it easier for changes, additions, and proofing). > > 2. 2048 character limit. Sure, for your command buttons and labels on > your forms, no big deal. If you have a more paragraph style 'label' on > a report (or even a form for that matter, but I would assume they would > be more common on a report), you're going to hit that limit. > > 3. No 'event' driven changes. With the example I posted, the > 'changing' form (Form1) could easily be setup as a Menu bar. Allowing > anyone sitting at a console to switch to whatever language they want. > And instead of having to find all the open forms/reports, the raised > event would change everything automatically. (Without having to open and > close the forms) > > But again, it is a great idea. (Kudos Max!) > > Drew > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan > Sent: Tuesday, February 24, 2009 4:27 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited > -Now Tag is the Answer > > So let me get this clear. Your argument is: > > 1. I need to store a string value for each control. > > 2. Controls has been designed with a property specifically for this > purpose. > > 3. I won't use the property in case I need to use it for something else > later on, instead I will > build a complete new system which will allow me to do all sorts of neat > things with controls > in case I need to in the future. > > May I refer you to Shamil's posting last Friday in this thread? > > > May I warn you about what is known as: > "Premature Optimization" > http://c2.com/cgi/wiki?PrematureOptimization > and > "Premature Generalization" > http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil > Have a look: > "Death by premature generalization" > http://ryanfarley.com/blog/archive/2004/04/30/570.aspx > > > -- > Stuart > > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy the > material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended recipient > is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From DWUTKA at Marlow.com Tue Feb 24 17:42:21 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 17:42:21 -0600 Subject: [AccessD] Find First in an Array? - The Solution Revisited-NowTag is the Answer In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> Message-ID: Well somebody send it to me! Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Tuesday, February 24, 2009 5:38 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited-NowTag is the Answer ...you REALLY need to look at what max did ...you're way off base. William -------------------------------------------------- From: "Drew Wutka" Sent: Tuesday, February 24, 2009 6:17 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -NowTag is the Answer > Ok, I think Max emailed out his database, I didn't see any specific > code. But the concept was initially to put all the translations into > the captions .Tag property, in a 'master' copy, and then create a > language specific database. > > It's a great idea (good job Max!). But there are draw backs: > > 1. Your languages are in the Tag property. (Think that's not a > drawback? Ask someone to proof the translations, or add new > translations..... you either go through each and every control, find > something to run through them all, etc. having the translations in the > table makes it easier for changes, additions, and proofing). > > 2. 2048 character limit. Sure, for your command buttons and labels on > your forms, no big deal. If you have a more paragraph style 'label' on > a report (or even a form for that matter, but I would assume they would > be more common on a report), you're going to hit that limit. > > 3. No 'event' driven changes. With the example I posted, the > 'changing' form (Form1) could easily be setup as a Menu bar. Allowing > anyone sitting at a console to switch to whatever language they want. > And instead of having to find all the open forms/reports, the raised > event would change everything automatically. (Without having to open and > close the forms) > > But again, it is a great idea. (Kudos Max!) > > Drew > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan > Sent: Tuesday, February 24, 2009 4:27 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited > -Now Tag is the Answer > > So let me get this clear. Your argument is: > > 1. I need to store a string value for each control. > > 2. Controls has been designed with a property specifically for this > purpose. > > 3. I won't use the property in case I need to use it for something else > later on, instead I will > build a complete new system which will allow me to do all sorts of neat > things with controls > in case I need to in the future. > > May I refer you to Shamil's posting last Friday in this thread? > > > May I warn you about what is known as: > "Premature Optimization" > http://c2.com/cgi/wiki?PrematureOptimization > and > "Premature Generalization" > http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil > Have a look: > "Death by premature generalization" > http://ryanfarley.com/blog/archive/2004/04/30/570.aspx > > > -- > Stuart > > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy the > material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended recipient > is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From wdhindman at dejpolsystems.com Tue Feb 24 17:45:33 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Tue, 24 Feb 2009 18:45:33 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49A480A7.1010400@colbyconsulting.com> Message-ID: <152660DC29A140FE915836407C4EE277@jislaptopdev> ...no jc, lets not ...I've never used tags nor written classes for any of my apps ...I have zero problem in limiting the use to translations ...and for my needs they will work just fine and the user interface is great (Drew obviously has not seen max's zip). ...now if I ever become a class addict and can read your code half as easily as I can read max's, then I may well revisit the translations ...but for today, max's simple dao and tags work best for me ...if that makes me a nubee in your eyes, so be it :) William ...nubee extraordinaire! -------------------------------------------------- From: "jwcolby" Sent: Tuesday, February 24, 2009 6:20 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer > ROTFLMAO. > > Hmm, lets throw THIS thing in the tag too. OK, that worked so well let's > throw THAT thing in the > tag. Ohhhh, wait a minute, how 'bout this other thing over there... > > Enjoy yourself, I will stick to the tools that Access gave me - like > collections, and classes, > containers for encapsulating code, all of that kind of stuff that > programmers have been begging for > for decades. > > Now we have them, let's store the world in the tag property. > > Hmmmm... > > OK, YOU do that! > > ;-) > > John W. Colby > www.ColbyConsulting.com > > > William Hindman wrote: >> ...loud, long, clamoring applause!!!!!!!!!!! >> >> ...one of these days we're going to learn not to get jc into warmongering >> mode ...makes a mule look pliable, he does :) >> >> ...while there are many good things to be said of classes, the bottom >> line >> is that both solutions work equally well in my tests. >> >> ...and I can read max's tag code without twisting my neck all out of >> shape >> trying to follow it :) >> >> ...don't get me wrong, I like classes ...very useful tools ...but for >> this >> specific case, I like tags better ...and I fully admit that if I used >> classes from a framework as jc does, I'd probably see it different ...but >> I >> don't.. >> >> ...seems to me I recall way back when in the days of the bound wars, jc >> preaching the gospel about simplicity and using the tools Access gives >> you >> ...made a lot of sense then, makes a lot of sense now :) >> >> William >> >> -------------------------------------------------- >> From: "Stuart McLachlan" >> Sent: Tuesday, February 24, 2009 5:26 PM >> To: "Access Developers discussion and problem solving" >> >> Subject: Re: [AccessD] Find First in an Array? - The Solution >> Revisited -Now >> Tag is the Answer >> >>> So let me get this clear. Your argument is: >>> >>> 1. I need to store a string value for each control. >>> >>> 2. Controls has been designed with a property specifically for this >>> purpose. >>> >>> 3. I won't use the property in case I need to use it for something else >>> later on, instead I will >>> build a complete new system which will allow me to do all sorts of neat >>> things with controls >>> in case I need to in the future. >>> >>> May I refer you to Shamil's posting last Friday in this thread? >>> >>> >>> May I warn you about what is known as: >>> "Premature Optimization" >>> http://c2.com/cgi/wiki?PrematureOptimization >>> and >>> "Premature Generalization" >>> http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil >>> Have a look: >>> "Death by premature generalization" >>> http://ryanfarley.com/blog/archive/2004/04/30/570.aspx >>> >>> >>> -- >>> Stuart >>> >>> On 24 Feb 2009 at 13:27, Drew Wutka wrote: >>> >>>> Sorry to chime in here late...but if you use tags for a system wide >>>> process you completely eliminate the ability to use the tags on the fly >>>> for other purposes. >>>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From wdhindman at dejpolsystems.com Tue Feb 24 17:51:16 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Tue, 24 Feb 2009 18:51:16 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49A481C1.6020103@colbyconsulting.com> Message-ID: <35C781CAC4C145C18E608E6B22571E39@jislaptopdev> ...will you guys get a room already!!!!! William -------------------------------------------------- From: "jwcolby" Sent: Tuesday, February 24, 2009 6:24 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer > Now Drew... > > Storing the world in a single value property > A limit of 2K total storage > Can be used by anybody (including some folks with no business programming) > Who knows what might be trying to read / write this single value property > Can build a replacement in minutes > > > I'm not saying that using the .Tag property would be bad. > > No guts at all Drew. > > 8-) > > John W. Colby > www.ColbyConsulting.com > > > Drew Wutka wrote: >> Not quite. >> >> 1. Need to have multiple values for a single value property for the >> controls. >> >> 2. There is a generic property (limited to 2048 characters, by the >> way), which can be used for anything...and can be used by anything. But >> using it for multiple purposes gets to be very hairy! >> >> 3. It took me less then 30 minutes to build a completely new system >> that does the same thing, just as fast, and it is event enabled (ie, >> changing the language on the fly updates ALL visible forms (and I'm >> assuming reports...) to the new language. Something you can't do as >> easily with the Tag. >> >> I'm not saying that using the .Tag property would be bad. I just think >> a class/collection method is better. >> >> Drew >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart >> McLachlan >> Sent: Tuesday, February 24, 2009 4:27 PM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited >> -Now Tag is the Answer >> >> So let me get this clear. Your argument is: >> >> 1. I need to store a string value for each control. >> >> 2. Controls has been designed with a property specifically for this >> purpose. >> >> 3. I won't use the property in case I need to use it for something else >> later on, instead I will >> build a complete new system which will allow me to do all sorts of neat >> things with controls >> in case I need to in the future. >> >> May I refer you to Shamil's posting last Friday in this thread? >> >> >> May I warn you about what is known as: >> "Premature Optimization" >> http://c2.com/cgi/wiki?PrematureOptimization >> and >> "Premature Generalization" >> http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil >> Have a look: >> "Death by premature generalization" >> http://ryanfarley.com/blog/archive/2004/04/30/570.aspx >> >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From DWUTKA at Marlow.com Tue Feb 24 17:52:05 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 17:52:05 -0600 Subject: [AccessD] Find First in an Array? - The Solution Revisited-NowTag is the Answer In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> Message-ID: And, did you look at my example? It shouldn't throw your head in a twist to understand it..... No comments on this list about it! (I do have a cold still... ) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Tuesday, February 24, 2009 5:38 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited-NowTag is the Answer ...you REALLY need to look at what max did ...you're way off base. William The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Tue Feb 24 17:52:26 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 17:52:26 -0600 Subject: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer In-Reply-To: <49A481C1.6020103@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49A481C1.6020103@colbyconsulting.com> Message-ID: You are just trying to pick a fight, eh? LOL I just will not say that .Tags are not useful, or 'bad practice'. They aren't silly. Personally, I rarely build Access interfaces. 99% of what I do is Web front ends. That doesn't make Access interfaces 'archaic' or silly. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, February 24, 2009 5:25 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer Now Drew... Storing the world in a single value property A limit of 2K total storage Can be used by anybody (including some folks with no business programming) Who knows what might be trying to read / write this single value property Can build a replacement in minutes > I'm not saying that using the .Tag property would be bad. No guts at all Drew. 8-) John W. Colby www.ColbyConsulting.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Tue Feb 24 17:54:10 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 17:54:10 -0600 Subject: [AccessD] Find First in an Array? - The Solution Revisited -NowTag is the Answer In-Reply-To: <152660DC29A140FE915836407C4EE277@jislaptopdev> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg><49A480A7.1010400@colbyconsulting.com> <152660DC29A140FE915836407C4EE277@jislaptopdev> Message-ID: No, I haven't seen his Zip yet.... send it please. And did you look at mine: http://www.marlow.com/translate.zip The code is hardly complicated. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Tuesday, February 24, 2009 5:46 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -NowTag is the Answer ...no jc, lets not ...I've never used tags nor written classes for any of my apps ...I have zero problem in limiting the use to translations ...and for my needs they will work just fine and the user interface is great (Drew obviously has not seen max's zip). ...now if I ever become a class addict and can read your code half as easily as I can read max's, then I may well revisit the translations ...but for today, max's simple dao and tags work best for me ...if that makes me a nubee in your eyes, so be it :) William ...nubee extraordinaire! The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From wdhindman at dejpolsystems.com Tue Feb 24 17:55:23 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Tue, 24 Feb 2009 18:55:23 -0500 Subject: [AccessD] Find First in an Array? - The SolutionRevisited-NowTag is the Answer References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> Message-ID: <3F7D5ABDFDC94085B943FB1CEF2BE668@jislaptopdev> ...ok already ...its on its way :) William -------------------------------------------------- From: "Drew Wutka" Sent: Tuesday, February 24, 2009 6:42 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Find First in an Array? - The SolutionRevisited-NowTag is the Answer > Well somebody send it to me! > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William > Hindman > Sent: Tuesday, February 24, 2009 5:38 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution > Revisited-NowTag is the Answer > > ...you REALLY need to look at what max did ...you're way off base. > > William > > -------------------------------------------------- > From: "Drew Wutka" > Sent: Tuesday, February 24, 2009 6:17 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] Find First in an Array? - The Solution > Revisited -NowTag is the Answer > >> Ok, I think Max emailed out his database, I didn't see any specific >> code. But the concept was initially to put all the translations into >> the captions .Tag property, in a 'master' copy, and then create a >> language specific database. >> >> It's a great idea (good job Max!). But there are draw backs: >> >> 1. Your languages are in the Tag property. (Think that's not a >> drawback? Ask someone to proof the translations, or add new >> translations..... you either go through each and every control, find >> something to run through them all, etc. having the translations in > the >> table makes it easier for changes, additions, and proofing). >> >> 2. 2048 character limit. Sure, for your command buttons and labels > on >> your forms, no big deal. If you have a more paragraph style 'label' > on >> a report (or even a form for that matter, but I would assume they > would >> be more common on a report), you're going to hit that limit. >> >> 3. No 'event' driven changes. With the example I posted, the >> 'changing' form (Form1) could easily be setup as a Menu bar. Allowing >> anyone sitting at a console to switch to whatever language they want. >> And instead of having to find all the open forms/reports, the raised >> event would change everything automatically. (Without having to open > and >> close the forms) >> >> But again, it is a great idea. (Kudos Max!) >> >> Drew >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart >> McLachlan >> Sent: Tuesday, February 24, 2009 4:27 PM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Find First in an Array? - The Solution > Revisited >> -Now Tag is the Answer >> >> So let me get this clear. Your argument is: >> >> 1. I need to store a string value for each control. >> >> 2. Controls has been designed with a property specifically for this >> purpose. >> >> 3. I won't use the property in case I need to use it for something > else >> later on, instead I will >> build a complete new system which will allow me to do all sorts of > neat >> things with controls >> in case I need to in the future. >> >> May I refer you to Shamil's posting last Friday in this thread? >> >> >> May I warn you about what is known as: >> "Premature Optimization" >> http://c2.com/cgi/wiki?PrematureOptimization >> and >> "Premature Generalization" >> http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil >> Have a look: >> "Death by premature generalization" >> http://ryanfarley.com/blog/archive/2004/04/30/570.aspx >> >> >> -- >> Stuart >> >> The information contained in this transmission is intended only for > the >> person or entity to which it is addressed and may contain II-VI >> Proprietary and/or II-VI Business Sensitive material. If you are not > the >> intended recipient, please contact the sender immediately and destroy > the >> material in its entirety, whether electronic or hard copy. You are >> notified that any review, retransmission, copying, disclosure, >> dissemination, or other use of, or taking of any action in reliance > upon >> this information by persons or entities other than the intended > recipient >> is prohibited. >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy the > material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended recipient > is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From rockysmolin at bchacc.com Tue Feb 24 18:04:20 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 24 Feb 2009 16:04:20 -0800 Subject: [AccessD] Find First in an Array? - The Solution Revisited -NowTag is the Answer In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> Message-ID: <0BF1F6E2B5824F31BE6DB53BC98036D3@HAL9005> One of those objections - proofing the translations - he actually designed around with some code that updates the tags from the table. That's because one of my requirements was to be able to add a new language by adding a field to the table and then sending the table to the translator. So when the table comes back with the translations, run the update and you're done. So you don't actually ever have to physically mess with the tags. I don't think I have any control translations that are over 50 characters or so. In fact I just looked and the longest concatenation of the 5 languages is 638 characters., so the 2048 character limit is not too much of a constraint. I could do at least 15 languages that way. Heaven forefend. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, February 24, 2009 3:18 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -NowTag is the Answer Ok, I think Max emailed out his database, I didn't see any specific code. But the concept was initially to put all the translations into the captions .Tag property, in a 'master' copy, and then create a language specific database. It's a great idea (good job Max!). But there are draw backs: 1. Your languages are in the Tag property. (Think that's not a drawback? Ask someone to proof the translations, or add new translations..... you either go through each and every control, find something to run through them all, etc. having the translations in the table makes it easier for changes, additions, and proofing). 2. 2048 character limit. Sure, for your command buttons and labels on your forms, no big deal. If you have a more paragraph style 'label' on a report (or even a form for that matter, but I would assume they would be more common on a report), you're going to hit that limit. 3. No 'event' driven changes. With the example I posted, the 'changing' form (Form1) could easily be setup as a Menu bar. Allowing anyone sitting at a console to switch to whatever language they want. And instead of having to find all the open forms/reports, the raised event would change everything automatically. (Without having to open and close the forms) But again, it is a great idea. (Kudos Max!) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Tuesday, February 24, 2009 4:27 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer So let me get this clear. Your argument is: 1. I need to store a string value for each control. 2. Controls has been designed with a property specifically for this purpose. 3. I won't use the property in case I need to use it for something else later on, instead I will build a complete new system which will allow me to do all sorts of neat things with controls in case I need to in the future. May I refer you to Shamil's posting last Friday in this thread? May I warn you about what is known as: "Premature Optimization" http://c2.com/cgi/wiki?PrematureOptimization and "Premature Generalization" http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil Have a look: "Death by premature generalization" http://ryanfarley.com/blog/archive/2004/04/30/570.aspx -- Stuart The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From DWUTKA at Marlow.com Tue Feb 24 18:11:36 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 18:11:36 -0600 Subject: [AccessD] Find First in an Array? - The Solution Revisited-NowTag is the Answer In-Reply-To: <0BF1F6E2B5824F31BE6DB53BC98036D3@HAL9005> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <0BF1F6E2B5824F31BE6DB53BC98036D3@HAL9005> Message-ID: Yes, I've seen the example. Sorry I changed your table structure for my example, it's a habit to want to spread it out more. Technically, there should be a language table with the font used, and instead of the Language name in the controls table, it should be a key.... Either way... LOL. I've got some comments on Max's example though, will post in a new thread. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Tuesday, February 24, 2009 6:04 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited-NowTag is the Answer One of those objections - proofing the translations - he actually designed around with some code that updates the tags from the table. That's because one of my requirements was to be able to add a new language by adding a field to the table and then sending the table to the translator. So when the table comes back with the translations, run the update and you're done. So you don't actually ever have to physically mess with the tags. I don't think I have any control translations that are over 50 characters or so. In fact I just looked and the longest concatenation of the 5 languages is 638 characters., so the 2048 character limit is not too much of a constraint. I could do at least 15 languages that way. Heaven forefend. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, February 24, 2009 3:18 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -NowTag is the Answer Ok, I think Max emailed out his database, I didn't see any specific code. But the concept was initially to put all the translations into the captions .Tag property, in a 'master' copy, and then create a language specific database. The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From rockysmolin at bchacc.com Tue Feb 24 18:11:55 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 24 Feb 2009 16:11:55 -0800 Subject: [AccessD] Find First in an Array? - The SolutionRevisited-NowTag is the Answer In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> Message-ID: <7A2AA343B6784BC99B9486D98ED73CE5@HAL9005> Best address? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, February 24, 2009 3:42 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The SolutionRevisited-NowTag is the Answer Well somebody send it to me! Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Tuesday, February 24, 2009 5:38 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited-NowTag is the Answer ...you REALLY need to look at what max did ...you're way off base. William -------------------------------------------------- From: "Drew Wutka" Sent: Tuesday, February 24, 2009 6:17 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -NowTag is the Answer > Ok, I think Max emailed out his database, I didn't see any specific > code. But the concept was initially to put all the translations into > the captions .Tag property, in a 'master' copy, and then create a > language specific database. > > It's a great idea (good job Max!). But there are draw backs: > > 1. Your languages are in the Tag property. (Think that's not a > drawback? Ask someone to proof the translations, or add new > translations..... you either go through each and every control, find > something to run through them all, etc. having the translations in the > table makes it easier for changes, additions, and proofing). > > 2. 2048 character limit. Sure, for your command buttons and labels on > your forms, no big deal. If you have a more paragraph style 'label' on > a report (or even a form for that matter, but I would assume they would > be more common on a report), you're going to hit that limit. > > 3. No 'event' driven changes. With the example I posted, the > 'changing' form (Form1) could easily be setup as a Menu bar. Allowing > anyone sitting at a console to switch to whatever language they want. > And instead of having to find all the open forms/reports, the raised > event would change everything automatically. (Without having to open and > close the forms) > > But again, it is a great idea. (Kudos Max!) > > Drew > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan > Sent: Tuesday, February 24, 2009 4:27 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited > -Now Tag is the Answer > > So let me get this clear. Your argument is: > > 1. I need to store a string value for each control. > > 2. Controls has been designed with a property specifically for this > purpose. > > 3. I won't use the property in case I need to use it for something else > later on, instead I will > build a complete new system which will allow me to do all sorts of neat > things with controls > in case I need to in the future. > > May I refer you to Shamil's posting last Friday in this thread? > > > May I warn you about what is known as: > "Premature Optimization" > http://c2.com/cgi/wiki?PrematureOptimization > and > "Premature Generalization" > http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil > Have a look: > "Death by premature generalization" > http://ryanfarley.com/blog/archive/2004/04/30/570.aspx > > > -- > Stuart > > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy the > material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended recipient > is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Tue Feb 24 18:14:16 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Tue, 24 Feb 2009 16:14:16 -0800 Subject: [AccessD] Find First in an Array? - The SolutionRevisited-NowTag is the Answer In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg><0BF1F6E2B5824F31BE6DB53BC98036D3@HAL9005> Message-ID: <7B331FB537DF47A7B86421B3AF71938A@HAL9005> Hey, I may not be the world's most sophisticated Access programmer but I ask good questions. Look at the legs on this thread! Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, February 24, 2009 4:12 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The SolutionRevisited-NowTag is the Answer Yes, I've seen the example. Sorry I changed your table structure for my example, it's a habit to want to spread it out more. Technically, there should be a language table with the font used, and instead of the Language name in the controls table, it should be a key.... Either way... LOL. I've got some comments on Max's example though, will post in a new thread. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Tuesday, February 24, 2009 6:04 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited-NowTag is the Answer One of those objections - proofing the translations - he actually designed around with some code that updates the tags from the table. That's because one of my requirements was to be able to add a new language by adding a field to the table and then sending the table to the translator. So when the table comes back with the translations, run the update and you're done. So you don't actually ever have to physically mess with the tags. I don't think I have any control translations that are over 50 characters or so. In fact I just looked and the longest concatenation of the 5 languages is 638 characters., so the 2048 character limit is not too much of a constraint. I could do at least 15 languages that way. Heaven forefend. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, February 24, 2009 3:18 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -NowTag is the Answer Ok, I think Max emailed out his database, I didn't see any specific code. But the concept was initially to put all the translations into the captions .Tag property, in a 'master' copy, and then create a language specific database. The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Tue Feb 24 18:15:50 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 24 Feb 2009 19:15:50 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49A47CBE.5000306@colbyconsulting.com> Message-ID: <49A48DB6.2040806@colbyconsulting.com> Not at all William, my argument is that if you are capable of using collections then tags quickly become a bad idea. Not a "not good" idea, a BAD idea, for all the reasons I have mentioned. YOU would not even consider using a single field in a table to store multiple unrelated things, and yet you don't bat an eye at doing it with a tag. You have to pack it, You gotta load it, you gotta unpack it, you gotta use it. You gotta see what is in there, you have to search for stuff. ICK!!! I have to do the same thing, but I don't use a tag to do so, it simply makes no sense. William, I used tags, more than anyone in AccessD, I would bet a paycheck on that. I wrote some ungodly code to do that packing, unpacking using etc. I wrote entire systems to make it easy to see the stuff I was packing in there. It worked. It was ugly. I would NEVER do it again. But I have the ability to use other more powerful tools. If you don't have that ability, I would HIGHLY suggest that you spend the time to learn more powerful tools rather than take the "easy way" because while it may be easy now, it will get ugly REALLY quick!!! Just an opinion from someone who has been there. And yes, it is just my opinion. John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...sigh ...c'mon jc ...you're whole argument has become pros use classes, > nubees use tags ...which is not only insulting but simply not true ...I can > take you on a guided tour of access pro sites offering tag solutions/code. > > ...now as it happens, I've never used tags before ...just seemed like there > was always an easier way ...but then I've never written classes in access > either ...but my apps still work and the clients keep calling ...which, > insults aside, is the bottom line for all of us. > > William From jwcolby at colbyconsulting.com Tue Feb 24 18:17:05 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 24 Feb 2009 19:17:05 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited-NowTag is the Answer In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> Message-ID: <49A48E01.40402@colbyconsulting.com> I'll be looking at it Drew. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > And, did you look at my example? It shouldn't throw your head in a > twist to understand it..... > > No comments on this list about it! (I do have a cold > still... ) > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William > Hindman > Sent: Tuesday, February 24, 2009 5:38 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution > Revisited-NowTag is the Answer > > ...you REALLY need to look at what max did ...you're way off base. > > William > > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > > From DWUTKA at Marlow.com Tue Feb 24 18:17:53 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 18:17:53 -0600 Subject: [AccessD] Max's Tag solution Message-ID: First of all, GREAT JOB Max. Two comments for you. 1. In your 'sGetLanguageCaptions' code, you can simplify your code by using Split, instead of searching through the string: Private Sub sGetLanguageCaptions() ' set the caption based on the language selected where language value is held in glngLangauge variable Dim ctl As Control, strCaption As String, lng As Long, str As String Dim strArray() As String For Each ctl In Me.Controls If ctl.ControlType = acLabel And Len(ctl.Tag) > 1 Then strArray = Split(ctl.Tag, "+") ctl.Caption = strArray(glngLanguage - 1) End If Next ctl End Sub 2. The delimiter should be a non-typable character. You never know when a typable character will be used in a caption. In your sample, you used the plus sign. If a caption read: 'Credits+Debits' it would add another 'element' to what you have stored in the tag. Since some foreign languages require Unicode, it would probably be better to 'create' a delimiter, instead of using something like chr(240). Something like '|$@' two or three characters that would be garbage. Split can use multiple character delimiters. Drew The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Tue Feb 24 18:18:31 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 18:18:31 -0600 Subject: [AccessD] Find First in an Array? - TheSolutionRevisited-NowTag is the Answer In-Reply-To: <7A2AA343B6784BC99B9486D98ED73CE5@HAL9005> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <7A2AA343B6784BC99B9486D98ED73CE5@HAL9005> Message-ID: William already sent it. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Tuesday, February 24, 2009 6:12 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - TheSolutionRevisited-NowTag is the Answer Best address? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, February 24, 2009 3:42 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The SolutionRevisited-NowTag is the Answer Well somebody send it to me! Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Tuesday, February 24, 2009 5:38 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited-NowTag is the Answer ...you REALLY need to look at what max did ...you're way off base. William -------------------------------------------------- From: "Drew Wutka" Sent: Tuesday, February 24, 2009 6:17 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -NowTag is the Answer > Ok, I think Max emailed out his database, I didn't see any specific > code. But the concept was initially to put all the translations into > the captions .Tag property, in a 'master' copy, and then create a > language specific database. > > It's a great idea (good job Max!). But there are draw backs: > > 1. Your languages are in the Tag property. (Think that's not a > drawback? Ask someone to proof the translations, or add new > translations..... you either go through each and every control, find > something to run through them all, etc. having the translations in the > table makes it easier for changes, additions, and proofing). > > 2. 2048 character limit. Sure, for your command buttons and labels on > your forms, no big deal. If you have a more paragraph style 'label' on > a report (or even a form for that matter, but I would assume they would > be more common on a report), you're going to hit that limit. > > 3. No 'event' driven changes. With the example I posted, the > 'changing' form (Form1) could easily be setup as a Menu bar. Allowing > anyone sitting at a console to switch to whatever language they want. > And instead of having to find all the open forms/reports, the raised > event would change everything automatically. (Without having to open and > close the forms) > > But again, it is a great idea. (Kudos Max!) > > Drew > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan > Sent: Tuesday, February 24, 2009 4:27 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited > -Now Tag is the Answer > > So let me get this clear. Your argument is: > > 1. I need to store a string value for each control. > > 2. Controls has been designed with a property specifically for this > purpose. > > 3. I won't use the property in case I need to use it for something else > later on, instead I will > build a complete new system which will allow me to do all sorts of neat > things with controls > in case I need to in the future. > > May I refer you to Shamil's posting last Friday in this thread? > > > May I warn you about what is known as: > "Premature Optimization" > http://c2.com/cgi/wiki?PrematureOptimization > and > "Premature Generalization" > http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil > Have a look: > "Death by premature generalization" > http://ryanfarley.com/blog/archive/2004/04/30/570.aspx > > > -- > Stuart > > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy the > material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended recipient > is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Tue Feb 24 18:20:19 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 18:20:19 -0600 Subject: [AccessD] Find First in an Array? - The Solution Revisited-NowTag is the Answer In-Reply-To: <49A48E01.40402@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49A48E01.40402@colbyconsulting.com> Message-ID: Thanks.... I posted it before I looked at yours...and my first thought was... 'JC is going to rib me for not using prefixes in my Class code!' LOL. Rib away! ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, February 24, 2009 6:17 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited-NowTag is the Answer I'll be looking at it Drew. John W. Colby www.ColbyConsulting.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Tue Feb 24 18:35:19 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 18:35:19 -0600 Subject: [AccessD] Find First in an Array? - TheSolutionRevisited-NowTag is the Answer In-Reply-To: <3F7D5ABDFDC94085B943FB1CEF2BE668@jislaptopdev> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <3F7D5ABDFDC94085B943FB1CEF2BE668@jislaptopdev> Message-ID: LOL. Thanks, I got it (after googling the reg key to allow .mdb's through in Outlook...grrrrrrrr....) (The solution for that, by the way: http://www.annoyances.org/exec/show/article08-104 ) I took a look at it. It's a good idea. The example I posted shouldn't make your head spin though William. First, there is a class, 'ControlLanguage'. Then there is a module with Function Startup(), which sets a global instance of ControlLanguage. Then there is 12 lines of code to put behind your form: Dim WithEvents ContrlLang As ControlLanguage Private Sub ContrlLang_LanguageChanged() Dim ctrl For Each ctrl In Me.Controls If ContrlLang.Caption(Me.Name, ctrl.Name) <> "" Then ctrl.Caption = ContrlLang.Caption(Me.Name, ctrl.Name) End If Next End Sub Private Sub Form_Load() Set ContrlLang = CurrentControlLanguages ContrlLang_LanguageChanged End Sub Which sinks the global ControlLanguage's events into the form (the Dim WithEvents line), and then has code to set the captions when the language changes, and then on the Onload event, it manually fires that code, to update the form with the current 'global' language. The code in the class module is pretty simple too. Less then half the number of lines then what's in the module in Max's tag example. (Not that less is better...but certainly it can't be that confusing!). On the Class initialize, it initializes the collection (Captions), and then runs through the table with all the translations, setting the key to the translation as "FormName:ControlName:Language". The CurrentLanguage Property triggers the 'LanguageChanged' event (so you can read that property, but when you set it, it let's everything (forms/reports) that is listening that the language is changed. And the Caption property asks for the Form Name and Control name, so it can return the correct Caption....if it doesn't find a caption , it returns and empty string. Whalla. Open both frmPartMaster and frmSupplySide. Then open Form1, and select a language and click. (Note, the class code does set English as the default language....) Notice that both forms instantly change to the language you select. The code behind Form1 is simply setting: CurrentControlLanguages.CurrentLanguage = Me.Combo1 Which is the property that triggers the event....this could be done from anything, a stand alone form, a control on any particular form, a menu, etc. Is that really complicated? Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Tuesday, February 24, 2009 5:55 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - TheSolutionRevisited-NowTag is the Answer ...ok already ...its on its way :) William -------------------------------------------------- From: "Drew Wutka" Sent: Tuesday, February 24, 2009 6:42 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Find First in an Array? - The SolutionRevisited-NowTag is the Answer > Well somebody send it to me! > > Drew > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Tue Feb 24 18:36:12 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 18:36:12 -0600 Subject: [AccessD] Find First in an Array? - TheSolutionRevisited-NowTag is the Answer In-Reply-To: <7B331FB537DF47A7B86421B3AF71938A@HAL9005> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg><0BF1F6E2B5824F31BE6DB53BC98036D3@HAL9005> <7B331FB537DF47A7B86421B3AF71938A@HAL9005> Message-ID: LOL, well JC is back, we did miss him, didn't we? ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Tuesday, February 24, 2009 6:14 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - TheSolutionRevisited-NowTag is the Answer Hey, I may not be the world's most sophisticated Access programmer but I ask good questions. Look at the legs on this thread! Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, February 24, 2009 4:12 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The SolutionRevisited-NowTag is the Answer Yes, I've seen the example. Sorry I changed your table structure for my example, it's a habit to want to spread it out more. Technically, there should be a language table with the font used, and instead of the Language name in the controls table, it should be a key.... Either way... LOL. I've got some comments on Max's example though, will post in a new thread. Drew The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From wdhindman at dejpolsystems.com Tue Feb 24 18:41:55 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Tue, 24 Feb 2009 19:41:55 -0500 Subject: [AccessD] Find First in an Array? - The SolutionRevisited-NowTag is the Answer References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> Message-ID: <8F553AD3AA2E40A3AB77108088E5740F@jislaptopdev> ...it errors ..."CurrentControlLanguages.CurrentLanguage = Me.Combo1" error 91 ...have not looked into it :) William -------------------------------------------------- From: "Drew Wutka" Sent: Tuesday, February 24, 2009 6:52 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Find First in an Array? - The SolutionRevisited-NowTag is the Answer > And, did you look at my example? It shouldn't throw your head in a > twist to understand it..... > > No comments on this list about it! (I do have a cold > still... ) > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William > Hindman > Sent: Tuesday, February 24, 2009 5:38 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution > Revisited-NowTag is the Answer > > ...you REALLY need to look at what max did ...you're way off base. > > William > > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy the > material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended recipient > is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Tue Feb 24 18:44:21 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 24 Feb 2009 19:44:21 -0500 Subject: [AccessD] Find First in an Array? - The SolutionRevisited-NowTag is the Answer In-Reply-To: <7B331FB537DF47A7B86421B3AF71938A@HAL9005> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg><0BF1F6E2B5824F31BE6DB53BC98036D3@HAL9005> <7B331FB537DF47A7B86421B3AF71938A@HAL9005> Message-ID: <49A49465.2060205@colbyconsulting.com> ROTFL. Yea, and I am in TROUBLE!!! ;-) John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Hey, I may not be the world's most sophisticated Access programmer but I ask > good questions. Look at the legs on this thread! > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Tuesday, February 24, 2009 4:12 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The > SolutionRevisited-NowTag is the Answer > > Yes, I've seen the example. > > Sorry I changed your table structure for my example, it's a habit to want to > spread it out more. Technically, there should be a language table with the > font used, and instead of the Language name in the controls table, it should > be a key.... > > Either way... LOL. > > I've got some comments on Max's example though, will post in a new thread. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: Tuesday, February 24, 2009 6:04 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > Revisited-NowTag is the Answer > > One of those objections - proofing the translations - he actually designed > around with some code that updates the tags from the table. That's because > one of my requirements was to be able to add a new language by adding a > field to the table and then sending the table to the translator. So when > the table comes back with the translations, run the update and you're done. > So you don't actually ever have to physically mess with the tags. > > I don't think I have any control translations that are over 50 characters or > so. In fact I just looked and the longest concatenation of the 5 languages > is 638 characters., so the 2048 character limit is not too much of a > constraint. I could do at least 15 languages that way. Heaven forefend. > > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Tuesday, February 24, 2009 3:18 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited > -NowTag is the Answer > > Ok, I think Max emailed out his database, I didn't see any specific code. > But the concept was initially to put all the translations into the captions > .Tag property, in a 'master' copy, and then create a language specific > database. > > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI Proprietary > and/or II-VI Business Sensitive material. If you are not the intended > recipient, please contact the sender immediately and destroy the material in > its entirety, whether electronic or hard copy. You are notified that any > review, retransmission, copying, disclosure, dissemination, or other use of, > or taking of any action in reliance upon this information by persons or > entities other than the intended recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Tue Feb 24 18:45:39 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 24 Feb 2009 19:45:39 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited-NowTag is the Answer In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49A48E01.40402@colbyconsulting.com> Message-ID: <49A494B3.7060509@colbyconsulting.com> Naw, been there, done that. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > Thanks.... > > I posted it before I looked at yours...and my first thought was... 'JC > is going to rib me for not using prefixes in my Class code!' LOL. Rib > away! > > ;) > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, February 24, 2009 6:17 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution > Revisited-NowTag is the Answer > > I'll be looking at it Drew. > > John W. Colby > www.ColbyConsulting.com > > > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > > From jwcolby at colbyconsulting.com Tue Feb 24 18:50:41 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 24 Feb 2009 19:50:41 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited-NowTag is the Answer In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49A48E01.40402@colbyconsulting.com> Message-ID: <49A495E1.3010708@colbyconsulting.com> My first thought is that the complexity goes way down if you move the code that iterates the collection into the class, then from the form simply call a method of the class and pass in a pointer to the form. By the time the method returns the form is translated. Encapsulation is an objective and that code belongs in the class, not in each form. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > Thanks.... > > I posted it before I looked at yours...and my first thought was... 'JC > is going to rib me for not using prefixes in my Class code!' LOL. Rib > away! > > ;) > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, February 24, 2009 6:17 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution > Revisited-NowTag is the Answer > > I'll be looking at it Drew. > > John W. Colby > www.ColbyConsulting.com > > > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > > From DWUTKA at Marlow.com Tue Feb 24 20:46:33 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 20:46:33 -0600 Subject: [AccessD] Find First in an Array? - TheSolutionRevisited-NowTag is the Answer In-Reply-To: <8F553AD3AA2E40A3AB77108088E5740F@jislaptopdev> Message-ID: You need to select a language in the combo...sorry, it was a RUSH job, didn't force the combo to have a value in it! Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Tuesday, February 24, 2009 6:42 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - TheSolutionRevisited-NowTag is the Answer ...it errors ..."CurrentControlLanguages.CurrentLanguage = Me.Combo1" error 91 ...have not looked into it :) William -------------------------------------------------- From: "Drew Wutka" Sent: Tuesday, February 24, 2009 6:52 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Find First in an Array? - The SolutionRevisited-NowTag is the Answer > And, did you look at my example? It shouldn't throw your head in a > twist to understand it..... > > No comments on this list about it! (I do have a cold > still... ) > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William > Hindman > Sent: Tuesday, February 24, 2009 5:38 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution > Revisited-NowTag is the Answer > > ...you REALLY need to look at what max did ...you're way off base. > > William > > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy the > material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended recipient > is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Tue Feb 24 20:47:04 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Tue, 24 Feb 2009 20:47:04 -0600 Subject: [AccessD] Find First in an Array? - The Solution Revisited-NowTag is the Answer In-Reply-To: <49A494B3.7060509@colbyconsulting.com> Message-ID: Ah, not even for old times sake???? ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, February 24, 2009 6:46 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited-NowTag is the Answer Naw, been there, done that. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > Thanks.... > > I posted it before I looked at yours...and my first thought was... 'JC > is going to rib me for not using prefixes in my Class code!' LOL. Rib > away! > > ;) > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Tuesday, February 24, 2009 6:17 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution > Revisited-NowTag is the Answer > > I'll be looking at it Drew. > > John W. Colby > www.ColbyConsulting.com > > > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From max.wanadoo at gmail.com Wed Feb 25 01:44:34 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 25 Feb 2009 07:44:34 -0000 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <49A47CBE.5000306@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49A47CBE.5000306@colbyconsulting.com> Message-ID: <49a4f6f4.0508d00a.2a03.1b53@mx.google.com> I agree with Stuart. It is a property put there for the sole purpose of being used by developers for whatever reason they think fit. Its use is no more amateurish then using Access itself. It is A-Political and neither attracts nor detracts from anything else. My 2p worth Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 24 February 2009 23:03 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer LOL. No I think the argument is that the tag is NOT designed for this purpose, it is a general purpose property left over from the dark ages. It is used by nubee programmers, business owners etc who build their own systems, which most of us have had to come in and work on at one point or another in our illustrious careers. Given that it is used by nubees and business owners, who haven't a clue about proper programming techniques (though WE ARE SUPPOSED TO!!!), you cannot depend on it not to contain leftover junk that just may be critical. So to get in the habit of using the tag to store denormalized data is: A) Silly B) Possibly dangerous, depending on where the system had it's origins. C) Silly D) Silly and finally E) Silly. Stuart, we are supposed to be professionals. Excuse me for putting it quite so bluntly, but the tag is squarely in the domain of the amateur. Personally I do not care if you use it, nor if anyone else uses it, but to ridicule those who have much more powerful tools at their disposal and the knowledge to use them, is unprofessional in and of itself. As I said, if you love them, by all means use them. You will not find me using them for a LOT of very good reasons. I choose not to comment on Shamil's opinions. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > So let me get this clear. Your argument is: > > 1. I need to store a string value for each control. > > 2. Controls has been designed with a property specifically for this purpose. > > 3. I won't use the property in case I need to use it for something else later on, instead I will > build a complete new system which will allow me to do all sorts of neat things with controls > in case I need to in the future. > > May I refer you to Shamil's posting last Friday in this thread? > > > May I warn you about what is known as: > "Premature Optimization" > http://c2.com/cgi/wiki?PrematureOptimization > and > "Premature Generalization" > http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil > Have a look: > "Death by premature generalization" > http://ryanfarley.com/blog/archive/2004/04/30/570.aspx > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 25 01:44:34 2009 From: max.wanadoo at gmail.com (Denis Sherman) Date: Wed, 25 Feb 2009 07:44:34 -0000 Subject: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> Message-ID: <49a4f6f2.0a04d00a.18b9.ffff9ebf@mx.google.com> >> There is a generic property (limited to 2048 characters, by the way), which can be used for anything...and can be used by anything. But using it for multiple purposes gets to be very hairy! However, I was just playing around with user-defined-properties in the mdb properties itself - for storing these multi-value strings each formname+controlname to have its own user defined property name with the value being the multi-value language string. Worked beautifully apart from the limitation around the 64K size mark. I have another plan - just thinking it through laterally first! Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 24 February 2009 22:58 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer Not quite. 1. Need to have multiple values for a single value property for the controls. 2. There is a generic property (limited to 2048 characters, by the way), which can be used for anything...and can be used by anything. But using it for multiple purposes gets to be very hairy! 3. It took me less then 30 minutes to build a completely new system that does the same thing, just as fast, and it is event enabled (ie, changing the language on the fly updates ALL visible forms (and I'm assuming reports...) to the new language. Something you can't do as easily with the Tag. I'm not saying that using the .Tag property would be bad. I just think a class/collection method is better. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Tuesday, February 24, 2009 4:27 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer So let me get this clear. Your argument is: 1. I need to store a string value for each control. 2. Controls has been designed with a property specifically for this purpose. 3. I won't use the property in case I need to use it for something else later on, instead I will build a complete new system which will allow me to do all sorts of neat things with controls in case I need to in the future. May I refer you to Shamil's posting last Friday in this thread? May I warn you about what is known as: "Premature Optimization" http://c2.com/cgi/wiki?PrematureOptimization and "Premature Generalization" http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil Have a look: "Death by premature generalization" http://ryanfarley.com/blog/archive/2004/04/30/570.aspx -- Stuart The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 25 01:52:13 2009 From: max.wanadoo at gmail.com (Denis Sherman) Date: Wed, 25 Feb 2009 07:52:13 -0000 Subject: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> Message-ID: <49a4f8b8.1818d00a.758f.0262@mx.google.com> >>I'm not saying that using the .Tag property would be bad. I just think a class/collection method is better. That is a reasonable conclusion. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 24 February 2009 22:58 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer Not quite. 1. Need to have multiple values for a single value property for the controls. 2. There is a generic property (limited to 2048 characters, by the way), which can be used for anything...and can be used by anything. But using it for multiple purposes gets to be very hairy! 3. It took me less then 30 minutes to build a completely new system that does the same thing, just as fast, and it is event enabled (ie, changing the language on the fly updates ALL visible forms (and I'm assuming reports...) to the new language. Something you can't do as easily with the Tag. I'm not saying that using the .Tag property would be bad. I just think a class/collection method is better. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Tuesday, February 24, 2009 4:27 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer So let me get this clear. Your argument is: 1. I need to store a string value for each control. 2. Controls has been designed with a property specifically for this purpose. 3. I won't use the property in case I need to use it for something else later on, instead I will build a complete new system which will allow me to do all sorts of neat things with controls in case I need to in the future. May I refer you to Shamil's posting last Friday in this thread? May I warn you about what is known as: "Premature Optimization" http://c2.com/cgi/wiki?PrematureOptimization and "Premature Generalization" http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil Have a look: "Death by premature generalization" http://ryanfarley.com/blog/archive/2004/04/30/570.aspx -- Stuart The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Wed Feb 25 01:56:12 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 25 Feb 2009 08:56:12 +0100 Subject: [AccessD] Function vs Sub (was: Classes and Events - EVENTSNOTREQUIRED) Message-ID: Hi Charlotte Eh, you can't have forgotten that setting Cancel to True in your code of such a sub will return that value to the form? /gustav >>> cfoust at infostatsystems.com 24-02-2009 22:21 >>> Not sure I follow, Stuart. Subs set values like Cancel or process a keycode. They don't return them per se. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Tuesday, February 24, 2009 1:12 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTSNOTREQUIRED) Which begs the question, why does VBA use Subs for event procedures which return values such as Cancel or KeyCode? Aren't these Functions? :-) -- Stuart On 24 Feb 2009 at 9:24, Charlotte Foust wrote: > Absolutely when you need multiple return values, but a simple boolean or > single value? > > Charlotte Foust From max.wanadoo at gmail.com Wed Feb 25 02:03:28 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 25 Feb 2009 08:03:28 -0000 Subject: [AccessD] Max's Tag solution In-Reply-To: References: Message-ID: <49a4fb59.0a1ad00a.18d5.6892@mx.google.com> Yes, agree on both accounts. I had problems getting split() to work in A2k7 but I cut=n=pasted Stuarts example and that works ok, so it must have been me! I also agree about the delimiter. I would normally use the pipe "|" but I wanted to make it visible in the EXAMPLE I was posting to Rocky. It could then be changed when all the code was tightened up following these and other suggestions from the List. We are doing well so far, great responses and tons of different ways of looking at the same problem. Hover, I *think* the "best" all round answer in my opinion will be the Classes regardless of the "cleverness" of direct text storage, but I have one or two other alternatives which I will throw at the List for comments etc. A good learning curve for me. Won't get a lot of time on here until the Weekend though. Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 25 February 2009 00:18 To: Access Developers discussion and problem solving Subject: [AccessD] Max's Tag solution First of all, GREAT JOB Max. Two comments for you. 1. In your 'sGetLanguageCaptions' code, you can simplify your code by using Split, instead of searching through the string: Private Sub sGetLanguageCaptions() ' set the caption based on the language selected where language value is held in glngLangauge variable Dim ctl As Control, strCaption As String, lng As Long, str As String Dim strArray() As String For Each ctl In Me.Controls If ctl.ControlType = acLabel And Len(ctl.Tag) > 1 Then strArray = Split(ctl.Tag, "+") ctl.Caption = strArray(glngLanguage - 1) End If Next ctl End Sub 2. The delimiter should be a non-typable character. You never know when a typable character will be used in a caption. In your sample, you used the plus sign. If a caption read: 'Credits+Debits' it would add another 'element' to what you have stored in the tag. Since some foreign languages require Unicode, it would probably be better to 'create' a delimiter, instead of using something like chr(240). Something like '|$@' two or three characters that would be garbage. Split can use multiple character delimiters. Drew The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 25 02:05:42 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 25 Feb 2009 08:05:42 -0000 Subject: [AccessD] Find First in an Array? - The SolutionRevisited-NowTag is the Answer In-Reply-To: <7A2AA343B6784BC99B9486D98ED73CE5@HAL9005> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <7A2AA343B6784BC99B9486D98ED73CE5@HAL9005> Message-ID: <49a4fbe4.0707d00a.159f.3fb3@mx.google.com> Any one that I live in... Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 25 February 2009 00:12 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The SolutionRevisited-NowTag is the Answer Best address? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, February 24, 2009 3:42 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The SolutionRevisited-NowTag is the Answer Well somebody send it to me! Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Tuesday, February 24, 2009 5:38 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited-NowTag is the Answer ...you REALLY need to look at what max did ...you're way off base. William -------------------------------------------------- From: "Drew Wutka" Sent: Tuesday, February 24, 2009 6:17 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -NowTag is the Answer > Ok, I think Max emailed out his database, I didn't see any specific > code. But the concept was initially to put all the translations into > the captions .Tag property, in a 'master' copy, and then create a > language specific database. > > It's a great idea (good job Max!). But there are draw backs: > > 1. Your languages are in the Tag property. (Think that's not a > drawback? Ask someone to proof the translations, or add new > translations..... you either go through each and every control, find > something to run through them all, etc. having the translations in the > table makes it easier for changes, additions, and proofing). > > 2. 2048 character limit. Sure, for your command buttons and labels on > your forms, no big deal. If you have a more paragraph style 'label' on > a report (or even a form for that matter, but I would assume they would > be more common on a report), you're going to hit that limit. > > 3. No 'event' driven changes. With the example I posted, the > 'changing' form (Form1) could easily be setup as a Menu bar. Allowing > anyone sitting at a console to switch to whatever language they want. > And instead of having to find all the open forms/reports, the raised > event would change everything automatically. (Without having to open and > close the forms) > > But again, it is a great idea. (Kudos Max!) > > Drew > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan > Sent: Tuesday, February 24, 2009 4:27 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited > -Now Tag is the Answer > > So let me get this clear. Your argument is: > > 1. I need to store a string value for each control. > > 2. Controls has been designed with a property specifically for this > purpose. > > 3. I won't use the property in case I need to use it for something else > later on, instead I will > build a complete new system which will allow me to do all sorts of neat > things with controls > in case I need to in the future. > > May I refer you to Shamil's posting last Friday in this thread? > > > May I warn you about what is known as: > "Premature Optimization" > http://c2.com/cgi/wiki?PrematureOptimization > and > "Premature Generalization" > http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil > Have a look: > "Death by premature generalization" > http://ryanfarley.com/blog/archive/2004/04/30/570.aspx > > > -- > Stuart > > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy the > material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended recipient > is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 25 02:05:42 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 25 Feb 2009 08:05:42 -0000 Subject: [AccessD] Find First in an Array? - The SolutionRevisited-NowTag is the Answer In-Reply-To: <7B331FB537DF47A7B86421B3AF71938A@HAL9005> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg><0BF1F6E2B5824F31BE6DB53BC98036D3@HAL9005> <7B331FB537DF47A7B86421B3AF71938A@HAL9005> Message-ID: <49a4fbe9.0707d00a.159f.3fca@mx.google.com> Yeah, but I post the most controversial coding Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: 25 February 2009 00:14 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The SolutionRevisited-NowTag is the Answer Hey, I may not be the world's most sophisticated Access programmer but I ask good questions. Look at the legs on this thread! Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, February 24, 2009 4:12 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The SolutionRevisited-NowTag is the Answer Yes, I've seen the example. Sorry I changed your table structure for my example, it's a habit to want to spread it out more. Technically, there should be a language table with the font used, and instead of the Language name in the controls table, it should be a key.... Either way... LOL. I've got some comments on Max's example though, will post in a new thread. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Tuesday, February 24, 2009 6:04 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited-NowTag is the Answer One of those objections - proofing the translations - he actually designed around with some code that updates the tags from the table. That's because one of my requirements was to be able to add a new language by adding a field to the table and then sending the table to the translator. So when the table comes back with the translations, run the update and you're done. So you don't actually ever have to physically mess with the tags. I don't think I have any control translations that are over 50 characters or so. In fact I just looked and the longest concatenation of the 5 languages is 638 characters., so the 2048 character limit is not too much of a constraint. I could do at least 15 languages that way. Heaven forefend. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Tuesday, February 24, 2009 3:18 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -NowTag is the Answer Ok, I think Max emailed out his database, I didn't see any specific code. But the concept was initially to put all the translations into the captions .Tag property, in a 'master' copy, and then create a language specific database. The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 25 02:05:42 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 25 Feb 2009 08:05:42 -0000 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <49A48DB6.2040806@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49A47CBE.5000306@colbyconsulting.com> <49A48DB6.2040806@colbyconsulting.com> Message-ID: <49a4fbec.0707d00a.159f.3fda@mx.google.com> >> William, I used tags, more than anyone in AccessD, I would bet a paycheck on that Wheredya get a paycheck from? I want one! Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 25 February 2009 00:16 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer Not at all William, my argument is that if you are capable of using collections then tags quickly become a bad idea. Not a "not good" idea, a BAD idea, for all the reasons I have mentioned. YOU would not even consider using a single field in a table to store multiple unrelated things, and yet you don't bat an eye at doing it with a tag. You have to pack it, You gotta load it, you gotta unpack it, you gotta use it. You gotta see what is in there, you have to search for stuff. ICK!!! I have to do the same thing, but I don't use a tag to do so, it simply makes no sense. William, I used tags, more than anyone in AccessD, I would bet a paycheck on that. I wrote some ungodly code to do that packing, unpacking using etc. I wrote entire systems to make it easy to see the stuff I was packing in there. It worked. It was ugly. I would NEVER do it again. But I have the ability to use other more powerful tools. If you don't have that ability, I would HIGHLY suggest that you spend the time to learn more powerful tools rather than take the "easy way" because while it may be easy now, it will get ugly REALLY quick!!! Just an opinion from someone who has been there. And yes, it is just my opinion. John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...sigh ...c'mon jc ...you're whole argument has become pros use classes, > nubees use tags ...which is not only insulting but simply not true ...I can > take you on a guided tour of access pro sites offering tag solutions/code. > > ...now as it happens, I've never used tags before ...just seemed like there > was always an easier way ...but then I've never written classes in access > either ...but my apps still work and the clients keep calling ...which, > insults aside, is the bottom line for all of us. > > William -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Wed Feb 25 02:13:38 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 25 Feb 2009 09:13:38 +0100 Subject: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOT REQUIRED) Message-ID: Hi Lambert Mysterious? Strange argument you have here: If you don't know what a subfunction does, don't use it. If you don't know what a function does, use it anyway. Strange logic to me. If you have problems understandig or debugging the operation of a subfunction, this won't change if the change the subfunction to a function. Also, the hypothetical sub RoundAmount was just an example for everyone to understand. That said, the scope of rounding is much wider than for display. For example, anyone dealing with systems for invoicing and accounting will know how important careful rounding is. Rounding is also very important for timing purposes. Examples of this can be found here in the article by Susan and me: http://www.devx.com/dbzone/Article/39046 /gustav >>> Lambert.Heenan at aig.com 24-02-2009 19:24 >>> I also favor using *real* function calls. I especially don't like subs mysteriously modifying data. The example given was RoundAmount curAmount, 2 Debug.Print curAmount ' Returns 12.35 Here we have a Sub that is modifying its input parameter curAmount, but the only way to rally know this is by examining the source code of the Sub, which may not be available to you. One might say that the fact that the sub is Named "RoundAmount" tells you what it's going to do, but even that's not really the case. The RoundAmount sub is doing more than just rounding. I'll stick my neck out and say in most cases where rounding is done it's because you want to *display* data at a certain precision, but the underlying data should remain unchanged. So curRounded = Round(curAmount,2) does just that, we get a rounded value to display, and curAmount does not alter. Whereas RoundAmount curAmount, 2 is throwing data away. My 2 cents. Lambert -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Tuesday, February 24, 2009 1:04 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOT REQUIRED) In that case I prefer the function returning a value, because the = tells the mind that a value is coming back. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi Charlotte > > No, you are right, that is seldom. > However, a sub may call(!) for more elegant code. > > Instead of: > > curAmount = 12.345 > curAmount = RoundAmount(curAmount, 2) > Debug.Print curAmount ' Returns 12.35 > > then this: > > curAmount = 12.345 > Call RoundAmount(curAmount, 2) > Debug.Print curAmount ' Returns 12.35 > > or even: > > curAmount = 12.345 > RoundAmount curAmount, 2 > Debug.Print curAmount ' Returns 12.35 > > Still a matter of taste, I guess. > > /gustav > >>>> cfoust at infostatsystems.com 24-02-2009 18:24 >>> > Absolutely when you need multiple return values, but a simple boolean > or single value? > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav > Brock > Sent: Tuesday, February 24, 2009 1:45 AM > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - > EVENTS NOTREQUIRED) > > Hi Charlotte > > Not tidy? In some cases this feature is very useful. > Here is a simple example of sub returning multiple values: > > > Public Sub CompositeRGB( _ > ByVal lngRGB As Long, _ > ByRef intRed As Integer, _ > ByRef intGreen As Integer, _ > ByRef intBlue As Integer) > > ' Calculate discrete RGB colours from composite colour Value. > ' > ' 1999-08-20. Cactus Data ApS, CPH > > If lngRGB < 0 Then > ' Nothing to do. > intRed = 0 > intGreen = 0 > intBlue = 0 > Else > ' Dissolve composite RGB into discrete colours. > intRed = lngRGB And vbRed > intGreen = (lngRGB And vbGreen) / &H100 > intBlue = (lngRGB And vbBlue) / &H10000 > End If > Debug.Print intRed, intGreen, intBlue End Sub > > > > The only reason I see to not write a sub when a return value is not > needed, is if the (sub)function will be used in a macro as these can't > call subfunctions. > > /gustav From Gustav at cactus.dk Wed Feb 25 02:33:37 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 25 Feb 2009 09:33:37 +0100 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer Message-ID: Hi John Well, Shamil can certainly speak for himself, but I think the scope of his comment and the referred links is a little wider than a Tag of a control. /gustav >>> jwcolby at colbyconsulting.com 25-02-2009 00:03 >>> .. I choose not to comment on Shamil's opinions. From max.wanadoo at gmail.com Wed Feb 25 03:01:59 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 25 Feb 2009 09:01:59 -0000 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: References: Message-ID: <49a5090f.0a1ad00a.5cd5.fffff98e@mx.google.com> I didn't see any posting from Shamil. Can somebody please repost to me. I always like to read what he has to say (for those few postings which are not w.a.y... over my head). Thanks Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 25 February 2009 08:34 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer Hi John Well, Shamil can certainly speak for himself, but I think the scope of his comment and the referred links is a little wider than a Tag of a control. /gustav >>> jwcolby at colbyconsulting.com 25-02-2009 00:03 >>> .. I choose not to comment on Shamil's opinions. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Wed Feb 25 03:10:21 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 25 Feb 2009 19:10:21 +1000 Subject: [AccessD] (Fwd) Re: Find First in an Array? Message-ID: <49A5979D.21610.15FF425@stuart.lexacorp.com.pg> On 25 Feb 2009 at 9:01, Max Wanadoo wrote: > I didn't see any posting from Shamil. Can somebody please repost to > me. I always like to read what he has to say (for those few postings > which are not w.a.y... over my head). ------- Forwarded message follows ------- From: Salakhetdinov Shamil To: Access Developers discussion and problem solving Date sent: Fri, 20 Feb 2009 00:40:20 +0300 Subject: Re: [AccessD] Find First in an Array? You decide, Rocky, Do you have time for that experimenting? May I warn you about what is known as: "Premature Optimization" http://c2.com/cgi/wiki?PrematureOptimization and "Premature Generalization" http://c2.com/cgi/wiki?PrematureGeneralizationIsEvil ? Have a look: "Death by premature generalization" http://ryanfarley.com/blog/archive/2004/04/30/570.aspx My name is Shamil, you know :) and I have been a premature generalizer in many cases I must admit - but I'm getting more and more XP/SCRUM agile habits these days, and I'm getting more fun from programming real life business tasks without my premature generalization and optimization not so good(?) past habits... IMO in the case of the context of this thread using .Seek is the closest and quickest yet good enough (and maybe the only one needed for many years ahead) solution/transition from your existing .FindFirst-based code... If that would not be good/speedy enough in your case then I'd probaably use static array loaded on first call/after reset using .GetRows() with accompanying static collection with FormName/ControlName as a key to keep value for static array entry index, and a function to get translation value using this collection/array... etc... Thank you. -- Shamil -----Original Message----- From: "Rocky Smolin at Beach Access Software" To: "'Access Developers discussion and problem solving'" Date: Thu, 19 Feb 2009 09:56:55 -0800 Subject: Re: [AccessD] Find First in an Array? > > Dang. I think you're right. Gotta try that. You think it'll be faster > than SEEK? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Thursday, February 19, 2009 9:33 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Hmmmm, actually, the way you have this set up, you could do this just fine > without an array or collection. > > Instead of this: > > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Do this: > > strSQL="SELECT fldLanguageControl, fldLanguage" & strLanguageToTranslate & " > FROM tblYourTableName WHERE fldLanguageForm=""" & me.Name & """" > set rs=New Recordset > rs.open strsql,currentproject.connection, adopenkeyset,adlockreadonly if > rs.eof=false then rs.movefirst do until rs.eof=true > me(rs.fields(0).value).Caption=rs.fields(1).value > Loop > Rs.close > Set rs=nothing > > That way you are pulling the recordset up....and just running through it > once...instead of trying to find every record based on the control. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: Thursday, February 19, 2009 12:57 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? > > John: > > The table layout is: > > fldLanguageID Autonumber > fldLanguageForm Text Name of the form that the control is on > fldLanguageControl Text Name of the control > fldLanguageControlType Text Not Used > fldLanguageEnglish Text > fldLanguageChineseComplex Text > fldLanguageChineseSimple Text > fldLanguageSpanish Text > fldLanguageFrench Text > > In the translate routine I use: > > Set frm = Forms(argForm) > For Each ctl In frm > rstControls.FindFirst "fldLanguageForm = '" & argForm & "' and > fldLanguageControl = '" _ > & ctl.Name & "'" > > Where argForm is the form name passed to the function. So I think I might > get a big boost in response time by indexing fldLanguageForm and > fldLanguageControl. > > There are only about 2500 records in the table so I'm thinking that the > whole recordset is probably in memory anyway. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 18, 2009 5:46 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? > > Does this imply a table structure of: > > TR_ID Auto > TR_CtlName Text > TR_L1 text (or memo?) for language 1 > TR_L2 text (or memo?) for language 2 > Etc > > I would suggest that you add a form (or container) field. A control name is > unique on a form, however it could be the same on different forms but have a > different language string. By having a form field you could pull subsets of > records based on the form name, then use the control name (now guaranteed to > be unique), then obtain the language string. > > It appears from your email however that you already have this stuff set up, > so you might be resistant to modifying how it works. > > If this is all just one big table with control names guaranteed to be unique > then you could just stash it in one big collection. There is a problem > however which is that classes get pretty slow as they get large. If you get > up past 10,000 strings (I don't know the exact point) it would bog back > down. If you broke it down into controls on a form, then you would ensure > that the total strings in any given collection is pretty small. > > Again I would build a class for all the code and the collection to load one > form. then a supervisor class to hold instances of this form class keyed on > form name. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: > > Max: > > > > That would work except the table driven approach is so much more > easier. > > Easy to add a language (got French and Spanish now in addition to > > traditional and simplified Chinese), too, or make a change to a > translation. > > To add a language I just add a column for that language to the Control > > > and Messages tables and send them to the translator. Add that > > language to the language selector combo on the Preferences form, and > > walla! Another language. > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com The information contained in this > transmission is intended only for the person or entity to which it is > addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive > material. If you are not the intended recipient, please contact the sender > immediately and destroy the material in its entirety, whether electronic or > hard copy. You are notified that any review, retransmission, copying, > disclosure, dissemination, or other use of, or taking of any action in > reliance upon this information by persons or entities other than the > intended recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ------- End of forwarded message ------- From stuart at lexacorp.com.pg Wed Feb 25 03:56:24 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 25 Feb 2009 19:56:24 +1000 Subject: [AccessD] (Fwd) Re: Find First in an Array? In-Reply-To: <49A5979D.21610.15FF425@stuart.lexacorp.com.pg> References: <49A5979D.21610.15FF425@stuart.lexacorp.com.pg> Message-ID: <49A5A268.5623.18A1B83@stuart.lexacorp.com.pg> I'm trying a different approach that doesn't use Tags, but I don't have a copy of Rocky's database with the translation table. Can somebody send me a copy (stuart at lexacorp.com.pg) Cheers, Stuart From stuart at lexacorp.com.pg Wed Feb 25 04:55:37 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 25 Feb 2009 20:55:37 +1000 Subject: [AccessD] Find First in an Array? In-Reply-To: <49A5A268.5623.18A1B83@stuart.lexacorp.com.pg> References: <49A5979D.21610.15FF425@stuart.lexacorp.com.pg>, <49A5A268.5623.18A1B83@stuart.lexacorp.com.pg> Message-ID: <49A5B049.9624.1C05163@stuart.lexacorp.com.pg> In the absence of the sample DB, function Startup() below may need a minor modification. Here's the *total* code required to do the translations with a Collection, which is indexed on Form,Control and Language (other than to add "SetCaptions Me.Name" in each forms on_open). Option Compare Database Option Explicit Global gcolTranslation As New Collection Global glngLanguage As Long Function StartUp() 'Code which is run when the application starts Dim rs As DAO.Recordset Dim x As Long 'Fill Collection Set rs = CurrentDb.OpenRecordset("tblLanguages") While Not rs.EOF For x = 2 To rs.Fields.Count - 1 gcolTranslation.Add rs(x), _ rs!FormName & Chr$(0) _ & rs!ControlName & Chr$(0) _ & Format(x - 2, "00") Next rs.MoveNext Wend 'Get current default language glngLanguage = DLookup("Language", "uSysDefaults") End Function Function SetCaptions(frm As Form) Dim ctl As Control 'skip labels which don't have a translation On Error Resume Next For Each ctl In frm For Each ctl In frm.Controls If ctl.ControlType = acLabel Then ctl.Caption = gcolTranslation(frmName _ & Chr$(0) & ctl.Name _ & Chr$(0) & Format(glngLanguage, "00")) End If Next ctl End Function Function SetLanguage(Language As Long) Dim frm As Form CurrentDb.Execute "Update uSysDefault Set Language = " & Language 'update all open forms For Each frm In Application.Forms SetCaptions frm Next End Function From stuart at lexacorp.com.pg Wed Feb 25 05:01:47 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Wed, 25 Feb 2009 21:01:47 +1000 Subject: [AccessD] Find First in an Array? In-Reply-To: <49A5B049.9624.1C05163@stuart.lexacorp.com.pg> References: <49A5979D.21610.15FF425@stuart.lexacorp.com.pg>, <49A5A268.5623.18A1B83@stuart.lexacorp.com.pg>, <49A5B049.9624.1C05163@stuart.lexacorp.com.pg> Message-ID: <49A5B1BB.15917.1C5F964@stuart.lexacorp.com.pg> Oops - add one line to this function "glngLanguage = Language" On 25 Feb 2009 at 20:55, Stuart McLachlan wrote: > Function SetLanguage(Language As Long) > Dim frm As Form > CurrentDb.Execute "Update uSysDefault Set Language = " & Language > 'update all open forms > For Each frm In Application.Forms > SetCaptions frm > Next > End Function > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Wed Feb 25 07:10:08 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 08:10:08 -0500 Subject: [AccessD] Apologies guys - was Tags. Message-ID: <49A54330.3030705@colbyconsulting.com> I wanted to apologize for the rant yesterday. Of course there is a valid reason for using tags, actually two valid reasons. 1) You are capable of using them 2) You want something that loads with the form. I used tags in the past for exactly those two reasons. I was mostly responding to the implication that NOT using the tags was silly when "they already exist so why not". I try very hard to use good programming practices and I have spent a lot of time learning how to use tools that make tags unnecessary FOR ME. The hardware, and my knowledge of VBA programming constructs make tags unnecessary (and bad practice) FOR ME. Of course if tags are the right tool for you, then you absolutely should use them. I will not be responding to this thread any more, and sorry for the rant. -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Wed Feb 25 07:15:00 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 08:15:00 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer In-Reply-To: <49a4f6f2.0a04d00a.18b9.ffff9ebf@mx.google.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49a4f6f2.0a04d00a.18b9.ffff9ebf@mx.google.com> Message-ID: <49A54454.3070409@colbyconsulting.com> Max, Forms also have custom properties IIRC, and that would be the place to do what you are thinking of doing. The form's custom properties work beautifully, and you could use the form's properties custom properties to store the info about controls on that form. It was about 10 years ago when I last looked at them but I remember thinking what a cool tool. They are "well hidden" and so you can place security info in them (what I was using them for) and make it almost impossible for a hacker to find. IIRC they do have the issue of having to be set in design and then saved to make them "permanent" but if you have that ability then there they are. Keep thinking laterally! John W. Colby www.ColbyConsulting.com Denis Sherman wrote: >>> There is a generic property (limited to 2048 characters, by the way), > which can be used for anything...and can be used by anything. But using it > for multiple purposes gets to be very hairy! > > However, I was just playing around with user-defined-properties in the mdb > properties itself - for storing these multi-value strings each > formname+controlname to have its own user defined property name with the > value being the multi-value language string. Worked beautifully apart from > the limitation around the 64K size mark. > > I have another plan - just thinking it through laterally first! > > Max From jwcolby at colbyconsulting.com Wed Feb 25 07:16:38 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 08:16:38 -0500 Subject: [AccessD] Find First in an Array? - The SolutionRevisited-NowTag is the Answer In-Reply-To: <49a4fbe9.0707d00a.159f.3fca@mx.google.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg><0BF1F6E2B5824F31BE6DB53BC98036D3@HAL9005> <7B331FB537DF47A7B86421B3AF71938A@HAL9005> <49a4fbe9.0707d00a.159f.3fca@mx.google.com> Message-ID: <49A544B6.4040300@colbyconsulting.com> > Yeah, but I post the most controversial coding ROTFL!!! Uhhh... judging by the responses Drew and I took that prize. ;-) John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Yeah, but I post the most controversial coding > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: 25 February 2009 00:14 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The > SolutionRevisited-NowTag is the Answer > > Hey, I may not be the world's most sophisticated Access programmer but I ask > good questions. Look at the legs on this thread! > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Tuesday, February 24, 2009 4:12 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The > SolutionRevisited-NowTag is the Answer > > Yes, I've seen the example. > > Sorry I changed your table structure for my example, it's a habit to want to > spread it out more. Technically, there should be a language table with the > font used, and instead of the Language name in the controls table, it should > be a key.... > > Either way... LOL. > > I've got some comments on Max's example though, will post in a new thread. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: Tuesday, February 24, 2009 6:04 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > Revisited-NowTag is the Answer > > One of those objections - proofing the translations - he actually designed > around with some code that updates the tags from the table. That's because > one of my requirements was to be able to add a new language by adding a > field to the table and then sending the table to the translator. So when > the table comes back with the translations, run the update and you're done. > So you don't actually ever have to physically mess with the tags. > > I don't think I have any control translations that are over 50 characters or > so. In fact I just looked and the longest concatenation of the 5 languages > is 638 characters., so the 2048 character limit is not too much of a > constraint. I could do at least 15 languages that way. Heaven forefend. > > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Tuesday, February 24, 2009 3:18 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited > -NowTag is the Answer > > Ok, I think Max emailed out his database, I didn't see any specific code. > But the concept was initially to put all the translations into the captions > .Tag property, in a 'master' copy, and then create a language specific > database. > > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI Proprietary > and/or II-VI Business Sensitive material. If you are not the intended > recipient, please contact the sender immediately and destroy the material in > its entirety, whether electronic or hard copy. You are notified that any > review, retransmission, copying, disclosure, dissemination, or other use of, > or taking of any action in reliance upon this information by persons or > entities other than the intended recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From rockysmolin at bchacc.com Wed Feb 25 07:39:52 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 25 Feb 2009 05:39:52 -0800 Subject: [AccessD] (Fwd) Re: Find First in an Array? In-Reply-To: <49A5A268.5623.18A1B83@stuart.lexacorp.com.pg> References: <49A5979D.21610.15FF425@stuart.lexacorp.com.pg> <49A5A268.5623.18A1B83@stuart.lexacorp.com.pg> Message-ID: <4784580BE52044AB8B9A2EC93152D2C9@HAL9005> Done. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Wednesday, February 25, 2009 1:56 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] (Fwd) Re: Find First in an Array? I'm trying a different approach that doesn't use Tags, but I don't have a copy of Rocky's database with the translation table. Can somebody send me a copy (stuart at lexacorp.com.pg) Cheers, Stuart -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 25 07:45:57 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 25 Feb 2009 05:45:57 -0800 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: <49A54330.3030705@colbyconsulting.com> References: <49A54330.3030705@colbyconsulting.com> Message-ID: Who are you and what have you done with Colby? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 5:10 AM To: Access Developers discussion and problem solving Subject: [AccessD] Apologies guys - was Tags. I wanted to apologize for the rant yesterday. Of course there is a valid reason for using tags, actually two valid reasons. 1) You are capable of using them 2) You want something that loads with the form. I used tags in the past for exactly those two reasons. I was mostly responding to the implication that NOT using the tags was silly when "they already exist so why not". I try very hard to use good programming practices and I have spent a lot of time learning how to use tools that make tags unnecessary FOR ME. The hardware, and my knowledge of VBA programming constructs make tags unnecessary (and bad practice) FOR ME. Of course if tags are the right tool for you, then you absolutely should use them. I will not be responding to this thread any more, and sorry for the rant. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Wed Feb 25 08:00:47 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 09:00:47 -0500 Subject: [AccessD] Find First in an Array? In-Reply-To: <49A5B049.9624.1C05163@stuart.lexacorp.com.pg> References: <49A5979D.21610.15FF425@stuart.lexacorp.com.pg>, <49A5A268.5623.18A1B83@stuart.lexacorp.com.pg> <49A5B049.9624.1C05163@stuart.lexacorp.com.pg> Message-ID: <49A54F0F.4090202@colbyconsulting.com> Stuart, You are correct of course, that is the *total* (I assume you mean *minimum*) code required. I ran tests last week and from my testing the time to get the strings out of one big collection was a lot greater than to get the strings out of a collection for each form. By my testing the time dropped from 20 ms to "0" ms (so small it didn't see a timer tick). Refactor your code to use a collection for each form and I will be happy. Hint, use a collection to hold each form's strings, and store those collections in another collection, keyed on form name. BTW, before I discovered classes I often used "collections of collections". It works quite well, it is just that the programming can get messy. Now I understand that some will say "20 ms, why go further". There is a very good reason, simply being that there are many forms out there that are much more complex than Rocky's examples, and as the number of controls rise, so does the time to do just this one process. Additionally this one process is ONLY one of potentially many processes that may have to run as the form opens. The "that is fast enough" attitude ignores that fact. Code is never fast enough, and when you are writing code for generic processes that is doubly true. Of course you have to make decisions as to when the extra effort to make it faster is worth said effort. OTOH it took me just a few minutes of coding to create a solution that dropped the time from 20 ms to under 1 ms. That effort will now be applied to hundreds of forms of unknown complexity in as many projects as I choose. It appears to me from your posts that you are a minimalist, the *total* (IOW least possible) code required is very important to you and that's fine but the least code possible is not at the top of my personal priorities. Horses for courses. I am looking for minimal code of course. I also want fast code. I also want organized code. I want code that is easy (for me) to read. These things are occasionally in conflict. I choose classes for my solution because (in order of importance TO ME): 1) It organized my code the way I like it organized. 2) The very creation of classes provided me with the constructs to easily speed up my code. 3) The increased speed cost me almost nothing. 4) The increased speed will be applied thousands or even millions of times across projects, further amortizing even the minimal time I spent. I like your solution. It clearly shows how to use a collection to achieve the results. It caches the results so that the next time the loads will be faster. And one simple change (a collection of collections) will make you code a LOT faster. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > In the absence of the sample DB, function Startup() below may need a > minor modification. > > Here's the *total* code required to do the translations with a Collection, > which is indexed on Form,Control and Language (other than to add > "SetCaptions Me.Name" in each forms on_open). > > > Option Compare Database > Option Explicit > Global gcolTranslation As New Collection > Global glngLanguage As Long > > Function StartUp() > 'Code which is run when the application starts > Dim rs As DAO.Recordset > Dim x As Long > 'Fill Collection > Set rs = CurrentDb.OpenRecordset("tblLanguages") > While Not rs.EOF > For x = 2 To rs.Fields.Count - 1 > gcolTranslation.Add rs(x), _ > rs!FormName & Chr$(0) _ > & rs!ControlName & Chr$(0) _ > & Format(x - 2, "00") > Next > rs.MoveNext > Wend > 'Get current default language > glngLanguage = DLookup("Language", "uSysDefaults") > > End Function > > Function SetCaptions(frm As Form) > Dim ctl As Control > 'skip labels which don't have a translation > On Error Resume Next > For Each ctl In frm > For Each ctl In frm.Controls > If ctl.ControlType = acLabel Then > ctl.Caption = gcolTranslation(frmName _ > & Chr$(0) & ctl.Name _ > & Chr$(0) & Format(glngLanguage, "00")) > End If > Next ctl > End Function > > Function SetLanguage(Language As Long) > Dim frm As Form > CurrentDb.Execute "Update uSysDefault Set Language = " & Language > 'update all open forms > For Each frm In Application.Forms > SetCaptions frm > Next > End Function > From jwcolby at colbyconsulting.com Wed Feb 25 08:01:42 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 09:01:42 -0500 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: References: <49A54330.3030705@colbyconsulting.com> Message-ID: <49A54F46.30803@colbyconsulting.com> > Who are you and what have you done with Colby? Who? John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Who are you and what have you done with Colby? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 25, 2009 5:10 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Apologies guys - was Tags. > > I wanted to apologize for the rant yesterday. Of course there is a valid > reason for using tags, actually two valid reasons. > > 1) You are capable of using them > 2) You want something that loads with the form. > > I used tags in the past for exactly those two reasons. > > I was mostly responding to the implication that NOT using the tags was silly > when "they already exist so why not". I try very hard to use good > programming practices and I have spent a lot of time learning how to use > tools that make tags unnecessary FOR ME. The hardware, and my knowledge of > VBA programming constructs make tags unnecessary (and bad practice) FOR ME. > > Of course if tags are the right tool for you, then you absolutely should use > them. > > I will not be responding to this thread any more, and sorry for the rant. > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From fuller.artful at gmail.com Wed Feb 25 08:05:04 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Wed, 25 Feb 2009 09:05:04 -0500 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: <49A54F46.30803@colbyconsulting.com> References: <49A54330.3030705@colbyconsulting.com> <49A54F46.30803@colbyconsulting.com> Message-ID: <29f585dd0902250605w3c6bd5e3q7818f7d0fd1063d5@mail.gmail.com> There's a little-known setting in Outlook -- Rant = Off. LOL. On Wed, Feb 25, 2009 at 9:01 AM, jwcolby wrote: > > Who are you and what have you done with Colby? > > Who? > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: > > Who are you and what have you done with Colby? > > > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > > Sent: Wednesday, February 25, 2009 5:10 AM > > To: Access Developers discussion and problem solving > > Subject: [AccessD] Apologies guys - was Tags. > > > > I wanted to apologize for the rant yesterday. Of course there is a valid > > reason for using tags, actually two valid reasons. > > > > 1) You are capable of using them > > 2) You want something that loads with the form. > > > > I used tags in the past for exactly those two reasons. > > > > I was mostly responding to the implication that NOT using the tags was > silly > > when "they already exist so why not". I try very hard to use good > > programming practices and I have spent a lot of time learning how to use > > tools that make tags unnecessary FOR ME. The hardware, and my knowledge > of > > VBA programming constructs make tags unnecessary (and bad practice) FOR > ME. > > > > Of course if tags are the right tool for you, then you absolutely should > use > > them. > > > > I will not be responding to this thread any more, and sorry for the rant. > > > > -- > > John W. Colby > > www.ColbyConsulting.com > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From fuller.artful at gmail.com Wed Feb 25 08:11:49 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Wed, 25 Feb 2009 09:11:49 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <49a5090f.0a1ad00a.5cd5.fffff98e@mx.google.com> References: <49a5090f.0a1ad00a.5cd5.fffff98e@mx.google.com> Message-ID: <29f585dd0902250611y3a816f89v38f1695de30f6627@mail.gmail.com> I didn't see Shamil's post either. On Wed, Feb 25, 2009 at 4:01 AM, Max Wanadoo wrote: > I didn't see any posting from Shamil. Can somebody please repost to me. I > always like to read what he has to say (for those few postings which are > not > w.a.y... over my head). > > > Thanks > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: 25 February 2009 08:34 > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - > Now Tag is the Answer > > Hi John > > Well, Shamil can certainly speak for himself, but I think the scope of his > comment and the referred links is a little wider than a Tag of a control. > > /gustav > > >>> jwcolby at colbyconsulting.com 25-02-2009 00:03 >>> > .. > I choose not to comment on Shamil's opinions. > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Wed Feb 25 08:16:27 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 09:16:27 -0500 Subject: [AccessD] Find First in an Array? - The Solution Revisited - Now Tag is the Answer In-Reply-To: <49a4fbec.0707d00a.159f.3fda@mx.google.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49A47CBE.5000306@colbyconsulting.com> <49A48DB6.2040806@colbyconsulting.com> <49a4fbec.0707d00a.159f.3fda@mx.google.com> Message-ID: <49A552BB.40902@colbyconsulting.com> Max, I spent months one time (late 90s) designing my first iteration of the LightWeight Security System, using only tags and form properties. It stored a ton of security information into the tags, and information about the forms into the form's custom properties. It worked. It was tough to troubleshoot. I wrote custom forms to read the tags out and display them for me so that I could see what was happening in my code. It worked. It was TOUGH troubleshoot. I ended up with a functioning system, quite complex functionality, doing exactly what I intended it to do, using control tags to store a whole TON of information about each control, loaded with the form, ready to go. It worked. It was TOUGH to troubleshoot. It was tough to make changes to. The code was byzantine. I would do it all over again if that was the only tool at my disposal, but it isn't any more. Given the tools I now have I do not use the tags anymore. Back in the late 90s when I was doing that stuff my systems were running on 100 and 200 mhz machines. They had 128 megs of RAM. They had slower hard drives. I did not even know collections existed (which I still find hard to believe!). Tags absolutely made sense, if for no other reason than that the hardware was barely up to the task. So it is at the very least safe to say that I have more experience with using tags than MOST of the AccessD users. You strike me as a guy that may have me beat though. ;) John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: >>> William, I used tags, more than anyone in AccessD, I would bet a paycheck > on that > > Wheredya get a paycheck from? I want one! > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! From jwcolby at colbyconsulting.com Wed Feb 25 08:17:49 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 09:17:49 -0500 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: <29f585dd0902250605w3c6bd5e3q7818f7d0fd1063d5@mail.gmail.com> References: <49A54330.3030705@colbyconsulting.com> <49A54F46.30803@colbyconsulting.com> <29f585dd0902250605w3c6bd5e3q7818f7d0fd1063d5@mail.gmail.com> Message-ID: <49A5530D.30802@colbyconsulting.com> I need to find the property in Thunderbird "don't send rant". LOL. John W. Colby www.ColbyConsulting.com Arthur Fuller wrote: > There's a little-known setting in Outlook -- Rant = Off. LOL. > > On Wed, Feb 25, 2009 at 9:01 AM, jwcolby wrote: > >> > Who are you and what have you done with Colby? >> >> Who? >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Rocky Smolin at Beach Access Software wrote: >>> Who are you and what have you done with Colby? >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >>> >>> >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>> Sent: Wednesday, February 25, 2009 5:10 AM >>> To: Access Developers discussion and problem solving >>> Subject: [AccessD] Apologies guys - was Tags. >>> >>> I wanted to apologize for the rant yesterday. Of course there is a valid >>> reason for using tags, actually two valid reasons. >>> >>> 1) You are capable of using them >>> 2) You want something that loads with the form. >>> >>> I used tags in the past for exactly those two reasons. >>> >>> I was mostly responding to the implication that NOT using the tags was >> silly >>> when "they already exist so why not". I try very hard to use good >>> programming practices and I have spent a lot of time learning how to use >>> tools that make tags unnecessary FOR ME. The hardware, and my knowledge >> of >>> VBA programming constructs make tags unnecessary (and bad practice) FOR >> ME. >>> Of course if tags are the right tool for you, then you absolutely should >> use >>> them. >>> >>> I will not be responding to this thread any more, and sorry for the rant. >>> >>> -- >>> John W. Colby >>> www.ColbyConsulting.com >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> From jimdettman at verizon.net Wed Feb 25 08:43:49 2009 From: jimdettman at verizon.net (Jim Dettman) Date: Wed, 25 Feb 2009 09:43:49 -0500 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: References: <49A54330.3030705@colbyconsulting.com> Message-ID: <2EA42A19C04E4E398CB321260C63037D@XPS> Really, I was wondering the same thing.... Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 8:46 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Apologies guys - was Tags. Who are you and what have you done with Colby? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 5:10 AM To: Access Developers discussion and problem solving Subject: [AccessD] Apologies guys - was Tags. I wanted to apologize for the rant yesterday. Of course there is a valid reason for using tags, actually two valid reasons. 1) You are capable of using them 2) You want something that loads with the form. I used tags in the past for exactly those two reasons. I was mostly responding to the implication that NOT using the tags was silly when "they already exist so why not". I try very hard to use good programming practices and I have spent a lot of time learning how to use tools that make tags unnecessary FOR ME. The hardware, and my knowledge of VBA programming constructs make tags unnecessary (and bad practice) FOR ME. Of course if tags are the right tool for you, then you absolutely should use them. I will not be responding to this thread any more, and sorry for the rant. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Wed Feb 25 08:53:53 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 25 Feb 2009 09:53:53 -0500 Subject: [AccessD] Apologies guys - was Tags. References: <49A54330.3030705@colbyconsulting.com> <2EA42A19C04E4E398CB321260C63037D@XPS> Message-ID: <07509E439D0A4812B34A9F06276BE373@jislaptopdev> ...I no longer wonder about jc ...I take him in small doses and well appreciate the key role he plays here. ...like everyone else, I sorely missed his presence ...and iirc it was a war thread just like this one that sent him off into the nether for so long ...would really hate to see that happen again ...I learn too much from his posts ...even when he's wrong :) William -------------------------------------------------- From: "Jim Dettman" Sent: Wednesday, February 25, 2009 9:43 AM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Apologies guys - was Tags. > > Really, I was wondering the same thing.... > > Jim. > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: Wednesday, February 25, 2009 8:46 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Apologies guys - was Tags. > > Who are you and what have you done with Colby? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 25, 2009 5:10 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Apologies guys - was Tags. > > I wanted to apologize for the rant yesterday. Of course there is a valid > reason for using tags, actually two valid reasons. > > 1) You are capable of using them > 2) You want something that loads with the form. > > I used tags in the past for exactly those two reasons. > > I was mostly responding to the implication that NOT using the tags was > silly > when "they already exist so why not". I try very hard to use good > programming practices and I have spent a lot of time learning how to use > tools that make tags unnecessary FOR ME. The hardware, and my knowledge > of > VBA programming constructs make tags unnecessary (and bad practice) FOR > ME. > > Of course if tags are the right tool for you, then you absolutely should > use > them. > > I will not be responding to this thread any more, and sorry for the rant. > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From mcp2004 at mail.ru Wed Feb 25 08:59:53 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Wed, 25 Feb 2009 17:59:53 +0300 Subject: [AccessD] =?koi8-r?b?RmluZCBGaXJzdCBpbiBhbiBBcnJheT8gLSBUaGUgU29s?= =?koi8-r?b?dXRpb25SZXZpc2l0ZWQJLQlOb3cgVGFnIGlzIHRoZSBBbnN3ZXI=?= In-Reply-To: <49a5090f.0a1ad00a.5cd5.fffff98e@mx.google.com> References: <49a5090f.0a1ad00a.5cd5.fffff98e@mx.google.com> Message-ID: Hi Max, Thank you. Sorry for some following off-topic guys. I have been Finland for several days, and I have got DANUBE's (http://www.danube.com/) Certified SCRUMMaster training: I ilked it, and it was an "eye opener" in some of the areas of agile software development... I also liked the foods, walking around Helsinki downtown, which is in some places very much alike to St.Petersburg's architecture, clear water and fresh air and a rather comfortavle Radisson SAS Royal Hotel staying: would I have had been more wealthy I would have been going travelling much more often to Finland, and the West Europe (and the States and Canada and Australia... :) (never been in the latter two)) - just to experience the difference of the living environment :) It's so easy to get to Finland from here these days provided one have Shengen Visa: by own car, by express bus, train etc. even by taxi - still it's the other world with much more comfortable living envionment and much more user-friendly common atmosphere... (Making very big money one can create such a good living environmnet here also these days but that would be isolated one, and of course no one with even huge money can create such an "user-friendly" atmosphere as in Finland (I'm not afraid on snow and frost you know :)) - creating the latter needs "mind shift" of several generations... Based on my new SCRUM experience I'm thinking to propose to develop a sample SCRUM-process driven small (half to one man/month) non-profit/open-source project here, I'm not committing for that activity yet, and I'm not asking volunteers to commit (there will be needed 7+/-2 developers) - I will try to prepare to it, hopefully soon - that project experience and results can be published on AccessD... Maybe it's time to start an AccessD-SCRUM discussion list? Thank you. -- Shamil -----Original Message----- From: "Max Wanadoo" To: "'Access Developers discussion and problem solving'" Date: Wed, 25 Feb 2009 09:01:59 -0000 Subject: Re: [AccessD] Find First in an Array? - The SolutionRevisited - Now Tag is the Answer > I didn't see any posting from Shamil. Can somebody please repost to me. I > always like to read what he has to say (for those few postings which are not > w.a.y... over my head). > > > Thanks > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: 25 February 2009 08:34 > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited - > Now Tag is the Answer > > Hi John > > Well, Shamil can certainly speak for himself, but I think the scope of his > comment and the referred links is a little wider than a Tag of a control. > > /gustav > > >>> jwcolby at colbyconsulting.com 25-02-2009 00:03 >>> > .. > I choose not to comment on Shamil's opinions. > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From rockysmolin at bchacc.com Wed Feb 25 09:00:03 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 25 Feb 2009 07:00:03 -0800 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: <2EA42A19C04E4E398CB321260C63037D@XPS> References: <49A54330.3030705@colbyconsulting.com> <2EA42A19C04E4E398CB321260C63037D@XPS> Message-ID: <5D9C957E96D043BAB7B7E7F92420F200@HAL9005> If he craves punishment to expiate his sins it should be up to us, not him, to devise something appropriate. Like we could agree with everything he says for two weeks. How frustrating would that be for him? (Colby: Oh, dear God...no...so diabolical...(cold sweat breaks out on Colby's forehead)) Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman Sent: Wednesday, February 25, 2009 6:44 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Apologies guys - was Tags. Really, I was wondering the same thing.... Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 8:46 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Apologies guys - was Tags. Who are you and what have you done with Colby? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 5:10 AM To: Access Developers discussion and problem solving Subject: [AccessD] Apologies guys - was Tags. I wanted to apologize for the rant yesterday. Of course there is a valid reason for using tags, actually two valid reasons. 1) You are capable of using them 2) You want something that loads with the form. I used tags in the past for exactly those two reasons. I was mostly responding to the implication that NOT using the tags was silly when "they already exist so why not". I try very hard to use good programming practices and I have spent a lot of time learning how to use tools that make tags unnecessary FOR ME. The hardware, and my knowledge of VBA programming constructs make tags unnecessary (and bad practice) FOR ME. Of course if tags are the right tool for you, then you absolutely should use them. I will not be responding to this thread any more, and sorry for the rant. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 25 09:08:22 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 25 Feb 2009 07:08:22 -0800 Subject: [AccessD] FW: Translation DB Message-ID: John: I just got another great solution from Jim Dettman, which you should take a look at. Now I'm thinking that for your eBook - unless you want to stick strictly with classes and collections - you could take all of these solutions and include them as a case study in how many great ways there are to skin this cat. I think it might make an interesting story if followed chronologically - how the discussion of translations stimulated al these terrific solutions. I don't know how big the market would be for this, but for anyone interested it would be of great value. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com _____ From: Jim Dettman [mailto:jimdettman at verizon.net] Sent: Wednesday, February 25, 2009 6:43 AM To: 'Rocky Smolin at Beach Access Software' Subject: Translation DB Rocky, First let me point out that this is just proof of concept. I would not consider this "polished" and ready for production by any means. For example, I open the translation table as a global recordset, but don't close it anywhere at present. SetLanguage() should be callable from anywhere not just frmSelectLanguage, so it should be checking that the languageID passed in is a valid one, etc. There are a bunch of ways that you could move forward with something like this, and that is why I haven't tried to address any of those issues. When you open the db, the Language selection form will pop up. Pick any one of the languages and then open another form and you'll find it translated. Note that you must select something or you'll get an error. Again, it's just not polished off. For me, hooking this in would be a simple task even though with my Access apps I typically don't use classes. For a number of years I've used standard routines that I call from every forms OnOpen, OnClose, etc. events and I would simply add this call to one of those routines. I do have some extra overhead in that if I need to change the call for the event I have to run through every form, but I have code to do that so it's quite painless. In affect, for the most part I get the same thing that John gets with his classes, but without all the additional overhead of using them. If your not already doing that, this would probably be a good time to do so and put the translation in the standard procedure. ie. Open event: =StdFormCtrl([Form],"OnOpen"). The translation would be called in StdFormCtrl(). I do use classes when I need multiple instances of something, but for the most part I stick to standard procedures when working with Access since class implementation in VBA leaves something to be desired (no implementation inheritance and since inheritance really is the whole point of using classes, I think they are more or less a waste in Access). Performance wise I think you will find this more then acceptable. Of course, the language translation table would need to be part of the FE. It would not be something I would stick a BE since it will only change if the app changes. Performance I think should continue to be more then acceptable even if you added another dozen languages or so. You could also go back to the de-normalized approach you had with each language in a separate field in a single record if it did prove to be a problem. The only thing this would change is that you'd need to add an if check on the language ID to get to the right field. Although now that I say that, that is not even true as you could store the language name as well as the ID and reference the field in the record set by name: grstTranslate(gstrLanguageName) when grabbing the translation. With the DB I'm giving you, it would be easy to test as I left the original table. You just need to make a few minor modifications SetLanguage() and TranslateForm() Note also that I only did label captions. I didn't touch buttons. Enjoy! JimD. From jwcolby at colbyconsulting.com Wed Feb 25 09:15:38 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 10:15:38 -0500 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: <2EA42A19C04E4E398CB321260C63037D@XPS> References: <49A54330.3030705@colbyconsulting.com> <2EA42A19C04E4E398CB321260C63037D@XPS> Message-ID: <49A5609A.6010901@colbyconsulting.com> I was annoyed. I'm over it. Someday I won't get annoyed. That is called DEAD. ;-) John W. Colby www.ColbyConsulting.com Jim Dettman wrote: > Really, I was wondering the same thing.... > > Jim. > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: Wednesday, February 25, 2009 8:46 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Apologies guys - was Tags. > > Who are you and what have you done with Colby? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 25, 2009 5:10 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Apologies guys - was Tags. > > I wanted to apologize for the rant yesterday. Of course there is a valid > reason for using tags, actually two valid reasons. > > 1) You are capable of using them > 2) You want something that loads with the form. > > I used tags in the past for exactly those two reasons. > > I was mostly responding to the implication that NOT using the tags was silly > when "they already exist so why not". I try very hard to use good > programming practices and I have spent a lot of time learning how to use > tools that make tags unnecessary FOR ME. The hardware, and my knowledge of > VBA programming constructs make tags unnecessary (and bad practice) FOR ME. > > Of course if tags are the right tool for you, then you absolutely should use > them. > > I will not be responding to this thread any more, and sorry for the rant. > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From wdhindman at dejpolsystems.com Wed Feb 25 09:15:44 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 25 Feb 2009 10:15:44 -0500 Subject: [AccessD] Write Conflict References: <49A54330.3030705@colbyconsulting.com> <2EA42A19C04E4E398CB321260C63037D@XPS> Message-ID: ...first time I've seen this one ...cbf ----------------------------------------------------------------------------------------- Option Compare Database Option Explicit Private Sub cboParticipantType_AfterUpdate() ' Force save and refresh records On Error GoTo HandleErr DoCmd.RunCommand acCmdSaveRecord Me.Requery exithere: Exit Sub HandleErr: Select Case Err Case Else MsgBox Err & ": " & Err.Description, vbCritical, _ "Error in Form_frmCompanyEventsSub.cboParticipantType_AfterUpdate" End Select Resume exithere Resume End Sub Private Sub Form_Dirty(Cancel As Integer) 'MsgBox "Record Changed" On Error GoTo Form_Dirty_Error Parent!txtUpdated = Date 'update the LastUpdated to today's date if the form record was changed. Parent!txtUpdateBy = Environ("USERNAME") Me.Repaint On Error GoTo 0 Exit Sub Form_Dirty_Error: MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Form_Dirty of VBA Document Form_frmCompanyEventsSub" End Sub ----------------------------------------------------------------------------------------- ...the Form_Dirty is the new code ...works elsewhere in main forms without problems ...but this is a sub and I'm changing field data on the parent. ...I get a Write Conflict dialog box "This record has been changed by another user" with three buttons: "Save Record" "Copy to Clipboard" "Drop Changes" ...annoying to say the least ...any idea why this is happening? William From jwcolby at colbyconsulting.com Wed Feb 25 09:17:24 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 10:17:24 -0500 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: <07509E439D0A4812B34A9F06276BE373@jislaptopdev> References: <49A54330.3030705@colbyconsulting.com> <2EA42A19C04E4E398CB321260C63037D@XPS> <07509E439D0A4812B34A9F06276BE373@jislaptopdev> Message-ID: <49A56104.9040502@colbyconsulting.com> >even when he's wrong :) Wrong? WRONG??? ROTFL. John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...I no longer wonder about jc ...I take him in small doses and well > appreciate the key role he plays here. > ...like everyone else, I sorely missed his presence > ...and iirc it was a war thread just like this one that sent him off into > the nether for so long > ...would really hate to see that happen again ...I learn too much from his > posts ...even when he's wrong :) > > William > > -------------------------------------------------- > From: "Jim Dettman" > Sent: Wednesday, February 25, 2009 9:43 AM > To: "'Access Developers discussion and problem solving'" > > Subject: Re: [AccessD] Apologies guys - was Tags. > >> Really, I was wondering the same thing.... >> >> Jim. >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at >> Beach Access Software >> Sent: Wednesday, February 25, 2009 8:46 AM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Apologies guys - was Tags. >> >> Who are you and what have you done with Colby? >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Wednesday, February 25, 2009 5:10 AM >> To: Access Developers discussion and problem solving >> Subject: [AccessD] Apologies guys - was Tags. >> >> I wanted to apologize for the rant yesterday. Of course there is a valid >> reason for using tags, actually two valid reasons. >> >> 1) You are capable of using them >> 2) You want something that loads with the form. >> >> I used tags in the past for exactly those two reasons. >> >> I was mostly responding to the implication that NOT using the tags was >> silly >> when "they already exist so why not". I try very hard to use good >> programming practices and I have spent a lot of time learning how to use >> tools that make tags unnecessary FOR ME. The hardware, and my knowledge >> of >> VBA programming constructs make tags unnecessary (and bad practice) FOR >> ME. >> >> Of course if tags are the right tool for you, then you absolutely should >> use >> them. >> >> I will not be responding to this thread any more, and sorry for the rant. >> >> -- >> John W. Colby >> www.ColbyConsulting.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From rockysmolin at bchacc.com Wed Feb 25 09:24:11 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 25 Feb 2009 07:24:11 -0800 Subject: [AccessD] Write Conflict In-Reply-To: References: <49A54330.3030705@colbyconsulting.com><2EA42A19C04E4E398CB321260C63037D@XPS> Message-ID: Have struggled with the same problem in an app and have found no good solution - not even the definite cause. You can try setting Dirty = False but of course having it as True is telling you something which you may need to know. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Wednesday, February 25, 2009 7:16 AM To: Access Developers discussion and problem solving Subject: [AccessD] Write Conflict ...first time I've seen this one ...cbf ---------------------------------------------------------------------------- ------------- Option Compare Database Option Explicit Private Sub cboParticipantType_AfterUpdate() ' Force save and refresh records On Error GoTo HandleErr DoCmd.RunCommand acCmdSaveRecord Me.Requery exithere: Exit Sub HandleErr: Select Case Err Case Else MsgBox Err & ": " & Err.Description, vbCritical, _ "Error in Form_frmCompanyEventsSub.cboParticipantType_AfterUpdate" End Select Resume exithere Resume End Sub Private Sub Form_Dirty(Cancel As Integer) 'MsgBox "Record Changed" On Error GoTo Form_Dirty_Error Parent!txtUpdated = Date 'update the LastUpdated to today's date if the form record was changed. Parent!txtUpdateBy = Environ("USERNAME") Me.Repaint On Error GoTo 0 Exit Sub Form_Dirty_Error: MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Form_Dirty of VBA Document Form_frmCompanyEventsSub" End Sub ---------------------------------------------------------------------------- ------------- ...the Form_Dirty is the new code ...works elsewhere in main forms without problems ...but this is a sub and I'm changing field data on the parent. ...I get a Write Conflict dialog box "This record has been changed by another user" with three buttons: "Save Record" "Copy to Clipboard" "Drop Changes" ...annoying to say the least ...any idea why this is happening? William -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From DWUTKA at Marlow.com Wed Feb 25 09:38:48 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Wed, 25 Feb 2009 09:38:48 -0600 Subject: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer In-Reply-To: <49a4f6f4.0508d00a.2a03.1b53@mx.google.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg><49A47CBE.5000306@colbyconsulting.com> <49a4f6f4.0508d00a.2a03.1b53@mx.google.com> Message-ID: JC likes to rant a bit. He is right that classes and collections are more powerful and much more flexible. But you are right too, they are there for a reason. One specific reason is that Tags are a property that's saved in the design of the form. Many uses for that. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Wednesday, February 25, 2009 1:45 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer I agree with Stuart. It is a property put there for the sole purpose of being used by developers for whatever reason they think fit. Its use is no more amateurish then using Access itself. It is A-Political and neither attracts nor detracts from anything else. My 2p worth Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwcolby at colbyconsulting.com Wed Feb 25 09:38:56 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 10:38:56 -0500 Subject: [AccessD] FW: Translation DB In-Reply-To: References: Message-ID: <49A56610.50105@colbyconsulting.com> Rocky, > I just got another great solution from Jim Dettman, which you should take a look at. I am collecting solutions in a directory under the Classes documents I am writing. Attach it to an email to me and I will definitely take a look. Anyone else who wants can also send me their solution which uses Rocky's DB to actually perform translations. Can I make a request though, that everyone try to standardize the solution so that there is a translation form with combos that allows the user to select a language and a form and the form opens with translation applied. That would make it easier to evaluate the various solutions. Please also note that for Rocky's use, an "on-the-fly" translation is required, i.e. translating the forms in design view and storing them won't work (for him) so to make it apples to apples, your code needs to translate as the form opens. I will add timer code to time the form's opening and post results so that everyone can see how the various solutions work in terms of speed. In fact I will build a test harness to time opening the forms repeatedly, so that we get a "total time to open 100 times" or something similar. I already have solutions for Drew and Max. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > John: > > I just got another great solution from Jim Dettman, which you should take a > look at. > > Now I'm thinking that for your eBook - unless you want to stick strictly > with classes and collections - you could take all of these solutions and > include them as a case study in how many great ways there are to skin this > cat. I think it might make an interesting story if followed chronologically > - how the discussion of translations stimulated al these terrific solutions. > > > I don't know how big the market would be for this, but for anyone interested > it would be of great value. > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > > _____ > > From: Jim Dettman [mailto:jimdettman at verizon.net] > Sent: Wednesday, February 25, 2009 6:43 AM > To: 'Rocky Smolin at Beach Access Software' > Subject: Translation DB > > > Rocky, > > First let me point out that this is just proof of concept. I would not > consider this "polished" and ready for production by any means. For > example, I open the translation table as a global recordset, but don't close > it anywhere at present. SetLanguage() should be callable from anywhere not > just frmSelectLanguage, so it should be checking that the languageID passed > in is a valid one, etc. There are a bunch of ways that you could move > forward with something like this, and that is why I haven't tried to > address any of those issues. > > When you open the db, the Language selection form will pop up. Pick any > one of the languages and then open another form and you'll find it > translated. Note that you must select something or you'll get an error. > Again, it's just not polished off. > > For me, hooking this in would be a simple task even though with my Access > apps I typically don't use classes. For a number of years I've used > standard routines that I call from every forms OnOpen, OnClose, etc. events > and I would simply add this call to one of those routines. I do have some > extra overhead in that if I need to change the call for the event I have to > run through every form, but I have code to do that so it's quite painless. > In affect, for the most part I get the same thing that John gets with his > classes, but without all the additional overhead of using them. > > If your not already doing that, this would probably be a good time to do > so and put the translation in the standard procedure. ie. Open event: > =StdFormCtrl([Form],"OnOpen"). The translation would be called in > StdFormCtrl(). > > I do use classes when I need multiple instances of something, but for the > most part I stick to standard procedures when working with Access since > class implementation in VBA leaves something to be desired (no > implementation inheritance and since inheritance really is the whole point > of using classes, I think they are more or less a waste in Access). > > Performance wise I think you will find this more then acceptable. Of > course, the language translation table would need to be part of the FE. It > would not be something I would stick a BE since it will only change if the > app changes. > > Performance I think should continue to be more then acceptable even if you > added another dozen languages or so. You could also go back to the > de-normalized approach you had with each language in a separate field in a > single record if it did prove to be a problem. The only thing this would > change is that you'd need to add an if check on the language ID to get to > the right field. Although now that I say that, that is not even true as you > could store the language name as well as the ID and reference the field in > the record set by name: grstTranslate(gstrLanguageName) when grabbing the > translation. With the DB I'm giving you, it would be easy to test as I left > the original table. You just need to make a few minor modifications > SetLanguage() and TranslateForm() > > Note also that I only did label captions. I didn't touch buttons. > > Enjoy! > > JimD. From jwcolby at colbyconsulting.com Wed Feb 25 09:47:31 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 10:47:31 -0500 Subject: [AccessD] Class costs & benefits Message-ID: <49A56813.60403@colbyconsulting.com> From Rocky's email I thought that perhaps a thread on what the costs and benefits are for classes. Jim made a statement that he felt that "Access has no implementation inheritance and since inheritance really is the whole point of using classes, I think they are more or less a waste in Access". So what are your feelings and opinions about classes? I will promise to treat every opinion as valid and not go into rant mode. ;) In fact I will promise to not respond to any message unless the author specifically asks me to for some reason. -- John W. Colby www.ColbyConsulting.com From DWUTKA at Marlow.com Wed Feb 25 09:53:13 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Wed, 25 Feb 2009 09:53:13 -0600 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: <49A54330.3030705@colbyconsulting.com> References: <49A54330.3030705@colbyconsulting.com> Message-ID: Did you have a religious experience or something???? Hey, just glad to have ya back on the list, I missed our jousts, and I always find your posts logical (most of the time ) and well thought out! Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 7:10 AM To: Access Developers discussion and problem solving Subject: [AccessD] Apologies guys - was Tags. I wanted to apologize for the rant yesterday. Of course there is a valid reason for using tags, actually two valid reasons. 1) You are capable of using them 2) You want something that loads with the form. I used tags in the past for exactly those two reasons. I was mostly responding to the implication that NOT using the tags was silly when "they already exist so why not". I try very hard to use good programming practices and I have spent a lot of time learning how to use tools that make tags unnecessary FOR ME. The hardware, and my knowledge of VBA programming constructs make tags unnecessary (and bad practice) FOR ME. Of course if tags are the right tool for you, then you absolutely should use them. I will not be responding to this thread any more, and sorry for the rant. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Wed Feb 25 09:57:39 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Wed, 25 Feb 2009 09:57:39 -0600 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: <49A5530D.30802@colbyconsulting.com> References: <49A54330.3030705@colbyconsulting.com> <49A54F46.30803@colbyconsulting.com><29f585dd0902250605w3c6bd5e3q7818f7d0fd1063d5@mail.gmail.com> <49A5530D.30802@colbyconsulting.com> Message-ID: There is actually a product available to help with that.... Known developers: Budweiser Coors Michelob There are others of course! What's great is that all of the vendors are completely compatible with any email program you want to use! Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 8:18 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Apologies guys - was Tags. I need to find the property in Thunderbird "don't send rant". LOL. John W. Colby www.ColbyConsulting.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Wed Feb 25 09:59:14 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Wed, 25 Feb 2009 09:59:14 -0600 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: <07509E439D0A4812B34A9F06276BE373@jislaptopdev> References: <49A54330.3030705@colbyconsulting.com><2EA42A19C04E4E398CB321260C63037D@XPS> <07509E439D0A4812B34A9F06276BE373@jislaptopdev> Message-ID: "...even when he's wrong" William lights the match, and tosses it into the gasoline storage tank..... You'd think you'd learn, living in Hurricane Junction there! ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Wednesday, February 25, 2009 8:54 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Apologies guys - was Tags. ...I no longer wonder about jc ...I take him in small doses and well appreciate the key role he plays here. ...like everyone else, I sorely missed his presence ...and iirc it was a war thread just like this one that sent him off into the nether for so long ...would really hate to see that happen again ...I learn too much from his posts ...even when he's wrong :) William -------------------------------------------------- From: "Jim Dettman" Sent: Wednesday, February 25, 2009 9:43 AM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Apologies guys - was Tags. > > Really, I was wondering the same thing.... > > Jim. > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Wed Feb 25 10:00:52 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Wed, 25 Feb 2009 10:00:52 -0600 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: <49A5609A.6010901@colbyconsulting.com> References: <49A54330.3030705@colbyconsulting.com> <2EA42A19C04E4E398CB321260C63037D@XPS> <49A5609A.6010901@colbyconsulting.com> Message-ID: ROTFLMAO!!! It's called eccentric! And you won't find a genius out there that isn't eccentric! Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 9:16 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Apologies guys - was Tags. I was annoyed. I'm over it. Someday I won't get annoyed. That is called DEAD. ;-) John W. Colby www.ColbyConsulting.com Jim Dettman wrote: > Really, I was wondering the same thing.... > > Jim. > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: Wednesday, February 25, 2009 8:46 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Apologies guys - was Tags. > > Who are you and what have you done with Colby? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Wed Feb 25 10:03:50 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Wed, 25 Feb 2009 10:03:50 -0600 Subject: [AccessD] Write Conflict In-Reply-To: References: <49A54330.3030705@colbyconsulting.com><2EA42A19C04E4E398CB321260C63037D@XPS> Message-ID: Can you try changing the updates to SQL statements that update the actual record, and not the form? Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Wednesday, February 25, 2009 9:16 AM To: Access Developers discussion and problem solving Subject: [AccessD] Write Conflict ...first time I've seen this one ...cbf ------------------------------------------------------------------------ ----------------- Option Compare Database Option Explicit Private Sub cboParticipantType_AfterUpdate() ' Force save and refresh records On Error GoTo HandleErr DoCmd.RunCommand acCmdSaveRecord Me.Requery exithere: Exit Sub HandleErr: Select Case Err Case Else MsgBox Err & ": " & Err.Description, vbCritical, _ "Error in Form_frmCompanyEventsSub.cboParticipantType_AfterUpdate" End Select Resume exithere Resume End Sub Private Sub Form_Dirty(Cancel As Integer) 'MsgBox "Record Changed" On Error GoTo Form_Dirty_Error Parent!txtUpdated = Date 'update the LastUpdated to today's date if the form record was changed. Parent!txtUpdateBy = Environ("USERNAME") Me.Repaint On Error GoTo 0 Exit Sub Form_Dirty_Error: MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Form_Dirty of VBA Document Form_frmCompanyEventsSub" End Sub ------------------------------------------------------------------------ ----------------- ...the Form_Dirty is the new code ...works elsewhere in main forms without problems ...but this is a sub and I'm changing field data on the parent. ...I get a Write Conflict dialog box "This record has been changed by another user" with three buttons: "Save Record" "Copy to Clipboard" "Drop Changes" ...annoying to say the least ...any idea why this is happening? William -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwcolby at colbyconsulting.com Wed Feb 25 10:03:48 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 11:03:48 -0500 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: References: <49A54330.3030705@colbyconsulting.com> <49A54F46.30803@colbyconsulting.com><29f585dd0902250605w3c6bd5e3q7818f7d0fd1063d5@mail.gmail.com> <49A5530D.30802@colbyconsulting.com> Message-ID: <49A56BE4.9050708@colbyconsulting.com> Unfortunately I am unable to use any of those solutions. Since my intelligence is so obviously artificial, I need an artificial intelligence solution to combat it. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > There is actually a product available to help with that.... > > Known developers: > > Budweiser > Coors > Michelob > > There are others of course! > > What's great is that all of the vendors are completely compatible with > any email program you want to use! > > Drew > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 25, 2009 8:18 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Apologies guys - was Tags. > > I need to find the property in Thunderbird "don't send rant". > > LOL. > > John W. Colby > www.ColbyConsulting.com > > > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > > From DWUTKA at Marlow.com Wed Feb 25 10:05:38 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Wed, 25 Feb 2009 10:05:38 -0600 Subject: [AccessD] FW: Translation DB In-Reply-To: <49A56610.50105@colbyconsulting.com> References: <49A56610.50105@colbyconsulting.com> Message-ID: How did mine time out? I saw your post about having a collection for every form. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 9:39 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] FW: Translation DB Rocky, > I just got another great solution from Jim Dettman, which you should take a look at. I am collecting solutions in a directory under the Classes documents I am writing. Attach it to an email to me and I will definitely take a look. Anyone else who wants can also send me their solution which uses Rocky's DB to actually perform translations. Can I make a request though, that everyone try to standardize the solution so that there is a translation form with combos that allows the user to select a language and a form and the form opens with translation applied. That would make it easier to evaluate the various solutions. Please also note that for Rocky's use, an "on-the-fly" translation is required, i.e. translating the forms in design view and storing them won't work (for him) so to make it apples to apples, your code needs to translate as the form opens. I will add timer code to time the form's opening and post results so that everyone can see how the various solutions work in terms of speed. In fact I will build a test harness to time opening the forms repeatedly, so that we get a "total time to open 100 times" or something similar. I already have solutions for Drew and Max. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > John: > > I just got another great solution from Jim Dettman, which you should take a > look at. > > Now I'm thinking that for your eBook - unless you want to stick strictly > with classes and collections - you could take all of these solutions and > include them as a case study in how many great ways there are to skin this > cat. I think it might make an interesting story if followed chronologically > - how the discussion of translations stimulated al these terrific solutions. > > > I don't know how big the market would be for this, but for anyone interested > it would be of great value. > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > > _____ > > From: Jim Dettman [mailto:jimdettman at verizon.net] > Sent: Wednesday, February 25, 2009 6:43 AM > To: 'Rocky Smolin at Beach Access Software' > Subject: Translation DB > > > Rocky, > > First let me point out that this is just proof of concept. I would not > consider this "polished" and ready for production by any means. For > example, I open the translation table as a global recordset, but don't close > it anywhere at present. SetLanguage() should be callable from anywhere not > just frmSelectLanguage, so it should be checking that the languageID passed > in is a valid one, etc. There are a bunch of ways that you could move > forward with something like this, and that is why I haven't tried to > address any of those issues. > > When you open the db, the Language selection form will pop up. Pick any > one of the languages and then open another form and you'll find it > translated. Note that you must select something or you'll get an error. > Again, it's just not polished off. > > For me, hooking this in would be a simple task even though with my Access > apps I typically don't use classes. For a number of years I've used > standard routines that I call from every forms OnOpen, OnClose, etc. events > and I would simply add this call to one of those routines. I do have some > extra overhead in that if I need to change the call for the event I have to > run through every form, but I have code to do that so it's quite painless. > In affect, for the most part I get the same thing that John gets with his > classes, but without all the additional overhead of using them. > > If your not already doing that, this would probably be a good time to do > so and put the translation in the standard procedure. ie. Open event: > =StdFormCtrl([Form],"OnOpen"). The translation would be called in > StdFormCtrl(). > > I do use classes when I need multiple instances of something, but for the > most part I stick to standard procedures when working with Access since > class implementation in VBA leaves something to be desired (no > implementation inheritance and since inheritance really is the whole point > of using classes, I think they are more or less a waste in Access). > > Performance wise I think you will find this more then acceptable. Of > course, the language translation table would need to be part of the FE. It > would not be something I would stick a BE since it will only change if the > app changes. > > Performance I think should continue to be more then acceptable even if you > added another dozen languages or so. You could also go back to the > de-normalized approach you had with each language in a separate field in a > single record if it did prove to be a problem. The only thing this would > change is that you'd need to add an if check on the language ID to get to > the right field. Although now that I say that, that is not even true as you > could store the language name as well as the ID and reference the field in > the record set by name: grstTranslate(gstrLanguageName) when grabbing the > translation. With the DB I'm giving you, it would be easy to test as I left > the original table. You just need to make a few minor modifications > SetLanguage() and TranslateForm() > > Note also that I only did label captions. I didn't touch buttons. > > Enjoy! > > JimD. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From doug at starntech.com Wed Feb 25 10:06:29 2009 From: doug at starntech.com (Doug Barnes) Date: Wed, 25 Feb 2009 11:06:29 -0500 Subject: [AccessD] Quickbooks In-Reply-To: Message-ID: Rocky, We had a problem with our IP yesterday and all email was lost for the rest of the day (go figure). If you tried to send the file(s) to me, it probably got bounced back. We have the problem fixed for now. Version of Qb from what the people tell me is 2000. doug at starntech.com thanks, Doug -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Doug Barnes Sent: Tuesday, February 24, 2009 11:43 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Quickbooks Thanks Rocky, I be more than happy if you could sent the info. doug at starntech.com Doug -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Rocky Smolin at Beach Access Software Sent: Tuesday, February 24, 2009 11:34 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Quickbooks Douglas: What version of QB are they using? The later versions allow import and export via XL or CSV files. I did write a couple interfaces to QB a few years back and it was a real PITA. Like you I found the SDK to be impenetrable. I took a while but I finally found the IIF file layouts and it turned out to be one of the most Kafkaesque approaches to application interfaces I've ever seen. I've still got the formats in a folder but I don't think I can find the link that described how they're used. But I can send them to you offline if you'd like. But check out the version your client is using first and see if it will import from XL or CSV. It will save a lot of aggravation. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Doug Barnes Sent: Tuesday, February 24, 2009 8:20 AM To: Access Developers discussion and problem solving Subject: [AccessD] Quickbooks Hi group, I acquired an older database A2K. They want to export data into an iif file and import that into their QB's. I'm at a loss on how to create the proper formatting for the task at hand. I've looked at the SDK from Intuit and it very overwhelming. Does anybody have a template or other ideas on getting this 'bear' out the door? thanks Douglas Barnes Starn Technical Services P.O. Box 1172 1057 French Street Meadville, PA 16335 P: 814.724.1045 F: 814.337.3460 -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com Internal Virus Database is out of date. Checked by AVG - http://www.avg.com Version: 8.0.233 / Virus Database: 270.10.17/1932 - Release Date: 2/3/2009 7:57 AM -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com Internal Virus Database is out of date. Checked by AVG - http://www.avg.com Version: 8.0.233 / Virus Database: 270.10.17/1932 - Release Date: 2/3/2009 7:57 AM From wdhindman at dejpolsystems.com Wed Feb 25 10:07:07 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 25 Feb 2009 11:07:07 -0500 Subject: [AccessD] Class costs & benefits References: <49A56813.60403@colbyconsulting.com> Message-ID: "In fact I will promise to not respond to any message unless the author specifically asks me to for some reason." jc ...oh come on! ...I'm not begging you to respond to any message ...I hope that you will but that's your choice ...you're being a PITA about this, eh ...you rant, we rant ...that's what makes AccessD better than any other list. ...as for classes, I'm still learning but not yet committed ...in some simple cases so far I've seen advantages in code encapsulation but nothing that I couldn't achieve otherwise ...but classes let me create and raise events outside the cbf ...that certainly has benefits ...beyond that unique trait I'm not yet sold on the "classes everywhere" model you espouse ...still waiting for that magic bullet in your discourse :) William -------------------------------------------------- From: "jwcolby" Sent: Wednesday, February 25, 2009 10:47 AM To: "Access Developers discussion and problem solving" Subject: [AccessD] Class costs & benefits > From Rocky's email I thought that perhaps a thread on what the costs and > benefits are for classes. > > Jim made a statement that he felt that "Access has no implementation > inheritance and since > inheritance really is the whole point of using classes, I think they are > more or less a waste in > Access". > > So what are your feelings and opinions about classes? > > I will promise to treat every opinion as valid and not go into rant mode. > ;) > > In fact I will promise to not respond to any message unless the author > specifically asks me to for > some reason. > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From Gustav at cactus.dk Wed Feb 25 10:07:34 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 25 Feb 2009 17:07:34 +0100 Subject: [AccessD] Scrum (was: Find First in an Array? ...) Message-ID: Hi Shamil Yes, Finland is a nice place - I think - because last time I visited the country was about 35 years ago! But I still remember how to order two beers in Finnish - which by the way is a language very much different from most Western languages. Just to learn how to count to ten is a challenge. I've always had the opinion that things like scrum is a bit overkill when you mostly work on your own projects, but if it can help keeping you organised including keeping track of notes and ideas, this could be the occasion to give it a go. And a "demo" project could be a good method to keep feet on the ground. What kind of project do you have in mind? For those interested I think Danube may not be the best site to start - here is a place that starts at zero: http://www.scrumalliance.org/pages/what_is_scrum /gustav >>> mcp2004 at mail.ru 25-02-2009 15:59 >>> Hi Max, Thank you. Sorry for some following off-topic guys. I have been Finland for several days, and I have got DANUBE's (http://www.danube.com/) Certified SCRUMMaster training: I ilked it, and it was an "eye opener" in some of the areas of agile software development... I also liked the foods, walking around Helsinki downtown, which is in some places very much alike to St.Petersburg's architecture, clear water and fresh air and a rather comfortavle Radisson SAS Royal Hotel staying: would I have had been more wealthy I would have been going travelling much more often to Finland, and the West Europe (and the States and Canada and Australia... :) (never been in the latter two)) - just to experience the difference of the living environment :) It's so easy to get to Finland from here these days provided one have Shengen Visa: by own car, by express bus, train etc. even by taxi - still it's the other world with much more comfortable living envionment and much more user-friendly common atmosphere... (Making very big money one can create such a good living environmnet here also these days but that would be isolated one, and of course no one with even huge money can create such an "user-friendly" atmosphere as in Finland (I'm not afraid on snow and frost you know :)) - creating the latter needs "mind shift" of several generations... Based on my new SCRUM experience I'm thinking to propose to develop a sample SCRUM-process driven small (half to one man/month) non-profit/open-source project here, I'm not committing for that activity yet, and I'm not asking volunteers to commit (there will be needed 7+/-2 developers) - I will try to prepare to it, hopefully soon - that project experience and results can be published on AccessD... Maybe it's time to start an AccessD-SCRUM discussion list? Thank you. -- Shamil From rockysmolin at bchacc.com Wed Feb 25 10:08:51 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 25 Feb 2009 08:08:51 -0800 Subject: [AccessD] Class costs & benefits In-Reply-To: <49A56813.60403@colbyconsulting.com> References: <49A56813.60403@colbyconsulting.com> Message-ID: <49671BEFC8C4469B82EC7ED1898737BB@HAL9005> "I will promise to treat every opinion as valid and not go into rant mode. ;)" Gonna be a pretty dull thread. For those of who don't know, can you define inheritance? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 7:48 AM To: Access Developers discussion and problem solving Subject: [AccessD] Class costs & benefits From Rocky's email I thought that perhaps a thread on what the costs and benefits are for classes. Jim made a statement that he felt that "Access has no implementation inheritance and since inheritance really is the whole point of using classes, I think they are more or less a waste in Access". So what are your feelings and opinions about classes? I will promise to treat every opinion as valid and not go into rant mode. ;) In fact I will promise to not respond to any message unless the author specifically asks me to for some reason. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Wed Feb 25 10:08:25 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Wed, 25 Feb 2009 08:08:25 -0800 Subject: [AccessD] Function vs Sub (was: Classes and Events- EVENTSNOTREQUIRED) In-Reply-To: References: Message-ID: No it doesn't, it's setting a property of the event. That isn't the same thing as returning a value as does a function. Subs are quite capable of setting values or they wouldn't be as useful as they are. They do NOT return a value directly however. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Tuesday, February 24, 2009 11:56 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Function vs Sub (was: Classes and Events- EVENTSNOTREQUIRED) Hi Charlotte Eh, you can't have forgotten that setting Cancel to True in your code of such a sub will return that value to the form? /gustav >>> cfoust at infostatsystems.com 24-02-2009 22:21 >>> Not sure I follow, Stuart. Subs set values like Cancel or process a keycode. They don't return them per se. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Tuesday, February 24, 2009 1:12 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTSNOTREQUIRED) Which begs the question, why does VBA use Subs for event procedures which return values such as Cancel or KeyCode? Aren't these Functions? :-) -- Stuart On 24 Feb 2009 at 9:24, Charlotte Foust wrote: > Absolutely when you need multiple return values, but a simple boolean > or single value? > > Charlotte Foust -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Wed Feb 25 10:11:59 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 25 Feb 2009 11:11:59 -0500 Subject: [AccessD] Apologies guys - was Tags. References: <49A54330.3030705@colbyconsulting.com><2EA42A19C04E4E398CB321260C63037D@XPS><07509E439D0A4812B34A9F06276BE373@jislaptopdev> Message-ID: <03CD4F180E144FE58D63D464F7719DF6@jislaptopdev> ...its called Paradise ...not Hurricane Junction ...and you well know how much I like stirring the pot ...JC rants ...I stir ...its what we do :) William -------------------------------------------------- From: "Drew Wutka" Sent: Wednesday, February 25, 2009 10:59 AM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Apologies guys - was Tags. > "...even when he's wrong" > > William lights the match, and tosses it into the gasoline storage > tank..... > > You'd think you'd learn, living in Hurricane Junction there! ;) > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William > Hindman > Sent: Wednesday, February 25, 2009 8:54 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Apologies guys - was Tags. > > ...I no longer wonder about jc ...I take him in small doses and well > appreciate the key role he plays here. > ...like everyone else, I sorely missed his presence > ...and iirc it was a war thread just like this one that sent him off > into > the nether for so long > ...would really hate to see that happen again ...I learn too much from > his > posts ...even when he's wrong :) > > William > > -------------------------------------------------- > From: "Jim Dettman" > Sent: Wednesday, February 25, 2009 9:43 AM > To: "'Access Developers discussion and problem solving'" > > Subject: Re: [AccessD] Apologies guys - was Tags. > >> >> Really, I was wondering the same thing.... >> >> Jim. >> > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy the > material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended recipient > is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From max.wanadoo at gmail.com Wed Feb 25 10:15:47 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 25 Feb 2009 16:15:47 -0000 Subject: [AccessD] Using Lateral Thinking To solve problems - This time it is Form Properties In-Reply-To: <49A54454.3070409@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49a4f6f2.0a04d00a.18b9.ffff9ebf@mx.google.com> <49A54454.3070409@colbyconsulting.com> Message-ID: <49a56ec7.0422300a.4a43.0e8c@mx.google.com> Ha! John, Been there. Looked at them yesterday - but I love the fact that you are now also thinking Laterally! Couldn't find any way to manipulate custom properties in Forms. Do you know a way? I could only find custom properties on DB, Tables, Indexes, etc but not forms. Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 25 February 2009 13:15 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited -Now Tag is the Answer Max, Forms also have custom properties IIRC, and that would be the place to do what you are thinking of doing. The form's custom properties work beautifully, and you could use the form's properties custom properties to store the info about controls on that form. It was about 10 years ago when I last looked at them but I remember thinking what a cool tool. They are "well hidden" and so you can place security info in them (what I was using them for) and make it almost impossible for a hacker to find. IIRC they do have the issue of having to be set in design and then saved to make them "permanent" but if you have that ability then there they are. Keep thinking laterally! John W. Colby www.ColbyConsulting.com Denis Sherman wrote: >>> There is a generic property (limited to 2048 characters, by the way), > which can be used for anything...and can be used by anything. But using it > for multiple purposes gets to be very hairy! > > However, I was just playing around with user-defined-properties in the mdb > properties itself - for storing these multi-value strings each > formname+controlname to have its own user defined property name with the > value being the multi-value language string. Worked beautifully apart from > the limitation around the 64K size mark. > > I have another plan - just thinking it through laterally first! > > Max -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 25 10:15:47 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 25 Feb 2009 16:15:47 -0000 Subject: [AccessD] Using Lateral Thinking To solve problems - This time it is DB Properties In-Reply-To: <49A544B6.4040300@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg><0BF1F6E2B5824F31BE6DB53BC98036D3@HAL9005> <7B331FB537DF47A7B86421B3AF71938A@HAL9005> <49a4fbe9.0707d00a.159f.3fca@mx.google.com> <49A544B6.4040300@colbyconsulting.com> Message-ID: <49a56ed9.0422300a.4a43.0eba@mx.google.com> Yeah but, yeah but.....who started the TAGs thread. It is all about lateral thinking. Some more on the way in about 30 minutes. No, not using threads, using DB Properties instead....wait for it...wait... Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 25 February 2009 13:17 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Find First in an Array? - The SolutionRevisited-NowTag is the Answer > Yeah, but I post the most controversial coding ROTFL!!! Uhhh... judging by the responses Drew and I took that prize. ;-) John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Yeah, but I post the most controversial coding > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: 25 February 2009 00:14 > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The > SolutionRevisited-NowTag is the Answer > > Hey, I may not be the world's most sophisticated Access programmer but I ask > good questions. Look at the legs on this thread! > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Tuesday, February 24, 2009 4:12 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The > SolutionRevisited-NowTag is the Answer > > Yes, I've seen the example. > > Sorry I changed your table structure for my example, it's a habit to want to > spread it out more. Technically, there should be a language table with the > font used, and instead of the Language name in the controls table, it should > be a key.... > > Either way... LOL. > > I've got some comments on Max's example though, will post in a new thread. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: Tuesday, February 24, 2009 6:04 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Find First in an Array? - The Solution > Revisited-NowTag is the Answer > > One of those objections - proofing the translations - he actually designed > around with some code that updates the tags from the table. That's because > one of my requirements was to be able to add a new language by adding a > field to the table and then sending the table to the translator. So when > the table comes back with the translations, run the update and you're done. > So you don't actually ever have to physically mess with the tags. > > I don't think I have any control translations that are over 50 characters or > so. In fact I just looked and the longest concatenation of the 5 languages > is 638 characters., so the 2048 character limit is not too much of a > constraint. I could do at least 15 languages that way. Heaven forefend. > > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Tuesday, February 24, 2009 3:18 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Find First in an Array? - The Solution Revisited > -NowTag is the Answer > > Ok, I think Max emailed out his database, I didn't see any specific code. > But the concept was initially to put all the translations into the captions > .Tag property, in a 'master' copy, and then create a language specific > database. > > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI Proprietary > and/or II-VI Business Sensitive material. If you are not the intended > recipient, please contact the sender immediately and destroy the material in > its entirety, whether electronic or hard copy. You are notified that any > review, retransmission, copying, disclosure, dissemination, or other use of, > or taking of any action in reliance upon this information by persons or > entities other than the intended recipient is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Wed Feb 25 10:18:50 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 25 Feb 2009 11:18:50 -0500 Subject: [AccessD] Write Conflict References: <49A54330.3030705@colbyconsulting.com><2EA42A19C04E4E398CB321260C63037D@XPS> Message-ID: <4802568DD3464DEC9616184980512F58@jislaptopdev> ...I can ...but that would require a requery of the main form to show the form updates ...not what I want ...I'm thinking that the write conflict is being generated by essentially the same code in the parent form ...have to take a look. ...things are piling up here this morning ...no time to track this annoyance down :( ...of course, that's better than having loads of time to find such :) William -------------------------------------------------- From: "Drew Wutka" Sent: Wednesday, February 25, 2009 11:03 AM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Write Conflict > Can you try changing the updates to SQL statements that update the > actual record, and not the form? > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William > Hindman > Sent: Wednesday, February 25, 2009 9:16 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Write Conflict > > ...first time I've seen this one > > ...cbf > ------------------------------------------------------------------------ > ----------------- > Option Compare Database > Option Explicit > > Private Sub cboParticipantType_AfterUpdate() > ' Force save and refresh records > > On Error GoTo HandleErr > > DoCmd.RunCommand acCmdSaveRecord > Me.Requery > > exithere: > Exit Sub > > HandleErr: > Select Case Err > Case Else > MsgBox Err & ": " & Err.Description, vbCritical, _ > "Error in > Form_frmCompanyEventsSub.cboParticipantType_AfterUpdate" > End Select > Resume exithere > Resume > > End Sub > > Private Sub Form_Dirty(Cancel As Integer) > 'MsgBox "Record Changed" > On Error GoTo Form_Dirty_Error > > Parent!txtUpdated = Date 'update the LastUpdated to today's > date > if the form record was changed. > Parent!txtUpdateBy = Environ("USERNAME") > Me.Repaint > > On Error GoTo 0 > Exit Sub > > Form_Dirty_Error: > > MsgBox "Error " & Err.Number & " (" & Err.Description & ") in > procedure > Form_Dirty of VBA Document Form_frmCompanyEventsSub" > > End Sub > > ------------------------------------------------------------------------ > ----------------- > > ...the Form_Dirty is the new code ...works elsewhere in main forms > without > problems ...but this is a sub and I'm changing field data on the parent. > ...I get a Write Conflict dialog box "This record has been changed by > another user" with three buttons: > "Save Record" "Copy to Clipboard" "Drop Changes" ...annoying to say the > > least > ...any idea why this is happening? > > William > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy the > material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended recipient > is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From rockysmolin at bchacc.com Wed Feb 25 10:19:29 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 25 Feb 2009 08:19:29 -0800 Subject: [AccessD] FW: Translation DB In-Reply-To: References: <49A56610.50105@colbyconsulting.com> Message-ID: I time them by eyeball - like a user would - milliseconds are usually not relevant. So all the solutions seem pretty much equally fast by that metric. Now I don't know what will happen among the solutions on a form that really 'control rich'. But getting back to my original problem of flashing or repainting, I'm not sure any more that the current system is the culprit. Although changing the loop to go through the table records instead of the control would certainly cut the translate time way down, as, does, seemingly, the Seek approach. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Wednesday, February 25, 2009 8:06 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] FW: Translation DB How did mine time out? I saw your post about having a collection for every form. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 9:39 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] FW: Translation DB Rocky, > I just got another great solution from Jim Dettman, which you should take a look at. I am collecting solutions in a directory under the Classes documents I am writing. Attach it to an email to me and I will definitely take a look. Anyone else who wants can also send me their solution which uses Rocky's DB to actually perform translations. Can I make a request though, that everyone try to standardize the solution so that there is a translation form with combos that allows the user to select a language and a form and the form opens with translation applied. That would make it easier to evaluate the various solutions. Please also note that for Rocky's use, an "on-the-fly" translation is required, i.e. translating the forms in design view and storing them won't work (for him) so to make it apples to apples, your code needs to translate as the form opens. I will add timer code to time the form's opening and post results so that everyone can see how the various solutions work in terms of speed. In fact I will build a test harness to time opening the forms repeatedly, so that we get a "total time to open 100 times" or something similar. I already have solutions for Drew and Max. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > John: > > I just got another great solution from Jim Dettman, which you should take a > look at. > > Now I'm thinking that for your eBook - unless you want to stick strictly > with classes and collections - you could take all of these solutions and > include them as a case study in how many great ways there are to skin this > cat. I think it might make an interesting story if followed chronologically > - how the discussion of translations stimulated al these terrific solutions. > > > I don't know how big the market would be for this, but for anyone interested > it would be of great value. > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > > _____ > > From: Jim Dettman [mailto:jimdettman at verizon.net] > Sent: Wednesday, February 25, 2009 6:43 AM > To: 'Rocky Smolin at Beach Access Software' > Subject: Translation DB > > > Rocky, > > First let me point out that this is just proof of concept. I would not > consider this "polished" and ready for production by any means. For > example, I open the translation table as a global recordset, but don't close > it anywhere at present. SetLanguage() should be callable from anywhere not > just frmSelectLanguage, so it should be checking that the languageID passed > in is a valid one, etc. There are a bunch of ways that you could move > forward with something like this, and that is why I haven't tried to > address any of those issues. > > When you open the db, the Language selection form will pop up. Pick any > one of the languages and then open another form and you'll find it > translated. Note that you must select something or you'll get an error. > Again, it's just not polished off. > > For me, hooking this in would be a simple task even though with my Access > apps I typically don't use classes. For a number of years I've used > standard routines that I call from every forms OnOpen, OnClose, etc. events > and I would simply add this call to one of those routines. I do have some > extra overhead in that if I need to change the call for the event I have to > run through every form, but I have code to do that so it's quite painless. > In affect, for the most part I get the same thing that John gets with his > classes, but without all the additional overhead of using them. > > If your not already doing that, this would probably be a good time to do > so and put the translation in the standard procedure. ie. Open event: > =StdFormCtrl([Form],"OnOpen"). The translation would be called in > StdFormCtrl(). > > I do use classes when I need multiple instances of something, but for the > most part I stick to standard procedures when working with Access since > class implementation in VBA leaves something to be desired (no > implementation inheritance and since inheritance really is the whole point > of using classes, I think they are more or less a waste in Access). > > Performance wise I think you will find this more then acceptable. Of > course, the language translation table would need to be part of the FE. It > would not be something I would stick a BE since it will only change if the > app changes. > > Performance I think should continue to be more then acceptable even if you > added another dozen languages or so. You could also go back to the > de-normalized approach you had with each language in a separate field in a > single record if it did prove to be a problem. The only thing this would > change is that you'd need to add an if check on the language ID to get to > the right field. Although now that I say that, that is not even true as you > could store the language name as well as the ID and reference the field in > the record set by name: grstTranslate(gstrLanguageName) when grabbing the > translation. With the DB I'm giving you, it would be easy to test as I left > the original table. You just need to make a few minor modifications > SetLanguage() and TranslateForm() > > Note also that I only did label captions. I didn't touch buttons. > > Enjoy! > > JimD. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 25 10:20:35 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 25 Feb 2009 08:20:35 -0800 Subject: [AccessD] Quickbooks In-Reply-To: References: Message-ID: <069BA1B4E7104E349774AB914435DC8E@HAL9005> 2000? Time for an update. So you cracked the Byzantine IIF formats? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Doug Barnes Sent: Wednesday, February 25, 2009 8:06 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Quickbooks Rocky, We had a problem with our IP yesterday and all email was lost for the rest of the day (go figure). If you tried to send the file(s) to me, it probably got bounced back. We have the problem fixed for now. Version of Qb from what the people tell me is 2000. doug at starntech.com thanks, Doug -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Doug Barnes Sent: Tuesday, February 24, 2009 11:43 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Quickbooks Thanks Rocky, I be more than happy if you could sent the info. doug at starntech.com Doug -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Rocky Smolin at Beach Access Software Sent: Tuesday, February 24, 2009 11:34 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Quickbooks Douglas: What version of QB are they using? The later versions allow import and export via XL or CSV files. I did write a couple interfaces to QB a few years back and it was a real PITA. Like you I found the SDK to be impenetrable. I took a while but I finally found the IIF file layouts and it turned out to be one of the most Kafkaesque approaches to application interfaces I've ever seen. I've still got the formats in a folder but I don't think I can find the link that described how they're used. But I can send them to you offline if you'd like. But check out the version your client is using first and see if it will import from XL or CSV. It will save a lot of aggravation. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Doug Barnes Sent: Tuesday, February 24, 2009 8:20 AM To: Access Developers discussion and problem solving Subject: [AccessD] Quickbooks Hi group, I acquired an older database A2K. They want to export data into an iif file and import that into their QB's. I'm at a loss on how to create the proper formatting for the task at hand. I've looked at the SDK from Intuit and it very overwhelming. Does anybody have a template or other ideas on getting this 'bear' out the door? thanks Douglas Barnes Starn Technical Services P.O. Box 1172 1057 French Street Meadville, PA 16335 P: 814.724.1045 F: 814.337.3460 -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com Internal Virus Database is out of date. Checked by AVG - http://www.avg.com Version: 8.0.233 / Virus Database: 270.10.17/1932 - Release Date: 2/3/2009 7:57 AM -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com Internal Virus Database is out of date. Checked by AVG - http://www.avg.com Version: 8.0.233 / Virus Database: 270.10.17/1932 - Release Date: 2/3/2009 7:57 AM -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Wed Feb 25 10:19:23 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Wed, 25 Feb 2009 08:19:23 -0800 Subject: [AccessD] Write Conflict In-Reply-To: References: <49A54330.3030705@colbyconsulting.com><2EA42A19C04E4E398CB321260C63037D@XPS> Message-ID: Are the parent and the subform bound to the same dataset? That's what usually causes write conflicts in my world, because you have two datasets open, or at least two connections to the same dataset. What happens if you force an update on the parent form after setting the value? Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Wednesday, February 25, 2009 7:16 AM To: Access Developers discussion and problem solving Subject: [AccessD] Write Conflict ...first time I've seen this one ...cbf ------------------------------------------------------------------------ ----------------- Option Compare Database Option Explicit Private Sub cboParticipantType_AfterUpdate() ' Force save and refresh records On Error GoTo HandleErr DoCmd.RunCommand acCmdSaveRecord Me.Requery exithere: Exit Sub HandleErr: Select Case Err Case Else MsgBox Err & ": " & Err.Description, vbCritical, _ "Error in Form_frmCompanyEventsSub.cboParticipantType_AfterUpdate" End Select Resume exithere Resume End Sub Private Sub Form_Dirty(Cancel As Integer) 'MsgBox "Record Changed" On Error GoTo Form_Dirty_Error Parent!txtUpdated = Date 'update the LastUpdated to today's date if the form record was changed. Parent!txtUpdateBy = Environ("USERNAME") Me.Repaint On Error GoTo 0 Exit Sub Form_Dirty_Error: MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Form_Dirty of VBA Document Form_frmCompanyEventsSub" End Sub ------------------------------------------------------------------------ ----------------- ...the Form_Dirty is the new code ...works elsewhere in main forms without problems ...but this is a sub and I'm changing field data on the parent. ...I get a Write Conflict dialog box "This record has been changed by another user" with three buttons: "Save Record" "Copy to Clipboard" "Drop Changes" ...annoying to say the least ...any idea why this is happening? William -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Wed Feb 25 10:21:44 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 25 Feb 2009 11:21:44 -0500 Subject: [AccessD] Class costs & benefits References: <49A56813.60403@colbyconsulting.com> <49671BEFC8C4469B82EC7ED1898737BB@HAL9005> Message-ID: <029EC928EB3D46678B9617DBF7D9BF51@jislaptopdev> ...man you love living dangerously! William -------------------------------------------------- From: "Rocky Smolin at Beach Access Software" Sent: Wednesday, February 25, 2009 11:08 AM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Class costs & benefits > "I will promise to treat every opinion as valid and not go into rant mode. > ;)" Gonna be a pretty dull thread. > > For those of who don't know, can you define inheritance? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 25, 2009 7:48 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Class costs & benefits > > From Rocky's email I thought that perhaps a thread on what the costs and > benefits are for classes. > > Jim made a statement that he felt that "Access has no implementation > inheritance and since inheritance really is the whole point of using > classes, I think they are more or less a waste in Access". > > So what are your feelings and opinions about classes? > > I will promise to treat every opinion as valid and not go into rant mode. > ;) > > In fact I will promise to not respond to any message unless the author > specifically asks me to for some reason. > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Wed Feb 25 10:23:08 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 11:23:08 -0500 Subject: [AccessD] FW: Translation DB In-Reply-To: References: <49A56610.50105@colbyconsulting.com> Message-ID: <49A5706C.8000909@colbyconsulting.com> I haven't done the timing for any other solution yet. When I timed mine using a single collection it ended up being about 20 ms to do one fo the forms (I don't remember which). When I switched to a collection per form, it went to under 1 ms (timer returned 0). I will time all of the solutions sent to me, but not right now. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > How did mine time out? I saw your post about having a collection for > every form. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 25, 2009 9:39 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] FW: Translation DB > > Rocky, > > > I just got another great solution from Jim Dettman, which you should > take a look at. > > I am collecting solutions in a directory under the Classes documents I > am writing. Attach it to an > email to me and I will definitely take a look. > > Anyone else who wants can also send me their solution which uses Rocky's > DB to actually perform > translations. Can I make a request though, that everyone try to > standardize the solution so that > there is a translation form with combos that allows the user to select a > language and a form and the > form opens with translation applied. That would make it easier to > evaluate the various solutions. > > Please also note that for Rocky's use, an "on-the-fly" translation is > required, i.e. translating the > forms in design view and storing them won't work (for him) so to make it > apples to apples, your code > needs to translate as the form opens. > > I will add timer code to time the form's opening and post results so > that everyone can see how the > various solutions work in terms of speed. In fact I will build a test > harness to time opening the > forms repeatedly, so that we get a "total time to open 100 times" or > something similar. > > I already have solutions for Drew and Max. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: >> John: >> >> I just got another great solution from Jim Dettman, which you should > take a >> look at. >> >> Now I'm thinking that for your eBook - unless you want to stick > strictly >> with classes and collections - you could take all of these solutions > and >> include them as a case study in how many great ways there are to skin > this >> cat. I think it might make an interesting story if followed > chronologically >> - how the discussion of translations stimulated al these terrific > solutions. >> >> I don't know how big the market would be for this, but for anyone > interested >> it would be of great value. >> >> >> Rocky Smolin >> >> Beach Access Software >> >> 858-259-4334 >> >> www.e-z-mrp.com >> >> www.bchacc.com >> >> >> >> >> >> >> >> _____ >> >> From: Jim Dettman [mailto:jimdettman at verizon.net] >> Sent: Wednesday, February 25, 2009 6:43 AM >> To: 'Rocky Smolin at Beach Access Software' >> Subject: Translation DB >> >> >> Rocky, >> >> First let me point out that this is just proof of concept. I would > not >> consider this "polished" and ready for production by any means. For >> example, I open the translation table as a global recordset, but don't > close >> it anywhere at present. SetLanguage() should be callable from > anywhere not >> just frmSelectLanguage, so it should be checking that the languageID > passed >> in is a valid one, etc. There are a bunch of ways that you could move >> forward with something like this, and that is why I haven't tried to >> address any of those issues. >> >> When you open the db, the Language selection form will pop up. Pick > any >> one of the languages and then open another form and you'll find it >> translated. Note that you must select something or you'll get an > error. >> Again, it's just not polished off. >> >> For me, hooking this in would be a simple task even though with my > Access >> apps I typically don't use classes. For a number of years I've used >> standard routines that I call from every forms OnOpen, OnClose, etc. > events >> and I would simply add this call to one of those routines. I do > have some >> extra overhead in that if I need to change the call for the event I > have to >> run through every form, but I have code to do that so it's quite > painless. >> In affect, for the most part I get the same thing that John gets with > his >> classes, but without all the additional overhead of using them. >> >> If your not already doing that, this would probably be a good time > to do >> so and put the translation in the standard procedure. ie. Open > event: >> =StdFormCtrl([Form],"OnOpen"). The translation would be called in >> StdFormCtrl(). >> >> I do use classes when I need multiple instances of something, but for > the >> most part I stick to standard procedures when working with Access > since >> class implementation in VBA leaves something to be desired (no >> implementation inheritance and since inheritance really is the whole > point >> of using classes, I think they are more or less a waste in Access). >> >> Performance wise I think you will find this more then acceptable. Of >> course, the language translation table would need to be part of the > FE. It >> would not be something I would stick a BE since it will only change if > the >> app changes. >> >> Performance I think should continue to be more then acceptable even > if you >> added another dozen languages or so. You could also go back to the >> de-normalized approach you had with each language in a separate field > in a >> single record if it did prove to be a problem. The only thing this > would >> change is that you'd need to add an if check on the language ID to get > to >> the right field. Although now that I say that, that is not even true > as you >> could store the language name as well as the ID and reference the > field in >> the record set by name: grstTranslate(gstrLanguageName) when grabbing > the >> translation. With the DB I'm giving you, it would be easy to test as > I left >> the original table. You just need to make a few minor modifications >> SetLanguage() and TranslateForm() >> >> Note also that I only did label captions. I didn't touch buttons. >> >> Enjoy! >> >> JimD. From cfoust at infostatsystems.com Wed Feb 25 10:22:46 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Wed, 25 Feb 2009 08:22:46 -0800 Subject: [AccessD] Class costs & benefits In-Reply-To: <49A56813.60403@colbyconsulting.com> References: <49A56813.60403@colbyconsulting.com> Message-ID: I have to respectfully disagree with Jim. Granted, classes are not as much the swiss army knife in Access VBA that they are in .Net, but they are extremely useful for encapsulating objects and extending them. All you have to do is use WithEvents a few times to see the usefulness of classes in Access. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 7:48 AM To: Access Developers discussion and problem solving Subject: [AccessD] Class costs & benefits From Rocky's email I thought that perhaps a thread on what the costs and benefits are for classes. Jim made a statement that he felt that "Access has no implementation inheritance and since inheritance really is the whole point of using classes, I think they are more or less a waste in Access". So what are your feelings and opinions about classes? I will promise to treat every opinion as valid and not go into rant mode. ;) In fact I will promise to not respond to any message unless the author specifically asks me to for some reason. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Wed Feb 25 10:24:00 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 25 Feb 2009 11:24:00 -0500 Subject: [AccessD] Function vs Sub (was: Classes andEvents- EVENTSNOTREQUIRED) References: Message-ID: ...two gurus jousting ...and I get to learn from both! ...almost as good as a ringside seat at a jc rant! William -------------------------------------------------- From: "Charlotte Foust" Sent: Wednesday, February 25, 2009 11:08 AM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Function vs Sub (was: Classes andEvents-EVENTSNOTREQUIRED)> No it doesn't, it's setting a property of the event. That isn't the > same thing as returning a value as does a function. Subs are quite > capable of setting values or they wouldn't be as useful as they are. > They do NOT return a value directly however. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Tuesday, February 24, 2009 11:56 PM > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events- > EVENTSNOTREQUIRED) > > Hi Charlotte > > Eh, you can't have forgotten that setting Cancel to True in your code of > such a sub will return that value to the form? > > /gustav > > >>>> cfoust at infostatsystems.com 24-02-2009 22:21 >>> > Not sure I follow, Stuart. Subs set values like Cancel or process a > keycode. They don't return them per se. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan > Sent: Tuesday, February 24, 2009 1:12 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - > EVENTSNOTREQUIRED) > > Which begs the question, why does VBA use Subs for event procedures > which return values such as Cancel or KeyCode? Aren't these Functions? > :-) > > -- > Stuart > > > On 24 Feb 2009 at 9:24, Charlotte Foust wrote: > >> Absolutely when you need multiple return values, but a simple boolean >> or single value? >> >> Charlotte Foust > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From cfoust at infostatsystems.com Wed Feb 25 10:25:18 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Wed, 25 Feb 2009 08:25:18 -0800 Subject: [AccessD] Class costs & benefits In-Reply-To: <49671BEFC8C4469B82EC7ED1898737BB@HAL9005> References: <49A56813.60403@colbyconsulting.com> <49671BEFC8C4469B82EC7ED1898737BB@HAL9005> Message-ID: It's what you're left in the will, Rocky. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 8:09 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Class costs & benefits "I will promise to treat every opinion as valid and not go into rant mode. ;)" Gonna be a pretty dull thread. For those of who don't know, can you define inheritance? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 7:48 AM To: Access Developers discussion and problem solving Subject: [AccessD] Class costs & benefits From Rocky's email I thought that perhaps a thread on what the costs and benefits are for classes. Jim made a statement that he felt that "Access has no implementation inheritance and since inheritance really is the whole point of using classes, I think they are more or less a waste in Access". So what are your feelings and opinions about classes? I will promise to treat every opinion as valid and not go into rant mode. ;) In fact I will promise to not respond to any message unless the author specifically asks me to for some reason. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Wed Feb 25 10:30:04 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 11:30:04 -0500 Subject: [AccessD] Class costs & benefits In-Reply-To: References: <49A56813.60403@colbyconsulting.com> Message-ID: <49A5720C.5090600@colbyconsulting.com> William, > "In fact I will promise to not respond to any message unless the author specifically asks me to for some reason." I just want people to know that I have committed to not "jumping on" any opinion. I will not click "reply" on a post unless the author somehow asks a question... "what about", "why not", "how do I", whatever. I get the feeling sometimes that a lot of people don't respond because they are afraid I might take them to the woodshed. >...beyond that unique trait I'm not yet sold on the "classes everywhere" model you espouse ...still waiting for that magic bullet in your discourse :) I don't use "classes everywhere". In my applications, and even in my framework, there are about 60 / 40 classes to modules. John W. Colby www.ColbyConsulting.com William Hindman wrote: > "In fact I will promise to not respond to any message unless the author > specifically asks me to for > some reason." jc > > ...oh come on! ...I'm not begging you to respond to any message ...I hope > that you will but that's your choice > ...you're being a PITA about this, eh ...you rant, we rant ...that's what > makes AccessD better than any other list. > > ...as for classes, I'm still learning but not yet committed ...in some > simple cases so far I've seen advantages in code > encapsulation but nothing that I couldn't achieve otherwise ...but classes > let me create and raise events outside the cbf ...that certainly has > benefits > ...beyond that unique trait I'm not yet sold on the "classes everywhere" > model you espouse ...still waiting for that magic bullet in your discourse > :) > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Wednesday, February 25, 2009 10:47 AM > To: "Access Developers discussion and problem solving" > > Subject: [AccessD] Class costs & benefits > >> From Rocky's email I thought that perhaps a thread on what the costs and >> benefits are for classes. >> >> Jim made a statement that he felt that "Access has no implementation >> inheritance and since >> inheritance really is the whole point of using classes, I think they are >> more or less a waste in >> Access". >> >> So what are your feelings and opinions about classes? >> >> I will promise to treat every opinion as valid and not go into rant mode. >> ;) >> >> In fact I will promise to not respond to any message unless the author >> specifically asks me to for >> some reason. >> >> -- >> John W. Colby >> www.ColbyConsulting.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From cfoust at infostatsystems.com Wed Feb 25 10:34:41 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Wed, 25 Feb 2009 08:34:41 -0800 Subject: [AccessD] Class costs & benefits In-Reply-To: <49A5720C.5090600@colbyconsulting.com> References: <49A56813.60403@colbyconsulting.com> <49A5720C.5090600@colbyconsulting.com> Message-ID: >>I get the feeling sometimes that a lot of people don't respond because they are afraid I might take them to the woodshed. Really? I thought it was to avoid the two by four you're carrying! LOL Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 8:30 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Class costs & benefits William, > "In fact I will promise to not respond to any message unless the author specifically asks me to for some reason." I just want people to know that I have committed to not "jumping on" any opinion. I will not click "reply" on a post unless the author somehow asks a question... "what about", "why not", "how do I", whatever. I get the feeling sometimes that a lot of people don't respond because they are afraid I might take them to the woodshed. >...beyond that unique trait I'm not yet sold on the "classes everywhere" model you espouse ...still waiting for that magic bullet in your discourse :) I don't use "classes everywhere". In my applications, and even in my framework, there are about 60 / 40 classes to modules. John W. Colby www.ColbyConsulting.com William Hindman wrote: > "In fact I will promise to not respond to any message unless the > author specifically asks me to for some reason." jc > > ...oh come on! ...I'm not begging you to respond to any message ...I > hope that you will but that's your choice ...you're being a PITA about > this, eh ...you rant, we rant ...that's what makes AccessD better than > any other list. > > ...as for classes, I'm still learning but not yet committed ...in some > simple cases so far I've seen advantages in code encapsulation but > nothing that I couldn't achieve otherwise ...but classes let me create > and raise events outside the cbf ...that certainly has benefits > ...beyond that unique trait I'm not yet sold on the "classes everywhere" > model you espouse ...still waiting for that magic bullet in your > discourse > :) > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Wednesday, February 25, 2009 10:47 AM > To: "Access Developers discussion and problem solving" > > Subject: [AccessD] Class costs & benefits > >> From Rocky's email I thought that perhaps a thread on what the costs >> and benefits are for classes. >> >> Jim made a statement that he felt that "Access has no implementation >> inheritance and since inheritance really is the whole point of using >> classes, I think they are more or less a waste in Access". >> >> So what are your feelings and opinions about classes? >> >> I will promise to treat every opinion as valid and not go into rant mode. >> ;) >> >> In fact I will promise to not respond to any message unless the >> author specifically asks me to for some reason. >> >> -- >> John W. Colby >> www.ColbyConsulting.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 25 10:37:14 2009 From: max.wanadoo at gmail.com (Denis Sherman) Date: Wed, 25 Feb 2009 16:37:14 -0000 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: References: <49A54330.3030705@colbyconsulting.com> Message-ID: <49a573cf.03eb300a.4698.3a7d@mx.google.com> Well I don't mind if he rants at me. Every time JC rants, I learn something! Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: 25 February 2009 15:53 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Apologies guys - was Tags. Did you have a religious experience or something???? Hey, just glad to have ya back on the list, I missed our jousts, and I always find your posts logical (most of the time ) and well thought out! Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 7:10 AM To: Access Developers discussion and problem solving Subject: [AccessD] Apologies guys - was Tags. I wanted to apologize for the rant yesterday. Of course there is a valid reason for using tags, actually two valid reasons. 1) You are capable of using them 2) You want something that loads with the form. I used tags in the past for exactly those two reasons. I was mostly responding to the implication that NOT using the tags was silly when "they already exist so why not". I try very hard to use good programming practices and I have spent a lot of time learning how to use tools that make tags unnecessary FOR ME. The hardware, and my knowledge of VBA programming constructs make tags unnecessary (and bad practice) FOR ME. Of course if tags are the right tool for you, then you absolutely should use them. I will not be responding to this thread any more, and sorry for the rant. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From Gustav at cactus.dk Wed Feb 25 10:37:12 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 25 Feb 2009 17:37:12 +0100 Subject: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOT REQUIRED) Message-ID: Hi Charlotte OK, I see what you mean. I was talking about the value of that property. Sorry for not being precise. /gustav >>> cfoust at infostatsystems.com 25-02-2009 17:08 >>> No it doesn't, it's setting a property of the event. That isn't the same thing as returning a value as does a function. Subs are quite capable of setting values or they wouldn't be as useful as they are. They do NOT return a value directly however. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Tuesday, February 24, 2009 11:56 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Function vs Sub (was: Classes and Events- EVENTSNOTREQUIRED) Hi Charlotte Eh, you can't have forgotten that setting Cancel to True in your code of such a sub will return that value to the form? /gustav >>> cfoust at infostatsystems.com 24-02-2009 22:21 >>> Not sure I follow, Stuart. Subs set values like Cancel or process a keycode. They don't return them per se. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Tuesday, February 24, 2009 1:12 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTSNOTREQUIRED) Which begs the question, why does VBA use Subs for event procedures which return values such as Cancel or KeyCode? Aren't these Functions? :-) -- Stuart On 24 Feb 2009 at 9:24, Charlotte Foust wrote: > Absolutely when you need multiple return values, but a simple boolean > or single value? > > Charlotte Foust From rockysmolin at bchacc.com Wed Feb 25 10:38:18 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 25 Feb 2009 08:38:18 -0800 Subject: [AccessD] Class costs & benefits In-Reply-To: References: <49A56813.60403@colbyconsulting.com><49671BEFC8C4469B82EC7ED1898737BB@HAL9005> Message-ID: Often a null value? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Wednesday, February 25, 2009 8:25 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Class costs & benefits It's what you're left in the will, Rocky. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 8:09 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Class costs & benefits "I will promise to treat every opinion as valid and not go into rant mode. ;)" Gonna be a pretty dull thread. For those of who don't know, can you define inheritance? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 7:48 AM To: Access Developers discussion and problem solving Subject: [AccessD] Class costs & benefits From Rocky's email I thought that perhaps a thread on what the costs and benefits are for classes. Jim made a statement that he felt that "Access has no implementation inheritance and since inheritance really is the whole point of using classes, I think they are more or less a waste in Access". So what are your feelings and opinions about classes? I will promise to treat every opinion as valid and not go into rant mode. ;) In fact I will promise to not respond to any message unless the author specifically asks me to for some reason. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 25 10:39:30 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 25 Feb 2009 08:39:30 -0800 Subject: [AccessD] Class costs & benefits In-Reply-To: References: <49A56813.60403@colbyconsulting.com><49A5720C.5090600@colbyconsulting.com> Message-ID: <9BB3FD3D6B4B43A98C16C8E1A29F9610@HAL9005> He brings the woodshed with him??!! Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Wednesday, February 25, 2009 8:35 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Class costs & benefits >>I get the feeling sometimes that a lot of people don't respond because they are afraid I might take them to the woodshed. Really? I thought it was to avoid the two by four you're carrying! LOL Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 8:30 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Class costs & benefits William, > "In fact I will promise to not respond to any message unless the author specifically asks me to for some reason." I just want people to know that I have committed to not "jumping on" any opinion. I will not click "reply" on a post unless the author somehow asks a question... "what about", "why not", "how do I", whatever. I get the feeling sometimes that a lot of people don't respond because they are afraid I might take them to the woodshed. >...beyond that unique trait I'm not yet sold on the "classes everywhere" model you espouse ...still waiting for that magic bullet in your discourse :) I don't use "classes everywhere". In my applications, and even in my framework, there are about 60 / 40 classes to modules. John W. Colby www.ColbyConsulting.com William Hindman wrote: > "In fact I will promise to not respond to any message unless the > author specifically asks me to for some reason." jc > > ...oh come on! ...I'm not begging you to respond to any message ...I > hope that you will but that's your choice ...you're being a PITA about > this, eh ...you rant, we rant ...that's what makes AccessD better than > any other list. > > ...as for classes, I'm still learning but not yet committed ...in some > simple cases so far I've seen advantages in code encapsulation but > nothing that I couldn't achieve otherwise ...but classes let me create > and raise events outside the cbf ...that certainly has benefits > ...beyond that unique trait I'm not yet sold on the "classes everywhere" > model you espouse ...still waiting for that magic bullet in your > discourse > :) > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Wednesday, February 25, 2009 10:47 AM > To: "Access Developers discussion and problem solving" > > Subject: [AccessD] Class costs & benefits > >> From Rocky's email I thought that perhaps a thread on what the costs >> and benefits are for classes. >> >> Jim made a statement that he felt that "Access has no implementation >> inheritance and since inheritance really is the whole point of using >> classes, I think they are more or less a waste in Access". >> >> So what are your feelings and opinions about classes? >> >> I will promise to treat every opinion as valid and not go into rant mode. >> ;) >> >> In fact I will promise to not respond to any message unless the >> author specifically asks me to for some reason. >> >> -- >> John W. Colby >> www.ColbyConsulting.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 25 10:41:18 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 25 Feb 2009 16:41:18 -0000 Subject: [AccessD] Using Lateral Thinking To solve problems - This time it is DB Properties In-Reply-To: References: Message-ID: <49a574c3.0eff300a.37a2.ffff997c@mx.google.com> Using Lateral Thinking To solve problems - This time it is DB Properties As you know, I try to solve problems by thinking Laterally (Outside the box) Recently I tried to solve the problem of storing various language translations within the TAG property of the Form. This worked just fine and give instant ability to swap languages in seconds. I had also posted code to permanent store this by manipulating the form in hidden design mode. This posting is about storing data in the DB user defined properties. Regretfully there are limits to how much info you can store before Access goes all wobbly, coughs and posts a message to you (in my case, it gave up after 222 User Defined Properties storing 7,962 characters). Anyway I am going to post the code because there may be Listers who would like to store other stuff in these user defined properties, such as licence details, expiry details, how many users logged on, how much xyz. Tracking, recording etc. Just change the code as required. Max Option Compare Database Option Explicit Public Function pfMaxGetLanguageCaptionsAvailable() Const conPipe As String = "|" Const conSeparator As String = ">|<" Dim rst As DAO.Recordset, sql As String, strLanguages As String Dim strEnglish As String, strChineseComplex As String, strChineseSimple As String Dim strSpanish As String, strFrench As String Dim str As String sql = "Select * from [tblLanguage-Controls] ORDER BY fldLanguageForm,fldLanguageControl" Set rst = CurrentDb.OpenRecordset(sql) If Not rst.EOF Then rst.MoveFirst Do While Not rst.EOF str = "English" & conPipe & rst!fldLanguageForm & conPipe & rst!fldLanguageControl Call sMaxDBCreateLanguageProperties(str, dbText, Nz(rst!fldlanguageEnglish, " ")) str = "ChineseComplex" & conPipe & rst!fldLanguageForm & conPipe & rst!fldLanguageControl Call sMaxDBCreateLanguageProperties(str, dbText, Nz(rst!fldLanguageChineseComplex, " ")) str = "ChineseSimple" & conPipe & rst!fldLanguageForm & conPipe & rst!fldLanguageControl Call sMaxDBCreateLanguageProperties(str, dbText, Nz(rst!fldLanguageChineseSimple, " ")) str = "Spanish" & conPipe & rst!fldLanguageForm & conPipe & rst!fldLanguageControl Call sMaxDBCreateLanguageProperties(str, dbText, Nz(rst!fldLanguageSpanish, " ")) str = "French" & conPipe & rst!fldLanguageForm & conPipe & rst!fldLanguageControl Call sMaxDBCreateLanguageProperties(str, dbText, Nz(rst!fldLanguageFrench, " ")) rst.MoveNext Loop End If End Function Private Sub sMaxDBCreateLanguageProperties(strPrpName As String, varPrpType As Variant, varPrpValue As Variant) On Error GoTo errhandler Dim prpLanguage As Property Static lngCt As Long Static lngSize As Long lngCt = lngCt + 1 lngSize = lngSize + Len(strPrpName) Debug.Print lngCt, lngSize, strPrpName, varPrpValue CurrentDb.Properties.Delete strPrpName Set prpLanguage = CurrentDb.CreateProperty() prpLanguage.Name = strPrpName: prpLanguage.Type = varPrpType: prpLanguage.Value = varPrpValue CurrentDb.Properties.Append prpLanguage exithere: Exit Sub errhandler: Select Case Err.Number Case 3265, 3367 ' property doesnt exits or doesnt exits Resume Next Case Else MsgBox "Error in sMaxCreateLanguageProperty(): " & Err.Number & vbCrLf & Err.Description End Select Resume exithere End Sub Private Sub sMaxDBEnumerateDatabaseProperties() ' if You needs to see the properties Dim prp As Property On Error Resume Next For Each prp In CurrentDb.Properties Debug.Print prp.Name, prp.Value Next prp End Sub Private Sub sMaxDeleteDatabaseProperties() Dim strPrpName As String Dim prp As Property On Error Resume Next For Each prp In CurrentDb.Properties strPrpName = prp.Name If Left(strPrpName, 7) = "English" Or Left(strPrpName, 6) = "French" Or Left(strPrpName, 14) = "ChineseComplex" Or Left(strPrpName, 13) = "ChineseSimple" Or Left(strPrpName, 7) = "Spanish" Then CurrentDb.Properties.Delete strPrpName Debug.Print strPrpName End If Next prp End Sub From DWUTKA at Marlow.com Wed Feb 25 10:45:41 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Wed, 25 Feb 2009 10:45:41 -0600 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: <49A56BE4.9050708@colbyconsulting.com> References: <49A54330.3030705@colbyconsulting.com> <49A54F46.30803@colbyconsulting.com><29f585dd0902250605w3c6bd5e3q7818f7d0fd1063d5@mail.gmail.com> <49A5530D.30802@colbyconsulting.com> <49A56BE4.9050708@colbyconsulting.com> Message-ID: Near beer? Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 10:04 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Apologies guys - was Tags. Unfortunately I am unable to use any of those solutions. Since my intelligence is so obviously artificial, I need an artificial intelligence solution to combat it. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > There is actually a product available to help with that.... > > Known developers: > > Budweiser > Coors > Michelob > > There are others of course! > > What's great is that all of the vendors are completely compatible with > any email program you want to use! > > Drew > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 25, 2009 8:18 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Apologies guys - was Tags. > > I need to find the property in Thunderbird "don't send rant". > > LOL. > > John W. Colby > www.ColbyConsulting.com > > > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Wed Feb 25 10:47:37 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Wed, 25 Feb 2009 10:47:37 -0600 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: <03CD4F180E144FE58D63D464F7719DF6@jislaptopdev> References: <49A54330.3030705@colbyconsulting.com><2EA42A19C04E4E398CB321260C63037D@XPS><07509E439D0A4812B34A9F06276BE373@jislaptopdev> <03CD4F180E144FE58D63D464F7719DF6@jislaptopdev> Message-ID: True, we miss you on OT ya know. I have 587 unread messages over there, but knowing none of those are your posts makes it harder to dig into them! ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Wednesday, February 25, 2009 10:12 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Apologies guys - was Tags. ...its called Paradise ...not Hurricane Junction ...and you well know how much I like stirring the pot ...JC rants ...I stir ...its what we do :) William -------------------------------------------------- From: "Drew Wutka" Sent: Wednesday, February 25, 2009 10:59 AM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Apologies guys - was Tags. > "...even when he's wrong" > > William lights the match, and tosses it into the gasoline storage > tank..... > > You'd think you'd learn, living in Hurricane Junction there! ;) > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William > Hindman > Sent: Wednesday, February 25, 2009 8:54 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Apologies guys - was Tags. > > ...I no longer wonder about jc ...I take him in small doses and well > appreciate the key role he plays here. > ...like everyone else, I sorely missed his presence > ...and iirc it was a war thread just like this one that sent him off > into > the nether for so long > ...would really hate to see that happen again ...I learn too much from > his > posts ...even when he's wrong :) > > William > > -------------------------------------------------- > From: "Jim Dettman" > Sent: Wednesday, February 25, 2009 9:43 AM > To: "'Access Developers discussion and problem solving'" > > Subject: Re: [AccessD] Apologies guys - was Tags. > >> >> Really, I was wondering the same thing.... >> >> Jim. >> > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy the > material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended recipient > is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From DWUTKA at Marlow.com Wed Feb 25 10:50:45 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Wed, 25 Feb 2009 10:50:45 -0600 Subject: [AccessD] Class costs & benefits In-Reply-To: <49A5720C.5090600@colbyconsulting.com> References: <49A56813.60403@colbyconsulting.com> <49A5720C.5090600@colbyconsulting.com> Message-ID: It's not that you might take them to the woodshed, it's what you wear IN the woodshed..... ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 10:30 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Class costs & benefits William, > "In fact I will promise to not respond to any message unless the author specifically asks me to for some reason." I just want people to know that I have committed to not "jumping on" any opinion. I will not click "reply" on a post unless the author somehow asks a question... "what about", "why not", "how do I", whatever. I get the feeling sometimes that a lot of people don't respond because they are afraid I might take them to the woodshed. >...beyond that unique trait I'm not yet sold on the "classes everywhere" model you espouse ...still waiting for that magic bullet in your discourse :) I don't use "classes everywhere". In my applications, and even in my framework, there are about 60 / 40 classes to modules. John W. Colby www.ColbyConsulting.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From JHewson at nciinc.com Wed Feb 25 10:54:20 2009 From: JHewson at nciinc.com (Hewson, Jim ) Date: Wed, 25 Feb 2009 10:54:20 -0600 Subject: [AccessD] Class costs & benefits In-Reply-To: <49A56813.60403@colbyconsulting.com> References: <49A56813.60403@colbyconsulting.com> Message-ID: <7E02B06E41E5404589EDDDA2BAA1C5A83ECA6D@sanex101.nciinc.com> After going through the Class class (c2), I definitely see a need for them. I still don't have my head wrapped around all the nuances of Classes but I understand how they are supposed to work. The best example, I can think of, for the need of a class is the sample that was given during the c2: changing the background color of a control during the OnFocus event. I spent a lot of time with conditional formatting on one database changing the color for several forms. If I had used a class instead, I could have changed the color a lot easier and saved valuable time. Thanks, Jim -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 9:48 AM To: Access Developers discussion and problem solving Subject: [AccessD] Class costs & benefits From Rocky's email I thought that perhaps a thread on what the costs and benefits are for classes. Jim made a statement that he felt that "Access has no implementation inheritance and since inheritance really is the whole point of using classes, I think they are more or less a waste in Access". So what are your feelings and opinions about classes? I will promise to treat every opinion as valid and not go into rant mode. ;) In fact I will promise to not respond to any message unless the author specifically asks me to for some reason. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ################################################################################ If you have received this message in error, please contact the sender immediately and be aware that the use, copying, or dissemination of this information is prohibited. This email transmission contains information from NCI Information Systems, Inc. that may be considered privileged or confidential and is intended solely for the named recipient. ################################################################################ From Gustav at cactus.dk Wed Feb 25 10:54:40 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 25 Feb 2009 17:54:40 +0100 Subject: [AccessD] Using Lateral Thinking To solve problems - This time it is DB Properties Message-ID: Hi Max Love that lateral thing. Now you are at it, can't you find a method to swap property Filled of my beer bottles from False to True? At best by some batch routine taking a six-pack (I'm lazy and have to perform vertical thinking as horizontal makes me fall asleep)? /gustav PS: Thanks for the code. Didn't know about that limit on the count of properties - I always thought that these were saved in some kind of hidden table with no other limits than other tables. >>> max.wanadoo at gmail.com 25-02-2009 17:41 >>> Using Lateral Thinking To solve problems - This time it is DB Properties From wdhindman at dejpolsystems.com Wed Feb 25 11:13:53 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 25 Feb 2009 12:13:53 -0500 Subject: [AccessD] Using Lateral Thinking To solve problems - This timeit is DB Properties References: Message-ID: <6A107D1DEC01401EA466D6AC43ECFBC8@jislaptopdev> ...bottles? ...whatever happened to the keg you kept in your living room? William -------------------------------------------------- From: "Gustav Brock" Sent: Wednesday, February 25, 2009 11:54 AM To: Subject: Re: [AccessD] Using Lateral Thinking To solve problems - Thistimeitis DB Properties > Hi Max > > Love that lateral thing. Now you are at it, can't you find a method to > swap property Filled of my beer bottles from False to True? At best by > some batch routine taking a six-pack (I'm lazy and have to perform > vertical thinking as horizontal makes me fall asleep)? > > /gustav > > PS: Thanks for the code. Didn't know about that limit on the count of > properties - I always thought that these were saved in some kind of hidden > table with no other limits than other tables. > >>>> max.wanadoo at gmail.com 25-02-2009 17:41 >>> > Using Lateral Thinking To solve problems - This time it is DB Properties > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From EdTesiny at oasas.state.ny.us Wed Feb 25 11:17:38 2009 From: EdTesiny at oasas.state.ny.us (Tesiny, Ed) Date: Wed, 25 Feb 2009 12:17:38 -0500 Subject: [AccessD] Pop-up Boxes/Windows Message-ID: Hi All, Does anyone know of a way to resize those pop-up windows, such as the Show Table or Make Table windows? Should be easy but I can't find it. MTIA Ed Edward P. Tesiny Assistant Director for Evaluation New York State OASAS 1450 Western Avenue Albany, NY 12203 Phone: (518) 485-7189 Fax: (518) 485-5769 EdTesiny at oasas.state.ny.us IMPORTANT: This E-mail may contain confidential material for the sole use of the intended recipient. The use, distribution, transmittal or re-transmittal by an unintended recipient of any communication is prohibited without our express approval in writing or by e-mail. Any use, distribution, transmittal or re-transmittal by persons who are not intended recipients of this e-mail may be a violation of law and is strictly prohibited. If you are not the intended recipient please contact the sender and delete all copies. E-mail transmission cannot be guaranteed to be secure or error-free. The sender therefore does not accept liability for any errors or omissions in the contents of this transmission. All e-mails sent to or from NYS OASAS are to be used for our business purposes only. E-mails sent from or to NYS OASAS are subject to review by the Agency. From Gustav at cactus.dk Wed Feb 25 11:25:24 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 25 Feb 2009 18:25:24 +0100 Subject: [AccessD] Using Lateral Thinking To solve problems - This time it is DB Properties Message-ID: Hi William That's not me. That's Lembit (seriously!). /gustav >>> wdhindman at dejpolsystems.com 25-02-2009 18:13 >>> ...bottles? ...whatever happened to the keg you kept in your living room? William -------------------------------------------------- From: "Gustav Brock" Sent: Wednesday, February 25, 2009 11:54 AM To: Subject: Re: [AccessD] Using Lateral Thinking To solve problems - Thistimeitis DB Properties > Hi Max > > Love that lateral thing. Now you are at it, can't you find a method to > swap property Filled of my beer bottles from False to True? At best by > some batch routine taking a six-pack (I'm lazy and have to perform > vertical thinking as horizontal makes me fall asleep)? > > /gustav > > PS: Thanks for the code. Didn't know about that limit on the count of > properties - I always thought that these were saved in some kind of hidden > table with no other limits than other tables. > >>>> max.wanadoo at gmail.com 25-02-2009 17:41 >>> > Using Lateral Thinking To solve problems - This time it is DB Properties From john at winhaven.net Wed Feb 25 11:36:03 2009 From: john at winhaven.net (John Bartow) Date: Wed, 25 Feb 2009 11:36:03 -0600 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: <49A5609A.6010901@colbyconsulting.com> References: <49A54330.3030705@colbyconsulting.com> <2EA42A19C04E4E398CB321260C63037D@XPS> <49A5609A.6010901@colbyconsulting.com> Message-ID: <02d401c9976f$8857f6c0$9907e440$@net> The difference between genius and insanity is the level of success achieved... From wdhindman at dejpolsystems.com Wed Feb 25 11:35:32 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 25 Feb 2009 12:35:32 -0500 Subject: [AccessD] Using Lateral Thinking To solve problems - This timeit is DB Properties References: Message-ID: <293BF05ED1444D2C9E0F0BC792B868D4@jislaptopdev> ...ah yes ...you euros all look alike to me :) ...sorry ...its creeping dementia it is :( William -------------------------------------------------- From: "Gustav Brock" Sent: Wednesday, February 25, 2009 12:25 PM To: Subject: Re: [AccessD] Using Lateral Thinking To solve problems - Thistimeitis DB Properties > Hi William > > That's not me. That's Lembit (seriously!). > > /gustav > > >>>> wdhindman at dejpolsystems.com 25-02-2009 18:13 >>> > ...bottles? ...whatever happened to the keg you kept in your living room? > > William > > -------------------------------------------------- > From: "Gustav Brock" > Sent: Wednesday, February 25, 2009 11:54 AM > To: > Subject: Re: [AccessD] Using Lateral Thinking To solve problems - > Thistimeitis DB Properties > >> Hi Max >> >> Love that lateral thing. Now you are at it, can't you find a method to >> swap property Filled of my beer bottles from False to True? At best by >> some batch routine taking a six-pack (I'm lazy and have to perform >> vertical thinking as horizontal makes me fall asleep)? >> >> /gustav >> >> PS: Thanks for the code. Didn't know about that limit on the count of >> properties - I always thought that these were saved in some kind of >> hidden >> table with no other limits than other tables. >> >>>>> max.wanadoo at gmail.com 25-02-2009 17:41 >>> >> Using Lateral Thinking To solve problems - This time it is DB Properties > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From cfoust at infostatsystems.com Wed Feb 25 11:43:24 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Wed, 25 Feb 2009 09:43:24 -0800 Subject: [AccessD] Class costs & benefits In-Reply-To: References: <49A56813.60403@colbyconsulting.com><49671BEFC8C4469B82EC7ED1898737BB@HAL9005> Message-ID: You were in the same will as me??? ROTFL Charlotte -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 8:38 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Class costs & benefits Often a null value? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Wednesday, February 25, 2009 8:25 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Class costs & benefits It's what you're left in the will, Rocky. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 8:09 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Class costs & benefits "I will promise to treat every opinion as valid and not go into rant mode. ;)" Gonna be a pretty dull thread. For those of who don't know, can you define inheritance? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 7:48 AM To: Access Developers discussion and problem solving Subject: [AccessD] Class costs & benefits From Rocky's email I thought that perhaps a thread on what the costs and benefits are for classes. Jim made a statement that he felt that "Access has no implementation inheritance and since inheritance really is the whole point of using classes, I think they are more or less a waste in Access". So what are your feelings and opinions about classes? I will promise to treat every opinion as valid and not go into rant mode. ;) In fact I will promise to not respond to any message unless the author specifically asks me to for some reason. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Wed Feb 25 12:29:29 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 13:29:29 -0500 Subject: [AccessD] FW: Translation DB In-Reply-To: References: <49A56610.50105@colbyconsulting.com> Message-ID: <49A58E09.709@colbyconsulting.com> Rocky, > I time them by eyeball - like a user would - milliseconds are usually not relevant. So all the solutions seem pretty much equally fast by that metric. And of course as your forms get complex then the equation changes. We are discussing solutions in this thread that other developers might pick up and try to apply. "Fast enough" for one form may be woefully inadequate in another. I develop for the generic application so I will spend another 1/2 hour if necessary to test and find out which is the fastest and all other things being close, I then go with the fastest. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > I time them by eyeball - like a user would - milliseconds are usually not > relevant. So all the solutions seem pretty much equally fast by that > metric. > > Now I don't know what will happen among the solutions on a form that really > 'control rich'. But getting back to my original problem of flashing or > repainting, I'm not sure any more that the current system is the culprit. > Although changing the loop to go through the table records instead of the > control would certainly cut the translate time way down, as, does, > seemingly, the Seek approach. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Wednesday, February 25, 2009 8:06 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] FW: Translation DB > > How did mine time out? I saw your post about having a collection for every > form. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 25, 2009 9:39 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] FW: Translation DB > > Rocky, > > > I just got another great solution from Jim Dettman, which you should take > a look at. > > I am collecting solutions in a directory under the Classes documents I am > writing. Attach it to an email to me and I will definitely take a look. > > Anyone else who wants can also send me their solution which uses Rocky's DB > to actually perform translations. Can I make a request though, that > everyone try to standardize the solution so that there is a translation form > with combos that allows the user to select a language and a form and the > form opens with translation applied. That would make it easier to evaluate > the various solutions. > > Please also note that for Rocky's use, an "on-the-fly" translation is > required, i.e. translating the forms in design view and storing them won't > work (for him) so to make it apples to apples, your code needs to translate > as the form opens. > > I will add timer code to time the form's opening and post results so that > everyone can see how the various solutions work in terms of speed. In fact > I will build a test harness to time opening the forms repeatedly, so that we > get a "total time to open 100 times" or something similar. > > I already have solutions for Drew and Max. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: >> John: >> >> I just got another great solution from Jim Dettman, which you should > take a >> look at. >> >> Now I'm thinking that for your eBook - unless you want to stick > strictly >> with classes and collections - you could take all of these solutions > and >> include them as a case study in how many great ways there are to skin > this >> cat. I think it might make an interesting story if followed > chronologically >> - how the discussion of translations stimulated al these terrific > solutions. >> >> I don't know how big the market would be for this, but for anyone > interested >> it would be of great value. >> >> >> Rocky Smolin >> >> Beach Access Software >> >> 858-259-4334 >> >> www.e-z-mrp.com >> >> www.bchacc.com >> >> >> >> >> >> >> >> _____ >> >> From: Jim Dettman [mailto:jimdettman at verizon.net] >> Sent: Wednesday, February 25, 2009 6:43 AM >> To: 'Rocky Smolin at Beach Access Software' >> Subject: Translation DB >> >> >> Rocky, >> >> First let me point out that this is just proof of concept. I would > not >> consider this "polished" and ready for production by any means. For >> example, I open the translation table as a global recordset, but don't > close >> it anywhere at present. SetLanguage() should be callable from > anywhere not >> just frmSelectLanguage, so it should be checking that the languageID > passed >> in is a valid one, etc. There are a bunch of ways that you could move >> forward with something like this, and that is why I haven't tried to >> address any of those issues. >> >> When you open the db, the Language selection form will pop up. Pick > any >> one of the languages and then open another form and you'll find it >> translated. Note that you must select something or you'll get an > error. >> Again, it's just not polished off. >> >> For me, hooking this in would be a simple task even though with my > Access >> apps I typically don't use classes. For a number of years I've used >> standard routines that I call from every forms OnOpen, OnClose, etc. > events >> and I would simply add this call to one of those routines. I do > have some >> extra overhead in that if I need to change the call for the event I > have to >> run through every form, but I have code to do that so it's quite > painless. >> In affect, for the most part I get the same thing that John gets with > his >> classes, but without all the additional overhead of using them. >> >> If your not already doing that, this would probably be a good time > to do >> so and put the translation in the standard procedure. ie. Open > event: >> =StdFormCtrl([Form],"OnOpen"). The translation would be called in >> StdFormCtrl(). >> >> I do use classes when I need multiple instances of something, but for > the >> most part I stick to standard procedures when working with Access > since >> class implementation in VBA leaves something to be desired (no >> implementation inheritance and since inheritance really is the whole > point >> of using classes, I think they are more or less a waste in Access). >> >> Performance wise I think you will find this more then acceptable. Of >> course, the language translation table would need to be part of the > FE. It >> would not be something I would stick a BE since it will only change if > the >> app changes. >> >> Performance I think should continue to be more then acceptable even > if you >> added another dozen languages or so. You could also go back to the >> de-normalized approach you had with each language in a separate field > in a >> single record if it did prove to be a problem. The only thing this > would >> change is that you'd need to add an if check on the language ID to get > to >> the right field. Although now that I say that, that is not even true > as you >> could store the language name as well as the ID and reference the > field in >> the record set by name: grstTranslate(gstrLanguageName) when grabbing > the >> translation. With the DB I'm giving you, it would be easy to test as > I left >> the original table. You just need to make a few minor modifications >> SetLanguage() and TranslateForm() >> >> Note also that I only did label captions. I didn't touch buttons. >> >> Enjoy! >> >> JimD. > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com The information contained in this > transmission is intended only for the person or entity to which it is > addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive > material. If you are not the intended recipient, please contact the sender > immediately and destroy the material in its entirety, whether electronic or > hard copy. You are notified that any review, retransmission, copying, > disclosure, dissemination, or other use of, or taking of any action in > reliance upon this information by persons or entities other than the > intended recipient is prohibited. > > From max.wanadoo at gmail.com Wed Feb 25 12:51:23 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 25 Feb 2009 18:51:23 -0000 Subject: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOT REQUIRED) In-Reply-To: References: Message-ID: <49a59337.07ed300a.4e07.ffffc5b0@mx.google.com> >> Sorry for not being precise Won't get you far on this List, Charlotte! Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 25 February 2009 16:37 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOT REQUIRED) Hi Charlotte OK, I see what you mean. I was talking about the value of that property. Sorry for not being precise. /gustav >>> cfoust at infostatsystems.com 25-02-2009 17:08 >>> No it doesn't, it's setting a property of the event. That isn't the same thing as returning a value as does a function. Subs are quite capable of setting values or they wouldn't be as useful as they are. They do NOT return a value directly however. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Tuesday, February 24, 2009 11:56 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Function vs Sub (was: Classes and Events- EVENTSNOTREQUIRED) Hi Charlotte Eh, you can't have forgotten that setting Cancel to True in your code of such a sub will return that value to the form? /gustav >>> cfoust at infostatsystems.com 24-02-2009 22:21 >>> Not sure I follow, Stuart. Subs set values like Cancel or process a keycode. They don't return them per se. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Tuesday, February 24, 2009 1:12 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTSNOTREQUIRED) Which begs the question, why does VBA use Subs for event procedures which return values such as Cancel or KeyCode? Aren't these Functions? :-) -- Stuart On 24 Feb 2009 at 9:24, Charlotte Foust wrote: > Absolutely when you need multiple return values, but a simple boolean > or single value? > > Charlotte Foust -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 25 12:51:23 2009 From: max.wanadoo at gmail.com (Denis Sherman) Date: Wed, 25 Feb 2009 18:51:23 -0000 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: <02d401c9976f$8857f6c0$9907e440$@net> References: <49A54330.3030705@colbyconsulting.com> <2EA42A19C04E4E398CB321260C63037D@XPS> <49A5609A.6010901@colbyconsulting.com> <02d401c9976f$8857f6c0$9907e440$@net> Message-ID: <49a59338.08eb300a.4a01.ffffd69f@mx.google.com> Yes, definitely. Any idea where I'm at...?? Personally I think somewhere around 9.9/10 but I could be biased! Ummmm, no on second thoughts I don't have a biased bone in my body. QED it must be genius level! Decision made, don't bother replying. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of John Bartow Sent: 25 February 2009 17:36 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Apologies guys - was Tags. The difference between genius and insanity is the level of success achieved... -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From nd500_lo at charter.net Wed Feb 25 12:59:45 2009 From: nd500_lo at charter.net (Dian) Date: Wed, 25 Feb 2009 10:59:45 -0800 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: <49A5530D.30802@colbyconsulting.com> References: <49A54330.3030705@colbyconsulting.com> <49A54F46.30803@colbyconsulting.com><29f585dd0902250605w3c6bd5e3q7818f7d0fd1063d5@mail.gmail.com> <49A5530D.30802@colbyconsulting.com> Message-ID: <80A831BC9E65406ABDABFE8CBBD91613@dsunit1> John, just put RANT in your subject line. That way those of us who find them interesting can read...others can just delete. Just a possible solution... -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 6:18 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Apologies guys - was Tags. I need to find the property in Thunderbird "don't send rant". LOL. John W. Colby www.ColbyConsulting.com Arthur Fuller wrote: > There's a little-known setting in Outlook -- Rant = Off. LOL. > > On Wed, Feb 25, 2009 at 9:01 AM, jwcolby wrote: > >> > Who are you and what have you done with Colby? >> >> Who? >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Rocky Smolin at Beach Access Software wrote: >>> Who are you and what have you done with Colby? >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >>> >>> >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>> Sent: Wednesday, February 25, 2009 5:10 AM >>> To: Access Developers discussion and problem solving >>> Subject: [AccessD] Apologies guys - was Tags. >>> >>> I wanted to apologize for the rant yesterday. Of course there is a >>> valid reason for using tags, actually two valid reasons. >>> >>> 1) You are capable of using them >>> 2) You want something that loads with the form. >>> >>> I used tags in the past for exactly those two reasons. >>> >>> I was mostly responding to the implication that NOT using the tags >>> was >> silly >>> when "they already exist so why not". I try very hard to use good >>> programming practices and I have spent a lot of time learning how to >>> use tools that make tags unnecessary FOR ME. The hardware, and my >>> knowledge >> of >>> VBA programming constructs make tags unnecessary (and bad practice) >>> FOR >> ME. >>> Of course if tags are the right tool for you, then you absolutely >>> should >> use >>> them. >>> >>> I will not be responding to this thread any more, and sorry for the rant. >>> >>> -- >>> John W. Colby >>> www.ColbyConsulting.com >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 25 13:02:19 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 25 Feb 2009 11:02:19 -0800 Subject: [AccessD] Word Not Closing Message-ID: Dear List: I am using the following to get the contents of a word doc. Works all OK except that Word is not closing. Document is closed but not word. What am I doing wrong? ' Get word document Dim objWord As Object Set objWord = CreateObject("Word.Application") objWord.Documents.Open (varFileName) objWord.Visible = False objWord.Selection.Wholestory objWord.Selection.Copy strBody = objWord.Selection objWord.Documents.Close Set objWord = Nothing MTIA, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com From rockysmolin at bchacc.com Wed Feb 25 13:02:19 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 25 Feb 2009 11:02:19 -0800 Subject: [AccessD] FW: Translation DB In-Reply-To: <49A58E09.709@colbyconsulting.com> References: <49A56610.50105@colbyconsulting.com> <49A58E09.709@colbyconsulting.com> Message-ID: <6F32467C35A94D989509279664E606CD@HAL9005> Agreed. But does it run into that Premature whatis earlier in the thread - i.e., planning for something that may not happen? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 10:29 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] FW: Translation DB Rocky, > I time them by eyeball - like a user would - milliseconds are usually not relevant. So all the solutions seem pretty much equally fast by that metric. And of course as your forms get complex then the equation changes. We are discussing solutions in this thread that other developers might pick up and try to apply. "Fast enough" for one form may be woefully inadequate in another. I develop for the generic application so I will spend another 1/2 hour if necessary to test and find out which is the fastest and all other things being close, I then go with the fastest. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > I time them by eyeball - like a user would - milliseconds are usually > not relevant. So all the solutions seem pretty much equally fast by > that metric. > > Now I don't know what will happen among the solutions on a form that > really 'control rich'. But getting back to my original problem of > flashing or repainting, I'm not sure any more that the current system is the culprit. > Although changing the loop to go through the table records instead of > the control would certainly cut the translate time way down, as, does, > seemingly, the Seek approach. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Wednesday, February 25, 2009 8:06 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] FW: Translation DB > > How did mine time out? I saw your post about having a collection for > every form. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 25, 2009 9:39 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] FW: Translation DB > > Rocky, > > > I just got another great solution from Jim Dettman, which you > should take a look at. > > I am collecting solutions in a directory under the Classes documents I > am writing. Attach it to an email to me and I will definitely take a look. > > Anyone else who wants can also send me their solution which uses > Rocky's DB to actually perform translations. Can I make a request > though, that everyone try to standardize the solution so that there is > a translation form with combos that allows the user to select a > language and a form and the form opens with translation applied. That > would make it easier to evaluate the various solutions. > > Please also note that for Rocky's use, an "on-the-fly" translation is > required, i.e. translating the forms in design view and storing them > won't work (for him) so to make it apples to apples, your code needs > to translate as the form opens. > > I will add timer code to time the form's opening and post results so > that everyone can see how the various solutions work in terms of > speed. In fact I will build a test harness to time opening the forms > repeatedly, so that we get a "total time to open 100 times" or something similar. > > I already have solutions for Drew and Max. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: >> John: >> >> I just got another great solution from Jim Dettman, which you should > take a >> look at. >> >> Now I'm thinking that for your eBook - unless you want to stick > strictly >> with classes and collections - you could take all of these solutions > and >> include them as a case study in how many great ways there are to skin > this >> cat. I think it might make an interesting story if followed > chronologically >> - how the discussion of translations stimulated al these terrific > solutions. >> >> I don't know how big the market would be for this, but for anyone > interested >> it would be of great value. >> >> >> Rocky Smolin >> >> Beach Access Software >> >> 858-259-4334 >> >> www.e-z-mrp.com >> >> www.bchacc.com >> >> >> >> >> >> >> >> _____ >> >> From: Jim Dettman [mailto:jimdettman at verizon.net] >> Sent: Wednesday, February 25, 2009 6:43 AM >> To: 'Rocky Smolin at Beach Access Software' >> Subject: Translation DB >> >> >> Rocky, >> >> First let me point out that this is just proof of concept. I would > not >> consider this "polished" and ready for production by any means. For >> example, I open the translation table as a global recordset, but >> don't > close >> it anywhere at present. SetLanguage() should be callable from > anywhere not >> just frmSelectLanguage, so it should be checking that the languageID > passed >> in is a valid one, etc. There are a bunch of ways that you could >> move forward with something like this, and that is why I haven't >> tried to address any of those issues. >> >> When you open the db, the Language selection form will pop up. Pick > any >> one of the languages and then open another form and you'll find it >> translated. Note that you must select something or you'll get an > error. >> Again, it's just not polished off. >> >> For me, hooking this in would be a simple task even though with my > Access >> apps I typically don't use classes. For a number of years I've used >> standard routines that I call from every forms OnOpen, OnClose, etc. > events >> and I would simply add this call to one of those routines. I do > have some >> extra overhead in that if I need to change the call for the event I > have to >> run through every form, but I have code to do that so it's quite > painless. >> In affect, for the most part I get the same thing that John gets with > his >> classes, but without all the additional overhead of using them. >> >> If your not already doing that, this would probably be a good time > to do >> so and put the translation in the standard procedure. ie. Open > event: >> =StdFormCtrl([Form],"OnOpen"). The translation would be called in >> StdFormCtrl(). >> >> I do use classes when I need multiple instances of something, but >> for > the >> most part I stick to standard procedures when working with Access > since >> class implementation in VBA leaves something to be desired (no >> implementation inheritance and since inheritance really is the whole > point >> of using classes, I think they are more or less a waste in Access). >> >> Performance wise I think you will find this more then acceptable. >> Of course, the language translation table would need to be part of >> the > FE. It >> would not be something I would stick a BE since it will only change >> if > the >> app changes. >> >> Performance I think should continue to be more then acceptable even > if you >> added another dozen languages or so. You could also go back to the >> de-normalized approach you had with each language in a separate field > in a >> single record if it did prove to be a problem. The only thing this > would >> change is that you'd need to add an if check on the language ID to >> get > to >> the right field. Although now that I say that, that is not even true > as you >> could store the language name as well as the ID and reference the > field in >> the record set by name: grstTranslate(gstrLanguageName) when grabbing > the >> translation. With the DB I'm giving you, it would be easy to test as > I left >> the original table. You just need to make a few minor modifications >> SetLanguage() and TranslateForm() >> >> Note also that I only did label captions. I didn't touch buttons. >> >> Enjoy! >> >> JimD. > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com The information contained in > this transmission is intended only for the person or entity to which > it is addressed and may contain II-VI Proprietary and/or II-VI > Business Sensitive material. If you are not the intended recipient, > please contact the sender immediately and destroy the material in its > entirety, whether electronic or hard copy. You are notified that any > review, retransmission, copying, disclosure, dissemination, or other > use of, or taking of any action in reliance upon this information by > persons or entities other than the intended recipient is prohibited. > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Wed Feb 25 13:04:05 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Wed, 25 Feb 2009 11:04:05 -0800 Subject: [AccessD] Function vs Sub (was: Classes and Events - EVENTSNOT REQUIRED) In-Reply-To: <49a59337.07ed300a.4e07.ffffc5b0@mx.google.com> References: <49a59337.07ed300a.4e07.ffffc5b0@mx.google.com> Message-ID: What, precision? I've been studying JC and learning his approach. ;-> Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Wednesday, February 25, 2009 10:51 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTSNOT REQUIRED) >> Sorry for not being precise Won't get you far on this List, Charlotte! Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 25 February 2009 16:37 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOT REQUIRED) Hi Charlotte OK, I see what you mean. I was talking about the value of that property. Sorry for not being precise. /gustav >>> cfoust at infostatsystems.com 25-02-2009 17:08 >>> No it doesn't, it's setting a property of the event. That isn't the same thing as returning a value as does a function. Subs are quite capable of setting values or they wouldn't be as useful as they are. They do NOT return a value directly however. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Tuesday, February 24, 2009 11:56 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Function vs Sub (was: Classes and Events- EVENTSNOTREQUIRED) Hi Charlotte Eh, you can't have forgotten that setting Cancel to True in your code of such a sub will return that value to the form? /gustav >>> cfoust at infostatsystems.com 24-02-2009 22:21 >>> Not sure I follow, Stuart. Subs set values like Cancel or process a keycode. They don't return them per se. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Tuesday, February 24, 2009 1:12 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTSNOTREQUIRED) Which begs the question, why does VBA use Subs for event procedures which return values such as Cancel or KeyCode? Aren't these Functions? :-) -- Stuart On 24 Feb 2009 at 9:24, Charlotte Foust wrote: > Absolutely when you need multiple return values, but a simple boolean > or single value? > > Charlotte Foust -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 25 13:07:12 2009 From: max.wanadoo at gmail.com (Denis Sherman) Date: Wed, 25 Feb 2009 19:07:12 -0000 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: <02d401c9976f$8857f6c0$9907e440$@net> References: <49A54330.3030705@colbyconsulting.com> <2EA42A19C04E4E398CB321260C63037D@XPS> <49A5609A.6010901@colbyconsulting.com> <02d401c9976f$8857f6c0$9907e440$@net> Message-ID: <49a596ec.17e7300a.60c7.ffffb1b0@mx.google.com> Yes, definitely. Any idea where I'm at...?? Personally I think somewhere around 9.9/10 but I could be biased! Ummmm, no on second thoughts I don't have a biased bone in my body. QED it must be genius level! Decision made, don't bother replying. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of John Bartow Sent: 25 February 2009 17:36 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Apologies guys - was Tags. The difference between genius and insanity is the level of success achieved... -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 25 13:07:12 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 25 Feb 2009 19:07:12 -0000 Subject: [AccessD] Using Lateral Thinking To solve problems - This timeit is DB Properties In-Reply-To: <293BF05ED1444D2C9E0F0BC792B868D4@jislaptopdev> References: <293BF05ED1444D2C9E0F0BC792B868D4@jislaptopdev> Message-ID: <49a596ec.0116300a.7774.26e0@mx.google.com> Excuse me, I resemble that remark! Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: 25 February 2009 17:36 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This timeit is DB Properties ...ah yes ...you euros all look alike to me :) ...sorry ...its creeping dementia it is :( William -------------------------------------------------- From: "Gustav Brock" Sent: Wednesday, February 25, 2009 12:25 PM To: Subject: Re: [AccessD] Using Lateral Thinking To solve problems - Thistimeitis DB Properties > Hi William > > That's not me. That's Lembit (seriously!). > > /gustav > > >>>> wdhindman at dejpolsystems.com 25-02-2009 18:13 >>> > ...bottles? ...whatever happened to the keg you kept in your living room? > > William > > -------------------------------------------------- > From: "Gustav Brock" > Sent: Wednesday, February 25, 2009 11:54 AM > To: > Subject: Re: [AccessD] Using Lateral Thinking To solve problems - > Thistimeitis DB Properties > >> Hi Max >> >> Love that lateral thing. Now you are at it, can't you find a method to >> swap property Filled of my beer bottles from False to True? At best by >> some batch routine taking a six-pack (I'm lazy and have to perform >> vertical thinking as horizontal makes me fall asleep)? >> >> /gustav >> >> PS: Thanks for the code. Didn't know about that limit on the count of >> properties - I always thought that these were saved in some kind of >> hidden >> table with no other limits than other tables. >> >>>>> max.wanadoo at gmail.com 25-02-2009 17:41 >>> >> Using Lateral Thinking To solve problems - This time it is DB Properties > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Wed Feb 25 13:05:56 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Wed, 25 Feb 2009 11:05:56 -0800 Subject: [AccessD] Word Not Closing In-Reply-To: References: Message-ID: You aren't closing the word.application, you're just setting the variable to nothing once you close the document. Isn't there an objWord.Close missing? Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 11:02 AM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Word Not Closing Dear List: I am using the following to get the contents of a word doc. Works all OK except that Word is not closing. Document is closed but not word. What am I doing wrong? ' Get word document Dim objWord As Object Set objWord = CreateObject("Word.Application") objWord.Documents.Open (varFileName) objWord.Visible = False objWord.Selection.Wholestory objWord.Selection.Copy strBody = objWord.Selection objWord.Documents.Close Set objWord = Nothing MTIA, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com From cfoust at infostatsystems.com Wed Feb 25 13:07:04 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Wed, 25 Feb 2009 11:07:04 -0800 Subject: [AccessD] FW: Translation DB In-Reply-To: <6F32467C35A94D989509279664E606CD@HAL9005> References: <49A56610.50105@colbyconsulting.com> <49A58E09.709@colbyconsulting.com> <6F32467C35A94D989509279664E606CD@HAL9005> Message-ID: So who knows that but you? If it DOES happen, you're a hero. If not, what does it hurt? As long as you don't carry it to extremes, of course .... Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 11:02 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] FW: Translation DB Agreed. But does it run into that Premature whatis earlier in the thread - i.e., planning for something that may not happen? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 10:29 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] FW: Translation DB Rocky, > I time them by eyeball - like a user would - milliseconds are usually not relevant. So all the solutions seem pretty much equally fast by that metric. And of course as your forms get complex then the equation changes. We are discussing solutions in this thread that other developers might pick up and try to apply. "Fast enough" for one form may be woefully inadequate in another. I develop for the generic application so I will spend another 1/2 hour if necessary to test and find out which is the fastest and all other things being close, I then go with the fastest. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > I time them by eyeball - like a user would - milliseconds are usually > not relevant. So all the solutions seem pretty much equally fast by > that metric. > > Now I don't know what will happen among the solutions on a form that > really 'control rich'. But getting back to my original problem of > flashing or repainting, I'm not sure any more that the current system > is the culprit. > Although changing the loop to go through the table records instead of > the control would certainly cut the translate time way down, as, does, > seemingly, the Seek approach. > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka > Sent: Wednesday, February 25, 2009 8:06 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] FW: Translation DB > > How did mine time out? I saw your post about having a collection for > every form. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 25, 2009 9:39 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] FW: Translation DB > > Rocky, > > > I just got another great solution from Jim Dettman, which you > should take a look at. > > I am collecting solutions in a directory under the Classes documents I > am writing. Attach it to an email to me and I will definitely take a look. > > Anyone else who wants can also send me their solution which uses > Rocky's DB to actually perform translations. Can I make a request > though, that everyone try to standardize the solution so that there is > a translation form with combos that allows the user to select a > language and a form and the form opens with translation applied. That > would make it easier to evaluate the various solutions. > > Please also note that for Rocky's use, an "on-the-fly" translation is > required, i.e. translating the forms in design view and storing them > won't work (for him) so to make it apples to apples, your code needs > to translate as the form opens. > > I will add timer code to time the form's opening and post results so > that everyone can see how the various solutions work in terms of > speed. In fact I will build a test harness to time opening the forms > repeatedly, so that we get a "total time to open 100 times" or > something similar. > > I already have solutions for Drew and Max. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: >> John: >> >> I just got another great solution from Jim Dettman, which you should > take a >> look at. >> >> Now I'm thinking that for your eBook - unless you want to stick > strictly >> with classes and collections - you could take all of these solutions > and >> include them as a case study in how many great ways there are to skin > this >> cat. I think it might make an interesting story if followed > chronologically >> - how the discussion of translations stimulated al these terrific > solutions. >> >> I don't know how big the market would be for this, but for anyone > interested >> it would be of great value. >> >> >> Rocky Smolin >> >> Beach Access Software >> >> 858-259-4334 >> >> www.e-z-mrp.com >> >> www.bchacc.com >> >> >> >> >> >> >> >> _____ >> >> From: Jim Dettman [mailto:jimdettman at verizon.net] >> Sent: Wednesday, February 25, 2009 6:43 AM >> To: 'Rocky Smolin at Beach Access Software' >> Subject: Translation DB >> >> >> Rocky, >> >> First let me point out that this is just proof of concept. I would > not >> consider this "polished" and ready for production by any means. For >> example, I open the translation table as a global recordset, but >> don't > close >> it anywhere at present. SetLanguage() should be callable from > anywhere not >> just frmSelectLanguage, so it should be checking that the languageID > passed >> in is a valid one, etc. There are a bunch of ways that you could >> move forward with something like this, and that is why I haven't >> tried to address any of those issues. >> >> When you open the db, the Language selection form will pop up. Pick > any >> one of the languages and then open another form and you'll find it >> translated. Note that you must select something or you'll get an > error. >> Again, it's just not polished off. >> >> For me, hooking this in would be a simple task even though with my > Access >> apps I typically don't use classes. For a number of years I've used >> standard routines that I call from every forms OnOpen, OnClose, etc. > events >> and I would simply add this call to one of those routines. I do > have some >> extra overhead in that if I need to change the call for the event I > have to >> run through every form, but I have code to do that so it's quite > painless. >> In affect, for the most part I get the same thing that John gets with > his >> classes, but without all the additional overhead of using them. >> >> If your not already doing that, this would probably be a good time > to do >> so and put the translation in the standard procedure. ie. Open > event: >> =StdFormCtrl([Form],"OnOpen"). The translation would be called in >> StdFormCtrl(). >> >> I do use classes when I need multiple instances of something, but >> for > the >> most part I stick to standard procedures when working with Access > since >> class implementation in VBA leaves something to be desired (no >> implementation inheritance and since inheritance really is the whole > point >> of using classes, I think they are more or less a waste in Access). >> >> Performance wise I think you will find this more then acceptable. >> Of course, the language translation table would need to be part of >> the > FE. It >> would not be something I would stick a BE since it will only change >> if > the >> app changes. >> >> Performance I think should continue to be more then acceptable even > if you >> added another dozen languages or so. You could also go back to the >> de-normalized approach you had with each language in a separate field > in a >> single record if it did prove to be a problem. The only thing this > would >> change is that you'd need to add an if check on the language ID to >> get > to >> the right field. Although now that I say that, that is not even true > as you >> could store the language name as well as the ID and reference the > field in >> the record set by name: grstTranslate(gstrLanguageName) when grabbing > the >> translation. With the DB I'm giving you, it would be easy to test as > I left >> the original table. You just need to make a few minor modifications >> SetLanguage() and TranslateForm() >> >> Note also that I only did label captions. I didn't touch buttons. >> >> Enjoy! >> >> JimD. > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com The information contained in > this transmission is intended only for the person or entity to which > it is addressed and may contain II-VI Proprietary and/or II-VI > Business Sensitive material. If you are not the intended recipient, > please contact the sender immediately and destroy the material in its > entirety, whether electronic or hard copy. You are notified that any > review, retransmission, copying, disclosure, dissemination, or other > use of, or taking of any action in reliance upon this information by > persons or entities other than the intended recipient is prohibited. > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Wed Feb 25 13:18:23 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 14:18:23 -0500 Subject: [AccessD] FW: Translation DB In-Reply-To: <6F32467C35A94D989509279664E606CD@HAL9005> References: <49A56610.50105@colbyconsulting.com> <49A58E09.709@colbyconsulting.com> <6F32467C35A94D989509279664E606CD@HAL9005> Message-ID: <49A5997F.50303@colbyconsulting.com> Rocky, And that is the problem I have with that whole concept. I design for all my clients. I use my code for all of my clients. I am not sitting on site building a single database for one purpose, I am a consultant and by definition I design for the generic. I know a lot of people that will just do the same work over and over and over and charge each client to do that work over. If that is the case then premature whatitis makes a lot of sense. Then you do one unit of work for each one but get to charge X * one unit across the client base. You build exactly and only what is required for that specific job, and the client pays for every minute and pays for refactoring when it wasn't good enough for the next thing that it really should have worked for. I have a problem with that. We walk a fine line in this business. One line is trying to make the suit fit too many people, the other is selling a custom designed suit to each person, complete with alterations later. In a case like this though how much time does it take to design for the general? We are not talking a weeks work to make it fast enough for everyone. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > Agreed. But does it run into that Premature whatis earlier in the thread - > i.e., planning for something that may not happen? > > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com From jwcolby at colbyconsulting.com Wed Feb 25 13:19:32 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 14:19:32 -0500 Subject: [AccessD] Function vs Sub In-Reply-To: References: <49a59337.07ed300a.4e07.ffffc5b0@mx.google.com> Message-ID: <49A599C4.3080007@colbyconsulting.com> Hmmm... I think I have just been dissed. It's pretty bad when you aren't even sure if you have been dissed. ;) John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > What, precision? I've been studying JC and learning his approach. ;-> > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Wednesday, February 25, 2009 10:51 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - > EVENTSNOT REQUIRED) > >>> Sorry for not being precise > > Won't get you far on this List, Charlotte! > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. > And always stand your round in the pub! > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: 25 February 2009 16:37 > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTS > NOT > REQUIRED) > > Hi Charlotte > > OK, I see what you mean. I was talking about the value of that property. > Sorry for not being precise. > > /gustav > >>>> cfoust at infostatsystems.com 25-02-2009 17:08 >>> > No it doesn't, it's setting a property of the event. That isn't the > same thing as returning a value as does a function. Subs are quite > capable of setting values or they wouldn't be as useful as they are. > They do NOT return a value directly however. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Tuesday, February 24, 2009 11:56 PM > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events- > EVENTSNOTREQUIRED) > > Hi Charlotte > > Eh, you can't have forgotten that setting Cancel to True in your code of > such a sub will return that value to the form? > > /gustav > > >>>> cfoust at infostatsystems.com 24-02-2009 22:21 >>> > Not sure I follow, Stuart. Subs set values like Cancel or process a > keycode. They don't return them per se. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan > Sent: Tuesday, February 24, 2009 1:12 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - > EVENTSNOTREQUIRED) > > Which begs the question, why does VBA use Subs for event procedures > which return values such as Cancel or KeyCode? Aren't these Functions? > :-) > > -- > Stuart > > > On 24 Feb 2009 at 9:24, Charlotte Foust wrote: > >> Absolutely when you need multiple return values, but a simple boolean >> or single value? >> >> Charlotte Foust > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From cfoust at infostatsystems.com Wed Feb 25 13:28:14 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Wed, 25 Feb 2009 11:28:14 -0800 Subject: [AccessD] Function vs Sub In-Reply-To: <49A599C4.3080007@colbyconsulting.com> References: <49a59337.07ed300a.4e07.ffffc5b0@mx.google.com> <49A599C4.3080007@colbyconsulting.com> Message-ID: Serpintly not, John. I admire you tremendously, especially the way you change colors as your blood pressure shoots up. Beats sunset watching hands down! LOL Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 11:20 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Function vs Sub Hmmm... I think I have just been dissed. It's pretty bad when you aren't even sure if you have been dissed. ;) John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > What, precision? I've been studying JC and learning his approach. > ;-> > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Wednesday, February 25, 2009 10:51 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - > EVENTSNOT REQUIRED) > >>> Sorry for not being precise > > Won't get you far on this List, Charlotte! > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. > And always stand your round in the pub! > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav > Brock > Sent: 25 February 2009 16:37 > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - > EVENTS NOT > REQUIRED) > > Hi Charlotte > > OK, I see what you mean. I was talking about the value of that property. > Sorry for not being precise. > > /gustav > >>>> cfoust at infostatsystems.com 25-02-2009 17:08 >>> > No it doesn't, it's setting a property of the event. That isn't the > same thing as returning a value as does a function. Subs are quite > capable of setting values or they wouldn't be as useful as they are. > They do NOT return a value directly however. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav > Brock > Sent: Tuesday, February 24, 2009 11:56 PM > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events- > EVENTSNOTREQUIRED) > > Hi Charlotte > > Eh, you can't have forgotten that setting Cancel to True in your code > of such a sub will return that value to the form? > > /gustav > > >>>> cfoust at infostatsystems.com 24-02-2009 22:21 >>> > Not sure I follow, Stuart. Subs set values like Cancel or process a > keycode. They don't return them per se. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan > Sent: Tuesday, February 24, 2009 1:12 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - > EVENTSNOTREQUIRED) > > Which begs the question, why does VBA use Subs for event procedures > which return values such as Cancel or KeyCode? Aren't these Functions? > :-) > > -- > Stuart > > > On 24 Feb 2009 at 9:24, Charlotte Foust wrote: > >> Absolutely when you need multiple return values, but a simple boolean >> or single value? >> >> Charlotte Foust > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 25 13:38:39 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 25 Feb 2009 11:38:39 -0800 Subject: [AccessD] Word Not Closing In-Reply-To: References: Message-ID: <08B25F27CA214F209B19BE90676094EB@HAL9005> Charlotte: objWord.close generates error Object does not support this property or method. Is it because of late binding? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Wednesday, February 25, 2009 11:06 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Word Not Closing You aren't closing the word.application, you're just setting the variable to nothing once you close the document. Isn't there an objWord.Close missing? Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 11:02 AM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Word Not Closing Dear List: I am using the following to get the contents of a word doc. Works all OK except that Word is not closing. Document is closed but not word. What am I doing wrong? ' Get word document Dim objWord As Object Set objWord = CreateObject("Word.Application") objWord.Documents.Open (varFileName) objWord.Visible = False objWord.Selection.Wholestory objWord.Selection.Copy strBody = objWord.Selection objWord.Documents.Close Set objWord = Nothing MTIA, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 25 13:41:42 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 25 Feb 2009 11:41:42 -0800 Subject: [AccessD] Insert Word Doc into Email Message-ID: Dear List: Is there a way to insert the contents of a word document into an email without losing the formatting? MTIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com From DWUTKA at Marlow.com Wed Feb 25 13:47:45 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Wed, 25 Feb 2009 13:47:45 -0600 Subject: [AccessD] Classes: organizing your code Message-ID: Just wanted to post an example of how classes can organize your code. Everyone that codes in VB/VBA already uses classes. Forms and Reports are class modules. When you use a recordset, that's a class. Any defined object (control, form, recordset, etc.) is a class object. The ability to create a class object allows a developer to organize their code in the same way. Let's take a recordset object, for example. If the recordset wasn't an object, but just a vast list of functions/subs that returned values, imagine how complex your code would be. Instead of: Dim rs as ADODB.Recordset Set rs=new ADODB.Recordset Rs.open "tblSomeTable",currentproject.connection,adopenkeyset,adlockreadonly,adc mdtabledirect If rs.eof=false then rs.movefirst Do until rs.eof=true 'do something Loop Rs.close Set rs=nothing We'd end up with something like: Dim TableArray() Dim RecordArray() Dim blRecords as Boolean Dim intFieldCount as long Dim intRowCount as long blRecords=fAreThereRecords("tblSomeTable",1,512,0) TableArray=fGetRecords("tblSomeTable",1,512,0) intRowCount=Ubound(TableArray())+1 for i=0 to intRowCount-1 RecordArray=fGetRecordFromTable(TableArray(i)) intFieldCount=Ubound(RecordArray())-1 etc. etc. We wouldn't have defined data types for the appropriate records, we'd have to remember function names for all sorts of processes that are already part of the recordset object. Ugly.... So here's an example of custom classes: http://www.marlow.com/Classes.zip That zip contains a database with two class objects, GeneralSystemInfo and OperatingSystem. It has a form that uses both (frmGeneralSystemInfo). Instead of having to remember various function names to get certain pieces of information, I have built these classes to make my coding simpler. For example, let's say I want to know if the system I am dealing with is an NT based system: Dim OS as OperatingSystem Set OS=New OperatingSystem If OS.NTBased then End if Set os=nothing No need to remember individual function names, all the stuff I typically want to know or do with the Operating System is in that one class module. Isn't that easier to read and follow? Drew The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From john at winhaven.net Wed Feb 25 13:58:26 2009 From: john at winhaven.net (John Bartow) Date: Wed, 25 Feb 2009 13:58:26 -0600 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: <49a596ec.17e7300a.60c7.ffffb1b0@mx.google.com> References: <49A54330.3030705@colbyconsulting.com> <2EA42A19C04E4E398CB321260C63037D@XPS> <49A5609A.6010901@colbyconsulting.com> <02d401c9976f$8857f6c0$9907e440$@net> <49a596ec.17e7300a.60c7.ffffb1b0@mx.google.com> Message-ID: <03a001c99783$6c3ce590$44b6b0b0$@net> I'll let you all answer that in the privacy of your own minds... ?:-? -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Denis Sherman Sent: Wednesday, February 25, 2009 1:07 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Apologies guys - was Tags. Yes, definitely. Any idea where I'm at...?? From wdhindman at dejpolsystems.com Wed Feb 25 14:22:40 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 25 Feb 2009 15:22:40 -0500 Subject: [AccessD] Function vs Sub (was: Classes and Events- EVENTSNOT REQUIRED) References: <49a59337.07ed300a.4e07.ffffc5b0@mx.google.com> Message-ID: <10CD9B93B7184536BCABF324743A7362@jislaptopdev> ...25 Feb must be "National Hammer JC Day" :) William -------------------------------------------------- From: "Charlotte Foust" Sent: Wednesday, February 25, 2009 2:04 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Function vs Sub (was: Classes and Events- EVENTSNOTREQUIRED)> What, precision? I've been studying JC and learning his approach. ;-> > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Wednesday, February 25, 2009 10:51 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - > EVENTSNOT REQUIRED) > >>> Sorry for not being precise > > Won't get you far on this List, Charlotte! > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. > And always stand your round in the pub! > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: 25 February 2009 16:37 > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTS > NOT > REQUIRED) > > Hi Charlotte > > OK, I see what you mean. I was talking about the value of that property. > Sorry for not being precise. > > /gustav > >>>> cfoust at infostatsystems.com 25-02-2009 17:08 >>> > No it doesn't, it's setting a property of the event. That isn't the > same thing as returning a value as does a function. Subs are quite > capable of setting values or they wouldn't be as useful as they are. > They do NOT return a value directly however. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Tuesday, February 24, 2009 11:56 PM > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events- > EVENTSNOTREQUIRED) > > Hi Charlotte > > Eh, you can't have forgotten that setting Cancel to True in your code of > such a sub will return that value to the form? > > /gustav > > >>>> cfoust at infostatsystems.com 24-02-2009 22:21 >>> > Not sure I follow, Stuart. Subs set values like Cancel or process a > keycode. They don't return them per se. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan > Sent: Tuesday, February 24, 2009 1:12 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - > EVENTSNOTREQUIRED) > > Which begs the question, why does VBA use Subs for event procedures > which return values such as Cancel or KeyCode? Aren't these Functions? > :-) > > -- > Stuart > > > On 24 Feb 2009 at 9:24, Charlotte Foust wrote: > >> Absolutely when you need multiple return values, but a simple boolean >> or single value? >> >> Charlotte Foust > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From wdhindman at dejpolsystems.com Wed Feb 25 14:24:04 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 25 Feb 2009 15:24:04 -0500 Subject: [AccessD] Apologies guys - was Tags. References: <49A54330.3030705@colbyconsulting.com> <49A54F46.30803@colbyconsulting.com><29f585dd0902250605w3c6bd5e3q7818f7d0fd1063d5@mail.gmail.com><49A5530D.30802@colbyconsulting.com> <80A831BC9E65406ABDABFE8CBBD91613@dsunit1> Message-ID: <9EB80B45775D497A843B68B508201297@jislaptopdev> ...that assumes he can tell the difference before the morning after :) William -------------------------------------------------- From: "Dian" Sent: Wednesday, February 25, 2009 1:59 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Apologies guys - was Tags. > John, just put RANT in your subject line. That way those of us who find > them > interesting can read...others can just delete. Just a possible solution... > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 25, 2009 6:18 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Apologies guys - was Tags. > > I need to find the property in Thunderbird "don't send rant". > > LOL. > > John W. Colby > www.ColbyConsulting.com > > > Arthur Fuller wrote: >> There's a little-known setting in Outlook -- Rant = Off. LOL. >> >> On Wed, Feb 25, 2009 at 9:01 AM, jwcolby > wrote: >> >>> > Who are you and what have you done with Colby? >>> >>> Who? >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Rocky Smolin at Beach Access Software wrote: >>>> Who are you and what have you done with Colby? >>>> >>>> >>>> Rocky Smolin >>>> Beach Access Software >>>> 858-259-4334 >>>> www.e-z-mrp.com >>>> www.bchacc.com >>>> >>>> >>>> >>>> -----Original Message----- >>>> From: accessd-bounces at databaseadvisors.com >>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>>> Sent: Wednesday, February 25, 2009 5:10 AM >>>> To: Access Developers discussion and problem solving >>>> Subject: [AccessD] Apologies guys - was Tags. >>>> >>>> I wanted to apologize for the rant yesterday. Of course there is a >>>> valid reason for using tags, actually two valid reasons. >>>> >>>> 1) You are capable of using them >>>> 2) You want something that loads with the form. >>>> >>>> I used tags in the past for exactly those two reasons. >>>> >>>> I was mostly responding to the implication that NOT using the tags >>>> was >>> silly >>>> when "they already exist so why not". I try very hard to use good >>>> programming practices and I have spent a lot of time learning how to >>>> use tools that make tags unnecessary FOR ME. The hardware, and my >>>> knowledge >>> of >>>> VBA programming constructs make tags unnecessary (and bad practice) >>>> FOR >>> ME. >>>> Of course if tags are the right tool for you, then you absolutely >>>> should >>> use >>>> them. >>>> >>>> I will not be responding to this thread any more, and sorry for the > rant. >>>> >>>> -- >>>> John W. Colby >>>> www.ColbyConsulting.com >>>> -- >>>> AccessD mailing list >>>> AccessD at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>> Website: http://www.databaseadvisors.com >>>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From john at winhaven.net Wed Feb 25 14:30:03 2009 From: john at winhaven.net (John Bartow) Date: Wed, 25 Feb 2009 14:30:03 -0600 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: <9EB80B45775D497A843B68B508201297@jislaptopdev> References: <49A54330.3030705@colbyconsulting.com> <49A54F46.30803@colbyconsulting.com><29f585dd0902250605w3c6bd5e3q7818f7d0fd1063d5@mail.gmail.com><49A5530D.30802@colbyconsulting.com> <80A831BC9E65406ABDABFE8CBBD91613@dsunit1> <9EB80B45775D497A843B68B508201297@jislaptopdev> Message-ID: <03ee01c99787$d6874c20$8395e460$@net> Note to Bryan: filter for and block subject lines which include "RANT" From mcp2004 at mail.ru Wed Feb 25 14:31:49 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Wed, 25 Feb 2009 23:31:49 +0300 Subject: [AccessD] =?koi8-r?b?U2NydW0gKHdhczogRmluZCBGaXJzdCBpbiBhbiBBcnJh?= =?koi8-r?b?eT8gLi4uKQ==?= In-Reply-To: References: Message-ID: Hi Gustav, My knowledge of Finnish language is almost at zero level - I used English while in Helsinki, and I have found that most of the people there knows English well enough to understand my English :)... As far as I currently realize SCRUM would be rather useless for "alone-wolf" working mode - SCRUM is to empower teamwork. I'm thinking first of all about simple project as e.g. converting MS Access Northwind to .NET WinForms application - that first simple project would produce useful result as e.g. set rathwer clear figure based on working experience on how much it could take to convert simple MS Access applications to .NET as well as it could help to setup initial simple agile disributed environment. I'd expect there should be quite some more useful practical outputs from this simple project if it would be done SCRUM way as SCRUM results not only in percievable practical outputs but also brings group and personal experiences, which can't be achieved other way (at least I do not know such other ways)... Not "preaching" here for any advanced rocket science software development - just thinking about something like "dumb" manual conversion of MS Access Northwind into .NET WinForms + .NET ReportViewer Northwind desktop sample app but with this conversion done using SCRUM development process applied as much as possible in distributed environmnet starting from scratch and keeping in mind that first of all a result - converted app should be delivered within max one man-month, and if all goes well then even within 1/2 man month with another 1/2 man month or less spent to build needed simple first version of distributed agile development environment. (1/2 - 1 man-month needed for such project is my current evaluation which could be wrong - this should be changed/reevaluated by team in the very beginning - and this evaluation should be a fun of playing SCRUM plannning pocker cards - http://jeffsutherland.com/scrum/2007/10/planning-poker-cards-get-them-here.html - :) Development tools: VS2008, and no third party tools/controls for application development + some open source agile development tools - something like described here maybe: http://blog.benhall.me.uk/2008/08/continuous-integration-builds-for.html No clear idea yet because to make this project a reality there should be at least seven team members who would be interested to commit up to one hour working on this project within working days within one month, and they should have some beginners experience to design .NET WinForms... Anybody? (There could be main seven team members with many their proxies who can commit several hours of working on this project when main team members will be very busy with their everyday duties but if this project will ever get started then there should be equally distributed time spent over project weeks as this would allow to calculate so called team velocity based on rithm - and velocity value is quite important to evaluate how "powerful team is" and how much it would take for this team to make this or that future projects...) The next project could be trying to make similar conversion but using some (nand made) conversion automation tools... The third one could be substituting MS Access backend with MS SQL 2005(?) backend... The forth one could be getting .NET Winform sample app "converted" to ASP.NET... etc. But it doesn't make sense to plan even for the second project now until first one will be done, and if that first one will be done then (according to SCRUM principles and expectations) there will be the other day, with its own needs, and that other day will define what other project is the most useful, practical and applicable to implement for all the interested parties: stakeholders/users, ProductOwner, SCRUMMaster and team members... Thank you. -- Shamil -----Original Message----- From: "Gustav Brock" To: Date: Wed, 25 Feb 2009 17:07:34 +0100 Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > Hi Shamil > > Yes, Finland is a nice place - I think - because last time I visited the country was about 35 years ago! But I still remember how to order two beers in Finnish - which by the way is a language very much different from most Western languages. Just to learn how to count to ten is a challenge. > > I've always had the opinion that things like scrum is a bit overkill when you mostly work on your own projects, but if it can help keeping you organised including keeping track of notes and ideas, this could be the occasion to give it a go. And a "demo" project could be a good method to keep feet on the ground. > > What kind of project do you have in mind? > > For those interested I think Danube may not be the best site to start - here is a place that starts at zero: > > http://www.scrumalliance.org/pages/what_is_scrum > > /gustav > > > >>> mcp2004 at mail.ru 25-02-2009 15:59 >>> > > Hi Max, > > Thank you. > > Sorry for some following off-topic guys. > > I have been Finland for several days, and I have got DANUBE's (http://www.danube.com/) Certified SCRUMMaster training: I ilked it, and it was an "eye opener" in some of the areas of agile software development... > > I also liked the foods, walking around Helsinki downtown, which is in some places very much alike to St.Petersburg's architecture, clear water and fresh air and a rather comfortavle Radisson SAS Royal Hotel staying: would I have had been more wealthy I would have been going travelling much more often to Finland, and the West Europe (and the States and Canada and Australia... :) (never been in the latter two)) - just to experience the difference of the living environment :) > > It's so easy to get to Finland from here these days provided one have Shengen Visa: by own car, by express bus, train etc. even by taxi - still it's the other world with much more comfortable living envionment and much more user-friendly common atmosphere... (Making very big money one can create such a good living environmnet here also these days but that would be isolated one, and of course no one with even huge money can create such an "user-friendly" atmosphere as in Finland (I'm not afraid on snow and frost you know :)) - creating the latter needs "mind shift" of several generations... > > Based on my new SCRUM experience I'm thinking to propose to develop a sample SCRUM-process driven small (half to one man/month) non-profit/open-source project here, I'm not committing for that activity yet, and I'm not asking volunteers to commit (there will be needed 7+/-2 developers) - I will try to prepare to it, hopefully soon - that project experience and results can be published on AccessD... > > Maybe it's time to start an AccessD-SCRUM discussion list? > > Thank you. > > -- > Shamil > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From john at winhaven.net Wed Feb 25 14:38:43 2009 From: john at winhaven.net (John Bartow) Date: Wed, 25 Feb 2009 14:38:43 -0600 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: <03ee01c99787$d6874c20$8395e460$@net> References: <49A54330.3030705@colbyconsulting.com> <49A54F46.30803@colbyconsulting.com><29f585dd0902250605w3c6bd5e3q7818f7d0fd1063d5@mail.gmail.com><49A5530D.30802@colbyconsulting.com> <80A831BC9E65406ABDABFE8CBBD91613@dsunit1> <9EB80B45775D497A843B68B508201297@jislaptopdev> <03ee01c99787$d6874c20$8395e460$@net> Message-ID: <03f401c99789$0cbe1f70$263a5e50$@net> oops, forgot the smiley - I was just KIDDING! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of John Bartow Sent: Wednesday, February 25, 2009 2:30 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Apologies guys - was Tags. Note to Bryan: filter for and block subject lines which include "RANT" From max.wanadoo at gmail.com Wed Feb 25 14:41:03 2009 From: max.wanadoo at gmail.com (Denis Sherman) Date: Wed, 25 Feb 2009 20:41:03 -0000 Subject: [AccessD] Function vs Sub (was: Classes and Events - EVENTSNOT REQUIRED) In-Reply-To: References: <49a59337.07ed300a.4e07.ffffc5b0@mx.google.com> Message-ID: <49a5acea.0722300a.65f8.0b0a@mx.google.com> It was your quote...You answer it. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: 25 February 2009 19:04 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTSNOT REQUIRED) What, precision? I've been studying JC and learning his approach. ;-> Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Wednesday, February 25, 2009 10:51 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTSNOT REQUIRED) >> Sorry for not being precise Won't get you far on this List, Charlotte! Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 25 February 2009 16:37 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOT REQUIRED) Hi Charlotte OK, I see what you mean. I was talking about the value of that property. Sorry for not being precise. /gustav >>> cfoust at infostatsystems.com 25-02-2009 17:08 >>> No it doesn't, it's setting a property of the event. That isn't the same thing as returning a value as does a function. Subs are quite capable of setting values or they wouldn't be as useful as they are. They do NOT return a value directly however. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Tuesday, February 24, 2009 11:56 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Function vs Sub (was: Classes and Events- EVENTSNOTREQUIRED) Hi Charlotte Eh, you can't have forgotten that setting Cancel to True in your code of such a sub will return that value to the form? /gustav >>> cfoust at infostatsystems.com 24-02-2009 22:21 >>> Not sure I follow, Stuart. Subs set values like Cancel or process a keycode. They don't return them per se. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Tuesday, February 24, 2009 1:12 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTSNOTREQUIRED) Which begs the question, why does VBA use Subs for event procedures which return values such as Cancel or KeyCode? Aren't these Functions? :-) -- Stuart On 24 Feb 2009 at 9:24, Charlotte Foust wrote: > Absolutely when you need multiple return values, but a simple boolean > or single value? > > Charlotte Foust -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 25 14:41:03 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Wed, 25 Feb 2009 20:41:03 -0000 Subject: [AccessD] Function vs Sub In-Reply-To: References: <49a59337.07ed300a.4e07.ffffc5b0@mx.google.com> <49A599C4.3080007@colbyconsulting.com> Message-ID: <49a5ace9.0722300a.0d58.1d1b@mx.google.com> Ha! I bet he resembles that remark Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: 25 February 2009 19:28 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Function vs Sub Serpintly not, John. I admire you tremendously, especially the way you change colors as your blood pressure shoots up. Beats sunset watching hands down! LOL Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 11:20 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Function vs Sub Hmmm... I think I have just been dissed. It's pretty bad when you aren't even sure if you have been dissed. ;) John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > What, precision? I've been studying JC and learning his approach. > ;-> > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo > Sent: Wednesday, February 25, 2009 10:51 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - > EVENTSNOT REQUIRED) > >>> Sorry for not being precise > > Won't get you far on this List, Charlotte! > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. > And always stand your round in the pub! > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav > Brock > Sent: 25 February 2009 16:37 > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - > EVENTS NOT > REQUIRED) > > Hi Charlotte > > OK, I see what you mean. I was talking about the value of that property. > Sorry for not being precise. > > /gustav > >>>> cfoust at infostatsystems.com 25-02-2009 17:08 >>> > No it doesn't, it's setting a property of the event. That isn't the > same thing as returning a value as does a function. Subs are quite > capable of setting values or they wouldn't be as useful as they are. > They do NOT return a value directly however. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav > Brock > Sent: Tuesday, February 24, 2009 11:56 PM > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events- > EVENTSNOTREQUIRED) > > Hi Charlotte > > Eh, you can't have forgotten that setting Cancel to True in your code > of such a sub will return that value to the form? > > /gustav > > >>>> cfoust at infostatsystems.com 24-02-2009 22:21 >>> > Not sure I follow, Stuart. Subs set values like Cancel or process a > keycode. They don't return them per se. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart > McLachlan > Sent: Tuesday, February 24, 2009 1:12 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - > EVENTSNOTREQUIRED) > > Which begs the question, why does VBA use Subs for event procedures > which return values such as Cancel or KeyCode? Aren't these Functions? > :-) > > -- > Stuart > > > On 24 Feb 2009 at 9:24, Charlotte Foust wrote: > >> Absolutely when you need multiple return values, but a simple boolean >> or single value? >> >> Charlotte Foust > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Wed Feb 25 14:48:08 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 15:48:08 -0500 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: <9EB80B45775D497A843B68B508201297@jislaptopdev> References: <49A54330.3030705@colbyconsulting.com> <49A54F46.30803@colbyconsulting.com><29f585dd0902250605w3c6bd5e3q7818f7d0fd1063d5@mail.gmail.com><49A5530D.30802@colbyconsulting.com> <80A831BC9E65406ABDABFE8CBBD91613@dsunit1> <9EB80B45775D497A843B68B508201297@jislaptopdev> Message-ID: <49A5AE88.1000204@colbyconsulting.com> > ...that assumes he can tell the difference before the morning after :) PRECISELY. John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...that assumes he can tell the difference before the morning after :) > > William > > -------------------------------------------------- > From: "Dian" > Sent: Wednesday, February 25, 2009 1:59 PM > To: "'Access Developers discussion and problem solving'" > > Subject: Re: [AccessD] Apologies guys - was Tags. > >> John, just put RANT in your subject line. That way those of us who find >> them >> interesting can read...others can just delete. Just a possible solution... >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Wednesday, February 25, 2009 6:18 AM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Apologies guys - was Tags. >> >> I need to find the property in Thunderbird "don't send rant". >> >> LOL. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Arthur Fuller wrote: >>> There's a little-known setting in Outlook -- Rant = Off. LOL. >>> >>> On Wed, Feb 25, 2009 at 9:01 AM, jwcolby >> wrote: >>>> > Who are you and what have you done with Colby? >>>> >>>> Who? >>>> >>>> John W. Colby >>>> www.ColbyConsulting.com >>>> >>>> >>>> Rocky Smolin at Beach Access Software wrote: >>>>> Who are you and what have you done with Colby? >>>>> >>>>> >>>>> Rocky Smolin >>>>> Beach Access Software >>>>> 858-259-4334 >>>>> www.e-z-mrp.com >>>>> www.bchacc.com >>>>> >>>>> >>>>> >>>>> -----Original Message----- >>>>> From: accessd-bounces at databaseadvisors.com >>>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>>>> Sent: Wednesday, February 25, 2009 5:10 AM >>>>> To: Access Developers discussion and problem solving >>>>> Subject: [AccessD] Apologies guys - was Tags. >>>>> >>>>> I wanted to apologize for the rant yesterday. Of course there is a >>>>> valid reason for using tags, actually two valid reasons. >>>>> >>>>> 1) You are capable of using them >>>>> 2) You want something that loads with the form. >>>>> >>>>> I used tags in the past for exactly those two reasons. >>>>> >>>>> I was mostly responding to the implication that NOT using the tags >>>>> was >>>> silly >>>>> when "they already exist so why not". I try very hard to use good >>>>> programming practices and I have spent a lot of time learning how to >>>>> use tools that make tags unnecessary FOR ME. The hardware, and my >>>>> knowledge >>>> of >>>>> VBA programming constructs make tags unnecessary (and bad practice) >>>>> FOR >>>> ME. >>>>> Of course if tags are the right tool for you, then you absolutely >>>>> should >>>> use >>>>> them. >>>>> >>>>> I will not be responding to this thread any more, and sorry for the >> rant. >>>>> -- >>>>> John W. Colby >>>>> www.ColbyConsulting.com >>>>> -- >>>>> AccessD mailing list >>>>> AccessD at databaseadvisors.com >>>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>>> Website: http://www.databaseadvisors.com >>>>> >>>> -- >>>> AccessD mailing list >>>> AccessD at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>> Website: http://www.databaseadvisors.com >>>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From jwcolby at colbyconsulting.com Wed Feb 25 14:48:40 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 15:48:40 -0500 Subject: [AccessD] Apologies guys - was Tags. In-Reply-To: <03ee01c99787$d6874c20$8395e460$@net> References: <49A54330.3030705@colbyconsulting.com> <49A54F46.30803@colbyconsulting.com><29f585dd0902250605w3c6bd5e3q7818f7d0fd1063d5@mail.gmail.com><49A5530D.30802@colbyconsulting.com> <80A831BC9E65406ABDABFE8CBBD91613@dsunit1> <9EB80B45775D497A843B68B508201297@jislaptopdev> <03ee01c99787$d6874c20$8395e460$@net> Message-ID: <49A5AEA8.1020504@colbyconsulting.com> ROTFL. Handles that very nicely. John W. Colby www.ColbyConsulting.com John Bartow wrote: > Note to Bryan: filter for and block subject lines which include "RANT" > From mcp2004 at mail.ru Wed Feb 25 14:51:29 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Wed, 25 Feb 2009 23:51:29 +0300 Subject: [AccessD] =?koi8-r?b?U2NydW0gKHdhczogRmluZCBGaXJzdCBpbiBhbiBBcnJh?= =?koi8-r?b?eT8gLi4uKQ==?= In-Reply-To: References: Message-ID: BTW, the CSM course I have just taken there in Finland was prepared and driven by Tobias Mayer - http://agilethinking.net/ ... -- Shamil -----Original Message----- From: "Gustav Brock" To: Date: Wed, 25 Feb 2009 17:07:34 +0100 Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > Hi Shamil > > Yes, Finland is a nice place - I think - because last time I visited the country was about 35 years ago! But I still remember how to order two beers in Finnish - which by the way is a language very much different from most Western languages. Just to learn how to count to ten is a challenge. > > I've always had the opinion that things like scrum is a bit overkill when you mostly work on your own projects, but if it can help keeping you organised including keeping track of notes and ideas, this could be the occasion to give it a go. And a "demo" project could be a good method to keep feet on the ground. > > What kind of project do you have in mind? > > For those interested I think Danube may not be the best site to start - here is a place that starts at zero: > > http://www.scrumalliance.org/pages/what_is_scrum > > /gustav > > > >>> mcp2004 at mail.ru 25-02-2009 15:59 >>> > > Hi Max, > > Thank you. > > Sorry for some following off-topic guys. > > I have been Finland for several days, and I have got DANUBE's (http://www.danube.com/) Certified SCRUMMaster training: I ilked it, and it was an "eye opener" in some of the areas of agile software development... > > I also liked the foods, walking around Helsinki downtown, which is in some places very much alike to St.Petersburg's architecture, clear water and fresh air and a rather comfortavle Radisson SAS Royal Hotel staying: would I have had been more wealthy I would have been going travelling much more often to Finland, and the West Europe (and the States and Canada and Australia... :) (never been in the latter two)) - just to experience the difference of the living environment :) > > It's so easy to get to Finland from here these days provided one have Shengen Visa: by own car, by express bus, train etc. even by taxi - still it's the other world with much more comfortable living envionment and much more user-friendly common atmosphere... (Making very big money one can create such a good living environmnet here also these days but that would be isolated one, and of course no one with even huge money can create such an "user-friendly" atmosphere as in Finland (I'm not afraid on snow and frost you know :)) - creating the latter needs "mind shift" of several generations... > > Based on my new SCRUM experience I'm thinking to propose to develop a sample SCRUM-process driven small (half to one man/month) non-profit/open-source project here, I'm not committing for that activity yet, and I'm not asking volunteers to commit (there will be needed 7+/-2 developers) - I will try to prepare to it, hopefully soon - that project experience and results can be published on AccessD... > > Maybe it's time to start an AccessD-SCRUM discussion list? > > Thank you. > > -- > Shamil > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From cfoust at infostatsystems.com Wed Feb 25 14:55:59 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Wed, 25 Feb 2009 12:55:59 -0800 Subject: [AccessD] Word Not Closing In-Reply-To: <08B25F27CA214F209B19BE90676094EB@HAL9005> References: <08B25F27CA214F209B19BE90676094EB@HAL9005> Message-ID: I'm working off memory, so don't rely on it. Try objWord.Quite. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 11:39 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Word Not Closing Charlotte: objWord.close generates error Object does not support this property or method. Is it because of late binding? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Wednesday, February 25, 2009 11:06 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Word Not Closing You aren't closing the word.application, you're just setting the variable to nothing once you close the document. Isn't there an objWord.Close missing? Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 11:02 AM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Word Not Closing Dear List: I am using the following to get the contents of a word doc. Works all OK except that Word is not closing. Document is closed but not word. What am I doing wrong? ' Get word document Dim objWord As Object Set objWord = CreateObject("Word.Application") objWord.Documents.Open (varFileName) objWord.Visible = False objWord.Selection.Wholestory objWord.Selection.Copy strBody = objWord.Selection objWord.Documents.Close Set objWord = Nothing MTIA, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Wed Feb 25 15:01:18 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 25 Feb 2009 16:01:18 -0500 Subject: [AccessD] Word Not Closing References: <08B25F27CA214F209B19BE90676094EB@HAL9005> Message-ID: objWord.Quit? William -------------------------------------------------- From: "Rocky Smolin at Beach Access Software" Sent: Wednesday, February 25, 2009 2:38 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Word Not Closing > Charlotte: > > objWord.close generates error Object does not support this property or > method. Is it because of late binding? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust > Sent: Wednesday, February 25, 2009 11:06 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Word Not Closing > > You aren't closing the word.application, you're just setting the variable > to > nothing once you close the document. Isn't there an objWord.Close > missing? > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: Wednesday, February 25, 2009 11:02 AM > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Word Not Closing > > Dear List: > > > > I am using the following to get the contents of a word doc. Works all OK > except that Word is not closing. Document is closed but not word. > What am I doing wrong? > > > > ' Get word document > Dim objWord As Object > Set objWord = CreateObject("Word.Application") objWord.Documents.Open > (varFileName) objWord.Visible = False objWord.Selection.Wholestory > objWord.Selection.Copy strBody = objWord.Selection objWord.Documents.Close > Set objWord = Nothing > > > > > MTIA, > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Wed Feb 25 15:14:32 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 16:14:32 -0500 Subject: [AccessD] Class costs & benefits In-Reply-To: <49671BEFC8C4469B82EC7ED1898737BB@HAL9005> References: <49A56813.60403@colbyconsulting.com> <49671BEFC8C4469B82EC7ED1898737BB@HAL9005> Message-ID: <49A5B4B8.6050501@colbyconsulting.com> The simplest illustration is to say that inheritance is the ability to define your own object as starting from something already in existence. Inheritance in the programming world mimics inheritance in the genetic world except that in most languages you are only allowed to inherit properties from a single parent. So. I am my dad. I get everything my dad has, his eyes, his height, his race, his ... I add to what I inherited. I add a bunch of extra pounds. I add the experience of living in Mexico for five years. I add the knowledge of building computers. In programming. I inherit a text control. I add code to check my control source to see what data type it is. I then add new method to make my display format depend on the data type I am bound to. I have all of the normal properties of a text box. I can generate all of the events that the text box generated. But I have additional code to check my data type and format myself differently depending on the data type. And other useful things. That in a nutshell is inheritance. Access does not have inheritance. That doesn't Accesses classes useless however. A class is far more than the ability to inherit another object, even in languages where inheritance is possible. John W. Colby www.ColbyConsulting.com Rocky Smolin at Beach Access Software wrote: > "I will promise to treat every opinion as valid and not go into rant mode. > ;)" Gonna be a pretty dull thread. > > For those of who don't know, can you define inheritance? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 25, 2009 7:48 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Class costs & benefits > > From Rocky's email I thought that perhaps a thread on what the costs and > benefits are for classes. > > Jim made a statement that he felt that "Access has no implementation > inheritance and since inheritance really is the whole point of using > classes, I think they are more or less a waste in Access". > > So what are your feelings and opinions about classes? > > I will promise to treat every opinion as valid and not go into rant mode. > ;) > > In fact I will promise to not respond to any message unless the author > specifically asks me to for some reason. > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From cfoust at infostatsystems.com Wed Feb 25 15:18:32 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Wed, 25 Feb 2009 13:18:32 -0800 Subject: [AccessD] Function vs Sub (was: Classes andEvents - EVENTSNOT REQUIRED) In-Reply-To: <49a5acea.0722300a.65f8.0b0a@mx.google.com> References: <49a59337.07ed300a.4e07.ffffc5b0@mx.google.com> <49a5acea.0722300a.65f8.0b0a@mx.google.com> Message-ID: I wasn't my quote. Gustav said that, not me. Charlotte -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Denis Sherman Sent: Wednesday, February 25, 2009 12:41 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Function vs Sub (was: Classes andEvents - EVENTSNOT REQUIRED) It was your quote...You answer it. Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: 25 February 2009 19:04 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTSNOT REQUIRED) What, precision? I've been studying JC and learning his approach. ;-> Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo Sent: Wednesday, February 25, 2009 10:51 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTSNOT REQUIRED) >> Sorry for not being precise Won't get you far on this List, Charlotte! Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 25 February 2009 16:37 To: accessd at databaseadvisors.com Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTS NOT REQUIRED) Hi Charlotte OK, I see what you mean. I was talking about the value of that property. Sorry for not being precise. /gustav >>> cfoust at infostatsystems.com 25-02-2009 17:08 >>> No it doesn't, it's setting a property of the event. That isn't the same thing as returning a value as does a function. Subs are quite capable of setting values or they wouldn't be as useful as they are. They do NOT return a value directly however. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Tuesday, February 24, 2009 11:56 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Function vs Sub (was: Classes and Events- EVENTSNOTREQUIRED) Hi Charlotte Eh, you can't have forgotten that setting Cancel to True in your code of such a sub will return that value to the form? /gustav >>> cfoust at infostatsystems.com 24-02-2009 22:21 >>> Not sure I follow, Stuart. Subs set values like Cancel or process a keycode. They don't return them per se. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan Sent: Tuesday, February 24, 2009 1:12 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Function vs Sub (was: Classes and Events - EVENTSNOTREQUIRED) Which begs the question, why does VBA use Subs for event procedures which return values such as Cancel or KeyCode? Aren't these Functions? :-) -- Stuart On 24 Feb 2009 at 9:24, Charlotte Foust wrote: > Absolutely when you need multiple return values, but a simple boolean > or single value? > > Charlotte Foust -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 25 15:21:48 2009 From: max.wanadoo at gmail.com (Denis Sherman) Date: Wed, 25 Feb 2009 21:21:48 -0000 Subject: [AccessD] Word Not Closing In-Reply-To: References: <08B25F27CA214F209B19BE90676094EB@HAL9005> Message-ID: <49a5b67f.1ae7300a.558b.fffffdb3@mx.google.com> Quite So! You could also try objword.quit. But do it quietly, ok? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: 25 February 2009 20:56 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Word Not Closing I'm working off memory, so don't rely on it. Try objWord.Quite. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 11:39 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Word Not Closing Charlotte: objWord.close generates error Object does not support this property or method. Is it because of late binding? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Wednesday, February 25, 2009 11:06 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Word Not Closing You aren't closing the word.application, you're just setting the variable to nothing once you close the document. Isn't there an objWord.Close missing? Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 11:02 AM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Word Not Closing Dear List: I am using the following to get the contents of a word doc. Works all OK except that Word is not closing. Document is closed but not word. What am I doing wrong? ' Get word document Dim objWord As Object Set objWord = CreateObject("Word.Application") objWord.Documents.Open (varFileName) objWord.Visible = False objWord.Selection.Wholestory objWord.Selection.Copy strBody = objWord.Selection objWord.Documents.Close Set objWord = Nothing MTIA, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Wed Feb 25 15:24:20 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Wed, 25 Feb 2009 13:24:20 -0800 Subject: [AccessD] Word Not Closing In-Reply-To: <49a5b67f.1ae7300a.558b.fffffdb3@mx.google.com> References: <08B25F27CA214F209B19BE90676094EB@HAL9005> <49a5b67f.1ae7300a.558b.fffffdb3@mx.google.com> Message-ID: LOL Wise Guy!! Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Denis Sherman Sent: Wednesday, February 25, 2009 1:22 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Word Not Closing Quite So! You could also try objword.quit. But do it quietly, ok? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: 25 February 2009 20:56 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Word Not Closing I'm working off memory, so don't rely on it. Try objWord.Quite. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 11:39 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Word Not Closing Charlotte: objWord.close generates error Object does not support this property or method. Is it because of late binding? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Wednesday, February 25, 2009 11:06 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Word Not Closing You aren't closing the word.application, you're just setting the variable to nothing once you close the document. Isn't there an objWord.Close missing? Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 11:02 AM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Word Not Closing Dear List: I am using the following to get the contents of a word doc. Works all OK except that Word is not closing. Document is closed but not word. What am I doing wrong? ' Get word document Dim objWord As Object Set objWord = CreateObject("Word.Application") objWord.Documents.Open (varFileName) objWord.Visible = False objWord.Selection.Wholestory objWord.Selection.Copy strBody = objWord.Selection objWord.Documents.Close Set objWord = Nothing MTIA, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From max.wanadoo at gmail.com Wed Feb 25 15:32:24 2009 From: max.wanadoo at gmail.com (Denis Sherman) Date: Wed, 25 Feb 2009 21:32:24 -0000 Subject: [AccessD] Word Not Closing In-Reply-To: References: <08B25F27CA214F209B19BE90676094EB@HAL9005> <49a5b67f.1ae7300a.558b.fffffdb3@mx.google.com> Message-ID: <49a5b8f6.0702d00a.4950.04b0@mx.google.com> That's what I have been saying.... Max Ps. Lots of wise guys ('n gals) on this site. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: 25 February 2009 21:24 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Word Not Closing LOL Wise Guy!! Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Denis Sherman Sent: Wednesday, February 25, 2009 1:22 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Word Not Closing Quite So! You could also try objword.quit. But do it quietly, ok? Max -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: 25 February 2009 20:56 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Word Not Closing I'm working off memory, so don't rely on it. Try objWord.Quite. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 11:39 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Word Not Closing Charlotte: objWord.close generates error Object does not support this property or method. Is it because of late binding? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Wednesday, February 25, 2009 11:06 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Word Not Closing You aren't closing the word.application, you're just setting the variable to nothing once you close the document. Isn't there an objWord.Close missing? Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 11:02 AM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Word Not Closing Dear List: I am using the following to get the contents of a word doc. Works all OK except that Word is not closing. Document is closed but not word. What am I doing wrong? ' Get word document Dim objWord As Object Set objWord = CreateObject("Word.Application") objWord.Documents.Open (varFileName) objWord.Visible = False objWord.Selection.Wholestory objWord.Selection.Copy strBody = objWord.Selection objWord.Documents.Close Set objWord = Nothing MTIA, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Wed Feb 25 15:49:57 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 16:49:57 -0500 Subject: [AccessD] Classes: organizing your code In-Reply-To: References: Message-ID: <49A5BD05.7020805@colbyconsulting.com> Drew, I just discovered by experimentation that you can reference moduleName.PublicVariable. You can also declare property get/let/set statements and reference the properties. Likewise public functions / subs show up. This makes the module (at least in syntax) somewhat similar to the .Net class where you can use it without instantiation. Of course no sinking events. Kind of cool, though I will have to think carefully about whether I would replace my classes where I only have a single instance of the class - for example my base framework class. One of the thing that I use a LOT in my classes is the initialize and terminate events to automatically set up and cleanup things like collections, child classes and so forth. That capability would not be there using this module reference syntax. BTW, I have taken to doing the following: private OS as OperatingSystem function cOS() as OperatingSystem if OS is nothing then Set OS=New OperatingSystem end if set cOS = OS end function Then my syntax is if cOS.NTBased() then 'Do something end if I started doing that because it allowed me to reinitialize a variable trashed when I STOPPED my code. Just calling cOS automatically reinitializes if OS has been set to nothing. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > Just wanted to post an example of how classes can organize your code. > > Everyone that codes in VB/VBA already uses classes. Forms and Reports > are class modules. When you use a recordset, that's a class. Any > defined object (control, form, recordset, etc.) is a class object. The > ability to create a class object allows a developer to organize their > code in the same way. > > Let's take a recordset object, for example. If the recordset wasn't an > object, but just a vast list of functions/subs that returned values, > imagine how complex your code would be. > > Instead of: > > Dim rs as ADODB.Recordset > Set rs=new ADODB.Recordset > Rs.open > "tblSomeTable",currentproject.connection,adopenkeyset,adlockreadonly,adc > mdtabledirect > If rs.eof=false then rs.movefirst > Do until rs.eof=true > 'do something > Loop > Rs.close > Set rs=nothing > > We'd end up with something like: > > Dim TableArray() > Dim RecordArray() > Dim blRecords as Boolean > Dim intFieldCount as long > Dim intRowCount as long > blRecords=fAreThereRecords("tblSomeTable",1,512,0) > TableArray=fGetRecords("tblSomeTable",1,512,0) > intRowCount=Ubound(TableArray())+1 > for i=0 to intRowCount-1 > RecordArray=fGetRecordFromTable(TableArray(i)) > intFieldCount=Ubound(RecordArray())-1 > > etc. etc. > > We wouldn't have defined data types for the appropriate records, we'd > have to remember function names for all sorts of processes that are > already part of the recordset object. Ugly.... > > So here's an example of custom classes: > http://www.marlow.com/Classes.zip > > That zip contains a database with two class objects, GeneralSystemInfo > and OperatingSystem. > > It has a form that uses both (frmGeneralSystemInfo). > > Instead of having to remember various function names to get certain > pieces of information, I have built these classes to make my coding > simpler. > > For example, let's say I want to know if the system I am dealing with is > an NT based system: > > Dim OS as OperatingSystem > Set OS=New OperatingSystem > If OS.NTBased then > > End if > Set os=nothing > > No need to remember individual function names, all the stuff I typically > want to know or do with the Operating System is in that one class > module. > > Isn't that easier to read and follow? > > Drew > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > > From rockysmolin at bchacc.com Wed Feb 25 16:08:34 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 25 Feb 2009 14:08:34 -0800 Subject: [AccessD] Word Not Closing In-Reply-To: References: <08B25F27CA214F209B19BE90676094EB@HAL9005> Message-ID: Charlotte: That did it!! Although I spelled it Quit. :) However, since I'm copying out all the text of the document, when it closes a message pops up about having copied a bunch of stuff to the clipboard - do I want it keep it there for later use Y/N? Do you know if there's a way to suppress that message on the way out? Is there a property to empty the clipboard? TIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Wednesday, February 25, 2009 12:56 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Word Not Closing I'm working off memory, so don't rely on it. Try objWord.Quite. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 11:39 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Word Not Closing Charlotte: objWord.close generates error Object does not support this property or method. Is it because of late binding? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Wednesday, February 25, 2009 11:06 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Word Not Closing You aren't closing the word.application, you're just setting the variable to nothing once you close the document. Isn't there an objWord.Close missing? Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 11:02 AM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Word Not Closing Dear List: I am using the following to get the contents of a word doc. Works all OK except that Word is not closing. Document is closed but not word. What am I doing wrong? ' Get word document Dim objWord As Object Set objWord = CreateObject("Word.Application") objWord.Documents.Open (varFileName) objWord.Visible = False objWord.Selection.Wholestory objWord.Selection.Copy strBody = objWord.Selection objWord.Documents.Close Set objWord = Nothing MTIA, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Wed Feb 25 16:13:20 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Wed, 25 Feb 2009 14:13:20 -0800 Subject: [AccessD] Word Not Closing In-Reply-To: References: <08B25F27CA214F209B19BE90676094EB@HAL9005> Message-ID: You're really making me reach back! Isn't there an argument for the close command on the document, something like NoSave? Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 2:09 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Word Not Closing Charlotte: That did it!! Although I spelled it Quit. :) However, since I'm copying out all the text of the document, when it closes a message pops up about having copied a bunch of stuff to the clipboard - do I want it keep it there for later use Y/N? Do you know if there's a way to suppress that message on the way out? Is there a property to empty the clipboard? TIA Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Wednesday, February 25, 2009 12:56 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Word Not Closing I'm working off memory, so don't rely on it. Try objWord.Quite. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 11:39 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Word Not Closing Charlotte: objWord.close generates error Object does not support this property or method. Is it because of late binding? Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Wednesday, February 25, 2009 11:06 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Word Not Closing You aren't closing the word.application, you're just setting the variable to nothing once you close the document. Isn't there an objWord.Close missing? Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at Beach Access Software Sent: Wednesday, February 25, 2009 11:02 AM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Word Not Closing Dear List: I am using the following to get the contents of a word doc. Works all OK except that Word is not closing. Document is closed but not word. What am I doing wrong? ' Get word document Dim objWord As Object Set objWord = CreateObject("Word.Application") objWord.Documents.Open (varFileName) objWord.Visible = False objWord.Selection.Wholestory objWord.Selection.Copy strBody = objWord.Selection objWord.Documents.Close Set objWord = Nothing MTIA, Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Wed Feb 25 16:19:33 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 25 Feb 2009 17:19:33 -0500 Subject: [AccessD] Class costs & benefits References: <49A56813.60403@colbyconsulting.com><49671BEFC8C4469B82EC7ED1898737BB@HAL9005> <49A5B4B8.6050501@colbyconsulting.com> Message-ID: <53C43C87364449F5BD45CA647900BC49@jislaptopdev> ...ok ...a basic view ...the real value comes when you can inherit from more than one object and you can pick and choose what you inherit ...within reason, you can build practically anything without having to start from scratch ...VS gives you some basic tools, a grid for instance ...and you can go a long time before it dawns on you that you don't have to accept that basic grid ...you can reach back in the object hierarchy and build a grid that does what YOU need ...a treeview with a grid node for instance ...all without having to lay out bucks for third party tools that only do half of what you wanted. ...to me, that's the real value of working with dot net ...there is sooooo much built in high level stuff that lets you easily build low level custom objects for your apps ...and sooooooo many blogs out there with guys doing highly creative things that its nigh impossible to keep up. William -------------------------------------------------- From: "jwcolby" Sent: Wednesday, February 25, 2009 4:14 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Class costs & benefits > The simplest illustration is to say that inheritance is the ability to > define your own object as > starting from something already in existence. > > Inheritance in the programming world mimics inheritance in the genetic > world except that in most > languages you are only allowed to inherit properties from a single parent. > > So. I am my dad. I get everything my dad has, his eyes, his height, his > race, his ... > > I add to what I inherited. > > I add a bunch of extra pounds. I add the experience of living in Mexico > for five years. I add the > knowledge of building computers. > > In programming. I inherit a text control. I add code to check my control > source to see what data > type it is. I then add new method to make my display format depend on the > data type I am bound to. > > I have all of the normal properties of a text box. I can generate all of > the events that the text > box generated. But I have additional code to check my data type and > format myself differently > depending on the data type. And other useful things. > > That in a nutshell is inheritance. > > Access does not have inheritance. That doesn't Accesses classes useless > however. A class is far > more than the ability to inherit another object, even in languages where > inheritance is possible. > > John W. Colby > www.ColbyConsulting.com > > > Rocky Smolin at Beach Access Software wrote: >> "I will promise to treat every opinion as valid and not go into rant >> mode. >> ;)" Gonna be a pretty dull thread. >> >> For those of who don't know, can you define inheritance? >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Wednesday, February 25, 2009 7:48 AM >> To: Access Developers discussion and problem solving >> Subject: [AccessD] Class costs & benefits >> >> From Rocky's email I thought that perhaps a thread on what the costs and >> benefits are for classes. >> >> Jim made a statement that he felt that "Access has no implementation >> inheritance and since inheritance really is the whole point of using >> classes, I think they are more or less a waste in Access". >> >> So what are your feelings and opinions about classes? >> >> I will promise to treat every opinion as valid and not go into rant mode. >> ;) >> >> In fact I will promise to not respond to any message unless the author >> specifically asks me to for some reason. >> >> -- >> John W. Colby >> www.ColbyConsulting.com >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From DWUTKA at Marlow.com Wed Feb 25 16:21:50 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Wed, 25 Feb 2009 16:21:50 -0600 Subject: [AccessD] Classes: organizing your code In-Reply-To: <49A5BD05.7020805@colbyconsulting.com> References: <49A5BD05.7020805@colbyconsulting.com> Message-ID: Yes, good idea to use a function like that. I must admit, since I rarely create production Access interfaces, I don't bother with that, because that is an Access quirk, you can be running Access (or any office VBA environment) and STOP the running code, but still have the database open. With VB or ASP, that's not the case, stop the code, and the application closes.... Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 3:50 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Classes: organizing your code Drew, I just discovered by experimentation that you can reference moduleName.PublicVariable. You can also declare property get/let/set statements and reference the properties. Likewise public functions / subs show up. This makes the module (at least in syntax) somewhat similar to the .Net class where you can use it without instantiation. Of course no sinking events. Kind of cool, though I will have to think carefully about whether I would replace my classes where I only have a single instance of the class - for example my base framework class. One of the thing that I use a LOT in my classes is the initialize and terminate events to automatically set up and cleanup things like collections, child classes and so forth. That capability would not be there using this module reference syntax. BTW, I have taken to doing the following: private OS as OperatingSystem function cOS() as OperatingSystem if OS is nothing then Set OS=New OperatingSystem end if set cOS = OS end function Then my syntax is if cOS.NTBased() then 'Do something end if I started doing that because it allowed me to reinitialize a variable trashed when I STOPPED my code. Just calling cOS automatically reinitializes if OS has been set to nothing. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > Just wanted to post an example of how classes can organize your code. > > Everyone that codes in VB/VBA already uses classes. Forms and Reports > are class modules. When you use a recordset, that's a class. Any > defined object (control, form, recordset, etc.) is a class object. The > ability to create a class object allows a developer to organize their > code in the same way. > > Let's take a recordset object, for example. If the recordset wasn't an > object, but just a vast list of functions/subs that returned values, > imagine how complex your code would be. > > Instead of: > > Dim rs as ADODB.Recordset > Set rs=new ADODB.Recordset > Rs.open > "tblSomeTable",currentproject.connection,adopenkeyset,adlockreadonly,adc > mdtabledirect > If rs.eof=false then rs.movefirst > Do until rs.eof=true > 'do something > Loop > Rs.close > Set rs=nothing > > We'd end up with something like: > > Dim TableArray() > Dim RecordArray() > Dim blRecords as Boolean > Dim intFieldCount as long > Dim intRowCount as long > blRecords=fAreThereRecords("tblSomeTable",1,512,0) > TableArray=fGetRecords("tblSomeTable",1,512,0) > intRowCount=Ubound(TableArray())+1 > for i=0 to intRowCount-1 > RecordArray=fGetRecordFromTable(TableArray(i)) > intFieldCount=Ubound(RecordArray())-1 > > etc. etc. > > We wouldn't have defined data types for the appropriate records, we'd > have to remember function names for all sorts of processes that are > already part of the recordset object. Ugly.... > > So here's an example of custom classes: > http://www.marlow.com/Classes.zip > > That zip contains a database with two class objects, GeneralSystemInfo > and OperatingSystem. > > It has a form that uses both (frmGeneralSystemInfo). > > Instead of having to remember various function names to get certain > pieces of information, I have built these classes to make my coding > simpler. > > For example, let's say I want to know if the system I am dealing with is > an NT based system: > > Dim OS as OperatingSystem > Set OS=New OperatingSystem > If OS.NTBased then > > End if > Set os=nothing > > No need to remember individual function names, all the stuff I typically > want to know or do with the Operating System is in that one class > module. > > Isn't that easier to read and follow? > > Drew > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From Gustav at cactus.dk Wed Feb 25 16:24:07 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 25 Feb 2009 23:24:07 +0100 Subject: [AccessD] Scrum (was: Find First in an Array? ...) Message-ID: Hi Shamil That could be an interesting exercise - all these tools would be new to me, and converting an Access app to .NET WinForms will probably be a task we all will face sooner or later (William is all about it, so he says). I have only done WinForms from scratch. One discussion will be how to perform data binding. Having used only datatableadapters and datatables, I find all the SqlClient and SqlCommand stuff for totally waste of time while I on the other hand currently is struggling with the ADO.NET Entity Model as it looks promising to me for many purposes. A bit like the tag/class discussion ... which I stayed off as I've never used a Tag for anything. /gustav >>> mcp2004 at mail.ru 25-02-2009 21:31 >>> Hi Gustav, My knowledge of Finnish language is almost at zero level - I used English while in Helsinki, and I have found that most of the people there knows English well enough to understand my English :)... As far as I currently realize SCRUM would be rather useless for "alone-wolf" working mode - SCRUM is to empower teamwork. I'm thinking first of all about simple project as e.g. converting MS Access Northwind to .NET WinForms application - that first simple project would produce useful result as e.g. set rathwer clear figure based on working experience on how much it could take to convert simple MS Access applications to .NET as well as it could help to setup initial simple agile disributed environment. I'd expect there should be quite some more useful practical outputs from this simple project if it would be done SCRUM way as SCRUM results not only in percievable practical outputs but also brings group and personal experiences, which can't be achieved other way (at least I do not know such other ways)... Not "preaching" here for any advanced rocket science software development - just thinking about something like "dumb" manual conversion of MS Access Northwind into .NET WinForms + .NET ReportViewer Northwind desktop sample app but with this conversion done using SCRUM development process applied as much as possible in distributed environmnet starting from scratch and keeping in mind that first of all a result - converted app should be delivered within max one man-month, and if all goes well then even within 1/2 man month with another 1/2 man month or less spent to build needed simple first version of distributed agile development environment. (1/2 - 1 man-month needed for such project is my current evaluation which could be wrong - this should be changed/reevaluated by team in the very beginning - and this evaluation should be a fun of playing SCRUM plannning pocker cards - http://jeffsutherland.com/scrum/2007/10/planning-poker-cards-get-them-here.html - :) Development tools: VS2008, and no third party tools/controls for application development + some open source agile development tools - something like described here maybe: http://blog.benhall.me.uk/2008/08/continuous-integration-builds-for.html No clear idea yet because to make this project a reality there should be at least seven team members who would be interested to commit up to one hour working on this project within working days within one month, and they should have some beginners experience to design .NET WinForms... Anybody? (There could be main seven team members with many their proxies who can commit several hours of working on this project when main team members will be very busy with their everyday duties but if this project will ever get started then there should be equally distributed time spent over project weeks as this would allow to calculate so called team velocity based on rithm - and velocity value is quite important to evaluate how "powerful team is" and how much it would take for this team to make this or that future projects...) The next project could be trying to make similar conversion but using some (nand made) conversion automation tools... The third one could be substituting MS Access backend with MS SQL 2005(?) backend... The forth one could be getting .NET Winform sample app "converted" to ASP.NET... etc. But it doesn't make sense to plan even for the second project now until first one will be done, and if that first one will be done then (according to SCRUM principles and expectations) there will be the other day, with its own needs, and that other day will define what other project is the most useful, practical and applicable to implement for all the interested parties: stakeholders/users, ProductOwner, SCRUMMaster and team members... Thank you. -- Shamil -----Original Message----- From: "Gustav Brock" To: Date: Wed, 25 Feb 2009 17:07:34 +0100 Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > Hi Shamil > > Yes, Finland is a nice place - I think - because last time I visited the country was about 35 years ago! But I still remember how to order two beers in Finnish - which by the way is a language very much different from most Western languages. Just to learn how to count to ten is a challenge. > > I've always had the opinion that things like scrum is a bit overkill when you mostly work on your own projects, but if it can help keeping you organised including keeping track of notes and ideas, this could be the occasion to give it a go. And a "demo" project could be a good method to keep feet on the ground. > > What kind of project do you have in mind? > > For those interested I think Danube may not be the best site to start - here is a place that starts at zero: > > http://www.scrumalliance.org/pages/what_is_scrum > > /gustav > > > >>> mcp2004 at mail.ru 25-02-2009 15:59 >>> > > Hi Max, > > Thank you. > > Sorry for some following off-topic guys. > > I have been Finland for several days, and I have got DANUBE's (http://www.danube.com/) Certified SCRUMMaster training: I ilked it, and it was an "eye opener" in some of the areas of agile software development... > > I also liked the foods, walking around Helsinki downtown, which is in some places very much alike to St.Petersburg's architecture, clear water and fresh air and a rather comfortavle Radisson SAS Royal Hotel staying: would I have had been more wealthy I would have been going travelling much more often to Finland, and the West Europe (and the States and Canada and Australia... :) (never been in the latter two)) - just to experience the difference of the living environment :) > > It's so easy to get to Finland from here these days provided one have Shengen Visa: by own car, by express bus, train etc. even by taxi - still it's the other world with much more comfortable living envionment and much more user-friendly common atmosphere... (Making very big money one can create such a good living environmnet here also these days but that would be isolated one, and of course no one with even huge money can create such an "user-friendly" atmosphere as in Finland (I'm not afraid on snow and frost you know :)) - creating the latter needs "mind shift" of several generations... > > Based on my new SCRUM experience I'm thinking to propose to develop a sample SCRUM-process driven small (half to one man/month) non-profit/open-source project here, I'm not committing for that activity yet, and I'm not asking volunteers to commit (there will be needed 7+/-2 developers) - I will try to prepare to it, hopefully soon - that project experience and results can be published on AccessD... > > Maybe it's time to start an AccessD-SCRUM discussion list? > > Thank you. > > -- > Shamil From cfoust at infostatsystems.com Wed Feb 25 16:37:27 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Wed, 25 Feb 2009 14:37:27 -0800 Subject: [AccessD] Scrum (was: Find First in an Array? ...) In-Reply-To: References: Message-ID: Gustav, You really need to get familiar with strongly typed datasets in .Net. You can build data entity classes that inherit the typed datasets and then program against the data entity instead of directly against tableadapters and datatables. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 25, 2009 2:24 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) Hi Shamil That could be an interesting exercise - all these tools would be new to me, and converting an Access app to .NET WinForms will probably be a task we all will face sooner or later (William is all about it, so he says). I have only done WinForms from scratch. One discussion will be how to perform data binding. Having used only datatableadapters and datatables, I find all the SqlClient and SqlCommand stuff for totally waste of time while I on the other hand currently is struggling with the ADO.NET Entity Model as it looks promising to me for many purposes. A bit like the tag/class discussion ... which I stayed off as I've never used a Tag for anything. /gustav >>> mcp2004 at mail.ru 25-02-2009 21:31 >>> Hi Gustav, My knowledge of Finnish language is almost at zero level - I used English while in Helsinki, and I have found that most of the people there knows English well enough to understand my English :)... As far as I currently realize SCRUM would be rather useless for "alone-wolf" working mode - SCRUM is to empower teamwork. I'm thinking first of all about simple project as e.g. converting MS Access Northwind to .NET WinForms application - that first simple project would produce useful result as e.g. set rathwer clear figure based on working experience on how much it could take to convert simple MS Access applications to .NET as well as it could help to setup initial simple agile disributed environment. I'd expect there should be quite some more useful practical outputs from this simple project if it would be done SCRUM way as SCRUM results not only in percievable practical outputs but also brings group and personal experiences, which can't be achieved other way (at least I do not know such other ways)... Not "preaching" here for any advanced rocket science software development - just thinking about something like "dumb" manual conversion of MS Access Northwind into .NET WinForms + .NET ReportViewer Northwind desktop sample app but with this conversion done using SCRUM development process applied as much as possible in distributed environmnet starting from scratch and keeping in mind that first of all a result - converted app should be delivered within max one man-month, and if all goes well then even within 1/2 man month with another 1/2 man month or less spent to build needed simple first version of distributed agile development environment. (1/2 - 1 man-month needed for such project is my current evaluation which could be wrong - this should be changed/reevaluated by team in the very beginning - and this evaluation should be a fun of playing SCRUM plannning pocker cards - http://jeffsutherland.com/scrum/2007/10/planning-poker-cards-get-them-he re.html - :) Development tools: VS2008, and no third party tools/controls for application development + some open source agile development tools - something like described here maybe: http://blog.benhall.me.uk/2008/08/continuous-integration-builds-for.html No clear idea yet because to make this project a reality there should be at least seven team members who would be interested to commit up to one hour working on this project within working days within one month, and they should have some beginners experience to design .NET WinForms... Anybody? (There could be main seven team members with many their proxies who can commit several hours of working on this project when main team members will be very busy with their everyday duties but if this project will ever get started then there should be equally distributed time spent over project weeks as this would allow to calculate so called team velocity based on rithm - and velocity value is quite important to evaluate how "powerful team is" and how much it would take for this team to make this or that future projects...) The next project could be trying to make similar conversion but using some (nand made) conversion automation tools... The third one could be substituting MS Access backend with MS SQL 2005(?) backend... The forth one could be getting .NET Winform sample app "converted" to ASP.NET... etc. But it doesn't make sense to plan even for the second project now until first one will be done, and if that first one will be done then (according to SCRUM principles and expectations) there will be the other day, with its own needs, and that other day will define what other project is the most useful, practical and applicable to implement for all the interested parties: stakeholders/users, ProductOwner, SCRUMMaster and team members... Thank you. -- Shamil -----Original Message----- From: "Gustav Brock" To: Date: Wed, 25 Feb 2009 17:07:34 +0100 Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > Hi Shamil > > Yes, Finland is a nice place - I think - because last time I visited the country was about 35 years ago! But I still remember how to order two beers in Finnish - which by the way is a language very much different from most Western languages. Just to learn how to count to ten is a challenge. > > I've always had the opinion that things like scrum is a bit overkill when you mostly work on your own projects, but if it can help keeping you organised including keeping track of notes and ideas, this could be the occasion to give it a go. And a "demo" project could be a good method to keep feet on the ground. > > What kind of project do you have in mind? > > For those interested I think Danube may not be the best site to start - here is a place that starts at zero: > > http://www.scrumalliance.org/pages/what_is_scrum > > /gustav > > > >>> mcp2004 at mail.ru 25-02-2009 15:59 >>> > > Hi Max, > > Thank you. > > Sorry for some following off-topic guys. > > I have been Finland for several days, and I have got DANUBE's (http://www.danube.com/) Certified SCRUMMaster training: I ilked it, and it was an "eye opener" in some of the areas of agile software development... > > I also liked the foods, walking around Helsinki downtown, which is in > some places very much alike to St.Petersburg's architecture, clear > water and fresh air and a rather comfortavle Radisson SAS Royal Hotel > staying: would I have had been more wealthy I would have been going > travelling much more often to Finland, and the West Europe (and the > States and Canada and Australia... :) (never been in the latter two)) > - just to experience the difference of the living environment :) > > It's so easy to get to Finland from here these days provided one have Shengen Visa: by own car, by express bus, train etc. even by taxi - still it's the other world with much more comfortable living envionment and much more user-friendly common atmosphere... (Making very big money one can create such a good living environmnet here also these days but that would be isolated one, and of course no one with even huge money can create such an "user-friendly" atmosphere as in Finland (I'm not afraid on snow and frost you know :)) - creating the latter needs "mind shift" of several generations... > > Based on my new SCRUM experience I'm thinking to propose to develop a sample SCRUM-process driven small (half to one man/month) non-profit/open-source project here, I'm not committing for that activity yet, and I'm not asking volunteers to commit (there will be needed 7+/-2 developers) - I will try to prepare to it, hopefully soon - that project experience and results can be published on AccessD... > > Maybe it's time to start an AccessD-SCRUM discussion list? > > Thank you. > > -- > Shamil -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Wed Feb 25 16:42:18 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 25 Feb 2009 17:42:18 -0500 Subject: [AccessD] Word Not Closing References: <08B25F27CA214F209B19BE90676094EB@HAL9005> Message-ID: ...I never found a way within Access vba to address the Windows Clipboard ...but you can avoid the clipboard dialog by setting its contents to "" before you quit word. ...how to do that is up to you ...ain't exactly an easy thing unless someone else has found a switch. ...you can try using: Dim MyData As DataObject Set MyData = New DataObject MyData.SetText "" MyData.PutInClipboard ...that should require setting a ref to the win forms 2 object ...or the Win Scripting Host with vbscript should work as well ...be sweet if you found a better answer William -------------------------------------------------- From: "Rocky Smolin at Beach Access Software" Sent: Wednesday, February 25, 2009 5:08 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Word Not Closing > Charlotte: > > That did it!! Although I spelled it Quit. :) > > However, since I'm copying out all the text of the document, when it > closes > a message pops up about having copied a bunch of stuff to the clipboard - > do > I want it keep it there for later use Y/N? > > Do you know if there's a way to suppress that message on the way out? Is > there a property to empty the clipboard? > > TIA > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust > Sent: Wednesday, February 25, 2009 12:56 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Word Not Closing > > I'm working off memory, so don't rely on it. Try objWord.Quite. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: Wednesday, February 25, 2009 11:39 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Word Not Closing > > Charlotte: > > objWord.close generates error Object does not support this property or > method. Is it because of late binding? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust > Sent: Wednesday, February 25, 2009 11:06 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Word Not Closing > > You aren't closing the word.application, you're just setting the variable > to > nothing once you close the document. Isn't there an objWord.Close > missing? > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at > Beach Access Software > Sent: Wednesday, February 25, 2009 11:02 AM > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Word Not Closing > > Dear List: > > > > I am using the following to get the contents of a word doc. Works all OK > except that Word is not closing. Document is closed but not word. > What am I doing wrong? > > > > ' Get word document > Dim objWord As Object > Set objWord = CreateObject("Word.Application") objWord.Documents.Open > (varFileName) objWord.Visible = False objWord.Selection.Wholestory > objWord.Selection.Copy strBody = objWord.Selection objWord.Documents.Close > Set objWord = Nothing > > > > > MTIA, > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From wdhindman at dejpolsystems.com Wed Feb 25 16:48:14 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 25 Feb 2009 17:48:14 -0500 Subject: [AccessD] Scrum (was: Find First in an Array? ...) References: Message-ID: <42A7B54DE71544CFAC979B7547B9B79A@jislaptopdev> ...William has done it all by my lonely ...wish I had understood anything about inheritance before I leapt into that fire ...and it will all have to be redone when I find the time ...much like my first Access apps :) William -------------------------------------------------- From: "Gustav Brock" Sent: Wednesday, February 25, 2009 5:24 PM To: Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > Hi Shamil > > That could be an interesting exercise - all these tools would be new to > me, and converting an Access app to .NET WinForms will probably be a task > we all will face sooner or later (William is all about it, so he says). I > have only done WinForms from scratch. > > One discussion will be how to perform data binding. Having used only > datatableadapters and datatables, I find all the SqlClient and SqlCommand > stuff for totally waste of time while I on the other hand currently is > struggling with the ADO.NET Entity Model as it looks promising to me for > many purposes. A bit like the tag/class discussion ... which I stayed off > as I've never used a Tag for anything. > > /gustav > >>>> mcp2004 at mail.ru 25-02-2009 21:31 >>> > > Hi Gustav, > > My knowledge of Finnish language is almost at zero level - I used English > while in Helsinki, and I have found that most of the people there knows > English well enough to understand my English :)... > > As far as I currently realize SCRUM would be rather useless for > "alone-wolf" working mode - SCRUM is to empower teamwork. > > I'm thinking first of all about simple project as e.g. converting MS > Access Northwind to .NET WinForms application - that first simple project > would produce useful result as e.g. set rathwer clear figure based on > working experience on how much it could take to convert simple MS Access > applications to .NET as well as it could help to setup initial simple > agile disributed environment. I'd expect there should be quite some more > useful practical outputs from this simple project if it would be done > SCRUM way as SCRUM results not only in percievable practical outputs but > also brings group and personal experiences, which can't be achieved other > way (at least I do not know such other ways)... > > Not "preaching" here for any advanced rocket science software > development - just thinking about something like "dumb" manual conversion > of MS Access Northwind into .NET WinForms + .NET ReportViewer Northwind > desktop sample app but with this conversion done using SCRUM development > process applied as much as possible in distributed environmnet starting > from scratch and keeping in mind that first of all a result - converted > app should be delivered within max one man-month, and if all goes well > then even within 1/2 man month with another 1/2 man month or less spent to > build needed simple first version of distributed agile development > environment. (1/2 - 1 man-month needed for such project is my current > evaluation which could be wrong - this should be changed/reevaluated by > team in the very beginning - and this evaluation should be a fun of > playing SCRUM plannning pocker cards - > http://jeffsutherland.com/scrum/2007/10/planning-poker-cards-get-them-here.html > - :) > > Development tools: VS2008, and no third party tools/controls for > application development + some open source agile development tools - > something like described here maybe: > > http://blog.benhall.me.uk/2008/08/continuous-integration-builds-for.html > > No clear idea yet because to make this project a reality there should be > at least seven team members who would be interested to commit up to one > hour working on this project within working days within one month, and > they should have some beginners experience to design .NET WinForms... > > Anybody? (There could be main seven team members with many their proxies > who can commit several hours of working on this project when main team > members will be very busy with their everyday duties but if this project > will ever get started then there should be equally distributed time spent > over project weeks as this would allow to calculate so called team > velocity based on rithm - and velocity value is quite important to > evaluate how "powerful team is" and how much it would take for this team > to make this or that future projects...) > > The next project could be trying to make similar conversion but using some > (nand made) conversion automation tools... > > The third one could be substituting MS Access backend with MS SQL 2005(?) > backend... > > The forth one could be getting .NET Winform sample app "converted" to > ASP.NET... > etc. > > But it doesn't make sense to plan even for the second project now until > first one will be done, and if that first one will be done then (according > to SCRUM principles and expectations) there will be the other day, with > its own needs, and that other day will define what other project is the > most useful, practical and applicable to implement for all the interested > parties: stakeholders/users, ProductOwner, SCRUMMaster and team members... > > Thank you. > > -- > Shamil > > -----Original Message----- > From: "Gustav Brock" > To: > Date: Wed, 25 Feb 2009 17:07:34 +0100 > Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > >> Hi Shamil >> >> Yes, Finland is a nice place - I think - because last time I visited the >> country was about 35 years ago! But I still remember how to order two >> beers in Finnish - which by the way is a language very much different >> from most Western languages. Just to learn how to count to ten is a >> challenge. >> >> I've always had the opinion that things like scrum is a bit overkill when >> you mostly work on your own projects, but if it can help keeping you >> organised including keeping track of notes and ideas, this could be the >> occasion to give it a go. And a "demo" project could be a good method to >> keep feet on the ground. >> >> What kind of project do you have in mind? >> >> For those interested I think Danube may not be the best site to start - >> here is a place that starts at zero: >> >> http://www.scrumalliance.org/pages/what_is_scrum >> >> /gustav >> >> >> >>> mcp2004 at mail.ru 25-02-2009 15:59 >>> >> >> Hi Max, >> >> Thank you. >> >> Sorry for some following off-topic guys. >> >> I have been Finland for several days, and I have got DANUBE's >> (http://www.danube.com/) Certified SCRUMMaster training: I ilked it, and >> it was an "eye opener" in some of the areas of agile software >> development... >> >> I also liked the foods, walking around Helsinki downtown, which is in >> some places very much alike to St.Petersburg's architecture, clear water >> and fresh air and a rather comfortavle Radisson SAS Royal Hotel staying: >> would I have had been more wealthy I would have been going travelling >> much more often to Finland, and the West Europe (and the States and >> Canada and Australia... :) (never been in the latter two)) - just to >> experience the difference of the living environment :) >> >> It's so easy to get to Finland from here these days provided one have >> Shengen Visa: by own car, by express bus, train etc. even by taxi - still >> it's the other world with much more comfortable living envionment and >> much more user-friendly common atmosphere... (Making very big money one >> can create such a good living environmnet here also these days but that >> would be isolated one, and of course no one with even huge money can >> create such an "user-friendly" atmosphere as in Finland (I'm not afraid >> on snow and frost you know :)) - creating the latter needs "mind shift" >> of several generations... >> >> Based on my new SCRUM experience I'm thinking to propose to develop a >> sample SCRUM-process driven small (half to one man/month) >> non-profit/open-source project here, I'm not committing for that activity >> yet, and I'm not asking volunteers to commit (there will be needed 7+/-2 >> developers) - I will try to prepare to it, hopefully soon - that project >> experience and results can be published on AccessD... >> >> Maybe it's time to start an AccessD-SCRUM discussion list? >> >> Thank you. >> >> -- >> Shamil > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From DWUTKA at Marlow.com Wed Feb 25 16:56:42 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Wed, 25 Feb 2009 16:56:42 -0600 Subject: [AccessD] Word Not Closing In-Reply-To: References: <08B25F27CA214F209B19BE90676094EB@HAL9005> Message-ID: http://www.la-solutions.co.uk/content/MVBA/MVBA-Clipboard.htm A clipboard solution for VBA. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Wednesday, February 25, 2009 4:42 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Word Not Closing ...I never found a way within Access vba to address the Windows Clipboard ...but you can avoid the clipboard dialog by setting its contents to "" before you quit word. ...how to do that is up to you ...ain't exactly an easy thing unless someone else has found a switch. ...you can try using: Dim MyData As DataObject Set MyData = New DataObject MyData.SetText "" MyData.PutInClipboard ...that should require setting a ref to the win forms 2 object ...or the Win Scripting Host with vbscript should work as well ...be sweet if you found a better answer William The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwcolby at colbyconsulting.com Wed Feb 25 16:57:29 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 25 Feb 2009 17:57:29 -0500 Subject: [AccessD] Class costs & benefits In-Reply-To: <53C43C87364449F5BD45CA647900BC49@jislaptopdev> References: <49A56813.60403@colbyconsulting.com><49671BEFC8C4469B82EC7ED1898737BB@HAL9005> <49A5B4B8.6050501@colbyconsulting.com> <53C43C87364449F5BD45CA647900BC49@jislaptopdev> Message-ID: <49A5CCD9.3080205@colbyconsulting.com> William, AFAIK multiple inheritance is not possible in .Net either right? So yes, inheritance is a really cool feature, and it does not exist in Access. OTOH, even in .Net there are things that you want to program that don't inherit from anything. Business class objects come to mind. I'll tell you a little story. When I was in Mexico I was worked on a vending machine project, broken into three parts. There was a database in a handheld computer, written in Foxpro for DOS (no inheritance). There was a database on the desktop written in FoxPro for Windows which had inheritance, and there was the vending machine itself (my part) written in C running on a ZWorld z80 based uC. The HH code was written and debugged. The vending machine code was written and debugged. The desktop db was hopelessly bogged down in discussions on what should be inheriting what base stuff, what should be inheriting from the stuff that they managed to write etc. It was fascinating to sit at the edges of and watch. Now... this was mid 90s and I guess that the inheritance thing was new to these guys but the point remains that inheritance is a double edged sword. Once you understand and can correctly and quickly make such choices, it can be very powerful. Until that point you can flounder around a lot... I do agree that the .Net framework is one of the most powerful frameworks I have ever seen. Nothing short of awesome IMHO. John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...ok ...a basic view ...the real value comes when you can inherit from more > than one object and you can pick and choose what you inherit ...within > reason, you can build practically anything without having to start from > scratch ...VS gives you some basic tools, a grid for instance ...and you can > go a long time before it dawns on you that you don't have to accept that > basic grid ...you can reach back in the object hierarchy and build a grid > that does what YOU need ...a treeview with a grid node for instance ...all > without having to lay out bucks for third party tools that only do half of > what you wanted. > > ...to me, that's the real value of working with dot net ...there is sooooo > much built in high level stuff that lets you easily build low level custom > objects for your apps ...and sooooooo many blogs out there with guys doing > highly creative things that its nigh impossible to keep up. > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Wednesday, February 25, 2009 4:14 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] Class costs & benefits > >> The simplest illustration is to say that inheritance is the ability to >> define your own object as >> starting from something already in existence. >> >> Inheritance in the programming world mimics inheritance in the genetic >> world except that in most >> languages you are only allowed to inherit properties from a single parent. >> >> So. I am my dad. I get everything my dad has, his eyes, his height, his >> race, his ... >> >> I add to what I inherited. >> >> I add a bunch of extra pounds. I add the experience of living in Mexico >> for five years. I add the >> knowledge of building computers. >> >> In programming. I inherit a text control. I add code to check my control >> source to see what data >> type it is. I then add new method to make my display format depend on the >> data type I am bound to. >> >> I have all of the normal properties of a text box. I can generate all of >> the events that the text >> box generated. But I have additional code to check my data type and >> format myself differently >> depending on the data type. And other useful things. >> >> That in a nutshell is inheritance. >> >> Access does not have inheritance. That doesn't Accesses classes useless >> however. A class is far >> more than the ability to inherit another object, even in languages where >> inheritance is possible. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Rocky Smolin at Beach Access Software wrote: >>> "I will promise to treat every opinion as valid and not go into rant >>> mode. >>> ;)" Gonna be a pretty dull thread. >>> >>> For those of who don't know, can you define inheritance? >>> >>> >>> Rocky Smolin >>> Beach Access Software >>> 858-259-4334 >>> www.e-z-mrp.com >>> www.bchacc.com >>> >>> >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>> Sent: Wednesday, February 25, 2009 7:48 AM >>> To: Access Developers discussion and problem solving >>> Subject: [AccessD] Class costs & benefits >>> >>> From Rocky's email I thought that perhaps a thread on what the costs and >>> benefits are for classes. >>> >>> Jim made a statement that he felt that "Access has no implementation >>> inheritance and since inheritance really is the whole point of using >>> classes, I think they are more or less a waste in Access". >>> >>> So what are your feelings and opinions about classes? >>> >>> I will promise to treat every opinion as valid and not go into rant mode. >>> ;) >>> >>> In fact I will promise to not respond to any message unless the author >>> specifically asks me to for some reason. >>> >>> -- >>> John W. Colby >>> www.ColbyConsulting.com >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From wdhindman at dejpolsystems.com Wed Feb 25 17:07:22 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 25 Feb 2009 18:07:22 -0500 Subject: [AccessD] Word Not Closing References: <08B25F27CA214F209B19BE90676094EB@HAL9005> Message-ID: ...and a "class" solution at that :) William -------------------------------------------------- From: "Drew Wutka" Sent: Wednesday, February 25, 2009 5:56 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Word Not Closing > http://www.la-solutions.co.uk/content/MVBA/MVBA-Clipboard.htm > > A clipboard solution for VBA. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William > Hindman > Sent: Wednesday, February 25, 2009 4:42 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Word Not Closing > > ...I never found a way within Access vba to address the Windows > Clipboard > > ...but you can avoid the clipboard dialog by setting its contents to "" > before you quit word. > ...how to do that is up to you ...ain't exactly an easy thing unless > someone > else has found a switch. > ...you can try using: > > Dim MyData As DataObject > Set MyData = New DataObject > MyData.SetText "" > MyData.PutInClipboard > > ...that should require setting a ref to the win forms 2 object > ...or the Win Scripting Host with vbscript should work as well > > ...be sweet if you found a better answer > > > William > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy the > material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended recipient > is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From rockysmolin at bchacc.com Wed Feb 25 17:11:28 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 25 Feb 2009 15:11:28 -0800 Subject: [AccessD] Word Not Closing In-Reply-To: References: <08B25F27CA214F209B19BE90676094EB@HAL9005> Message-ID: <8018E474D0B04B49A730EDBFDF70AEFC@HAL9005> Well, here's something I found on the web that seems to work: Private Declare Function OpenClipboard Lib "user32" (ByVal hWnd As Long) As Long Private Declare Function CloseClipboard Lib "user32" () As Long Private Declare Function EmptyClipboard Lib "user32" () As Long Then where you want to empty the clipboard: Call OpenClipboard(0&) EmptyClipboard CloseClipboard Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Wednesday, February 25, 2009 2:42 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Word Not Closing ...I never found a way within Access vba to address the Windows Clipboard ...but you can avoid the clipboard dialog by setting its contents to "" before you quit word. ...how to do that is up to you ...ain't exactly an easy thing unless someone else has found a switch. ...you can try using: Dim MyData As DataObject Set MyData = New DataObject MyData.SetText "" MyData.PutInClipboard ...that should require setting a ref to the win forms 2 object ...or the Win Scripting Host with vbscript should work as well ...be sweet if you found a better answer William -------------------------------------------------- From: "Rocky Smolin at Beach Access Software" Sent: Wednesday, February 25, 2009 5:08 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Word Not Closing > Charlotte: > > That did it!! Although I spelled it Quit. :) > > However, since I'm copying out all the text of the document, when it > closes a message pops up about having copied a bunch of stuff to the > clipboard - do I want it keep it there for later use Y/N? > > Do you know if there's a way to suppress that message on the way out? > Is there a property to empty the clipboard? > > TIA > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte > Foust > Sent: Wednesday, February 25, 2009 12:56 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Word Not Closing > > I'm working off memory, so don't rely on it. Try objWord.Quite. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: Wednesday, February 25, 2009 11:39 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Word Not Closing > > Charlotte: > > objWord.close generates error Object does not support this property or > method. Is it because of late binding? > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte > Foust > Sent: Wednesday, February 25, 2009 11:06 AM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Word Not Closing > > You aren't closing the word.application, you're just setting the > variable to nothing once you close the document. Isn't there an > objWord.Close missing? > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky > Smolin at Beach Access Software > Sent: Wednesday, February 25, 2009 11:02 AM > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Word Not Closing > > Dear List: > > > > I am using the following to get the contents of a word doc. Works all > OK except that Word is not closing. Document is closed but not word. > What am I doing wrong? > > > > ' Get word document > Dim objWord As Object > Set objWord = CreateObject("Word.Application") objWord.Documents.Open > (varFileName) objWord.Visible = False objWord.Selection.Wholestory > objWord.Selection.Copy strBody = objWord.Selection > objWord.Documents.Close Set objWord = Nothing > > > > > MTIA, > > > > Rocky Smolin > > Beach Access Software > > 858-259-4334 > > www.e-z-mrp.com > > www.bchacc.com > > > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From rockysmolin at bchacc.com Wed Feb 25 17:12:09 2009 From: rockysmolin at bchacc.com (Rocky Smolin at Beach Access Software) Date: Wed, 25 Feb 2009 15:12:09 -0800 Subject: [AccessD] Word Not Closing In-Reply-To: References: <08B25F27CA214F209B19BE90676094EB@HAL9005> Message-ID: <60131C40AB1E47AAAB6A4D2A9884E2A7@HAL9005> Pretty much what I found except I only took out the 6 lines that I needed. Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com www.bchacc.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Drew Wutka Sent: Wednesday, February 25, 2009 2:57 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Word Not Closing http://www.la-solutions.co.uk/content/MVBA/MVBA-Clipboard.htm A clipboard solution for VBA. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Wednesday, February 25, 2009 4:42 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Word Not Closing ...I never found a way within Access vba to address the Windows Clipboard ...but you can avoid the clipboard dialog by setting its contents to "" before you quit word. ...how to do that is up to you ...ain't exactly an easy thing unless someone else has found a switch. ...you can try using: Dim MyData As DataObject Set MyData = New DataObject MyData.SetText "" MyData.PutInClipboard ...that should require setting a ref to the win forms 2 object ...or the Win Scripting Host with vbscript should work as well ...be sweet if you found a better answer William The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Wed Feb 25 17:17:21 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 25 Feb 2009 18:17:21 -0500 Subject: [AccessD] Class costs & benefits References: <49A56813.60403@colbyconsulting.com><49671BEFC8C4469B82EC7ED1898737BB@HAL9005> <49A5B4B8.6050501@colbyconsulting.com><53C43C87364449F5BD45CA647900BC49@jislaptopdev> <49A5CCD9.3080205@colbyconsulting.com> Message-ID: ...yes and no ...multiple inheritance ala c++ is not possible but dotnet does support multiple interface inheritance which gets you a good long way down the road :) ...btw, I'm a flounderer and quite accepting of it ...I just keep on keeping on :) William -------------------------------------------------- From: "jwcolby" Sent: Wednesday, February 25, 2009 5:57 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Class costs & benefits > William, > > AFAIK multiple inheritance is not possible in .Net either right? > > So yes, inheritance is a really cool feature, and it does not exist in > Access. > > OTOH, even in .Net there are things that you want to program that don't > inherit from anything. > Business class objects come to mind. > > I'll tell you a little story. > > When I was in Mexico I was worked on a vending machine project, broken > into three parts. There was > a database in a handheld computer, written in Foxpro for DOS (no > inheritance). There was a database > on the desktop written in FoxPro for Windows which had inheritance, and > there was the vending > machine itself (my part) written in C running on a ZWorld z80 based uC. > The HH code was written and > debugged. The vending machine code was written and debugged. The desktop > db was hopelessly bogged > down in discussions on what should be inheriting what base stuff, what > should be inheriting from the > stuff that they managed to write etc. It was fascinating to sit at the > edges of and watch. > > Now... this was mid 90s and I guess that the inheritance thing was new to > these guys but the point > remains that inheritance is a double edged sword. Once you understand and > can correctly and quickly > make such choices, it can be very powerful. Until that point you can > flounder around a lot... > > I do agree that the .Net framework is one of the most powerful frameworks > I have ever seen. Nothing > short of awesome IMHO. > > John W. Colby > www.ColbyConsulting.com > > > William Hindman wrote: >> ...ok ...a basic view ...the real value comes when you can inherit from >> more >> than one object and you can pick and choose what you inherit ...within >> reason, you can build practically anything without having to start from >> scratch ...VS gives you some basic tools, a grid for instance ...and you >> can >> go a long time before it dawns on you that you don't have to accept that >> basic grid ...you can reach back in the object hierarchy and build a grid >> that does what YOU need ...a treeview with a grid node for instance >> ...all >> without having to lay out bucks for third party tools that only do half >> of >> what you wanted. >> >> ...to me, that's the real value of working with dot net ...there is >> sooooo >> much built in high level stuff that lets you easily build low level >> custom >> objects for your apps ...and sooooooo many blogs out there with guys >> doing >> highly creative things that its nigh impossible to keep up. >> >> William >> >> -------------------------------------------------- >> From: "jwcolby" >> Sent: Wednesday, February 25, 2009 4:14 PM >> To: "Access Developers discussion and problem solving" >> >> Subject: Re: [AccessD] Class costs & benefits >> >>> The simplest illustration is to say that inheritance is the ability to >>> define your own object as >>> starting from something already in existence. >>> >>> Inheritance in the programming world mimics inheritance in the genetic >>> world except that in most >>> languages you are only allowed to inherit properties from a single >>> parent. >>> >>> So. I am my dad. I get everything my dad has, his eyes, his height, >>> his >>> race, his ... >>> >>> I add to what I inherited. >>> >>> I add a bunch of extra pounds. I add the experience of living in Mexico >>> for five years. I add the >>> knowledge of building computers. >>> >>> In programming. I inherit a text control. I add code to check my >>> control >>> source to see what data >>> type it is. I then add new method to make my display format depend on >>> the >>> data type I am bound to. >>> >>> I have all of the normal properties of a text box. I can generate all >>> of >>> the events that the text >>> box generated. But I have additional code to check my data type and >>> format myself differently >>> depending on the data type. And other useful things. >>> >>> That in a nutshell is inheritance. >>> >>> Access does not have inheritance. That doesn't Accesses classes useless >>> however. A class is far >>> more than the ability to inherit another object, even in languages where >>> inheritance is possible. >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Rocky Smolin at Beach Access Software wrote: >>>> "I will promise to treat every opinion as valid and not go into rant >>>> mode. >>>> ;)" Gonna be a pretty dull thread. >>>> >>>> For those of who don't know, can you define inheritance? >>>> >>>> >>>> Rocky Smolin >>>> Beach Access Software >>>> 858-259-4334 >>>> www.e-z-mrp.com >>>> www.bchacc.com >>>> >>>> >>>> >>>> -----Original Message----- >>>> From: accessd-bounces at databaseadvisors.com >>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>>> Sent: Wednesday, February 25, 2009 7:48 AM >>>> To: Access Developers discussion and problem solving >>>> Subject: [AccessD] Class costs & benefits >>>> >>>> From Rocky's email I thought that perhaps a thread on what the costs >>>> and >>>> benefits are for classes. >>>> >>>> Jim made a statement that he felt that "Access has no implementation >>>> inheritance and since inheritance really is the whole point of using >>>> classes, I think they are more or less a waste in Access". >>>> >>>> So what are your feelings and opinions about classes? >>>> >>>> I will promise to treat every opinion as valid and not go into rant >>>> mode. >>>> ;) >>>> >>>> In fact I will promise to not respond to any message unless the author >>>> specifically asks me to for some reason. >>>> >>>> -- >>>> John W. Colby >>>> www.ColbyConsulting.com >>>> -- >>>> AccessD mailing list >>>> AccessD at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>> Website: http://www.databaseadvisors.com >>>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From wdhindman at dejpolsystems.com Wed Feb 25 17:26:37 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Wed, 25 Feb 2009 18:26:37 -0500 Subject: [AccessD] Word Not Closing References: <08B25F27CA214F209B19BE90676094EB@HAL9005> <8018E474D0B04B49A730EDBFDF70AEFC@HAL9005> Message-ID: <7F4FC79D5AE94B099924A8AD67F244AE@jislaptopdev> ...sweet it is! ...this has been one heck of a week on AccessD for my code library :) William -------------------------------------------------- From: "Rocky Smolin at Beach Access Software" Sent: Wednesday, February 25, 2009 6:11 PM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Word Not Closing > Well, here's something I found on the web that seems to work: > > Private Declare Function OpenClipboard Lib "user32" (ByVal hWnd As Long) > As > Long > Private Declare Function CloseClipboard Lib "user32" () As Long > Private Declare Function EmptyClipboard Lib "user32" () As Long > > Then where you want to empty the clipboard: > > Call OpenClipboard(0&) > EmptyClipboard > CloseClipboard > > > Rocky Smolin > Beach Access Software > 858-259-4334 > www.e-z-mrp.com > www.bchacc.com > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman > Sent: Wednesday, February 25, 2009 2:42 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Word Not Closing > > ...I never found a way within Access vba to address the Windows Clipboard > > ...but you can avoid the clipboard dialog by setting its contents to "" > before you quit word. > ...how to do that is up to you ...ain't exactly an easy thing unless > someone > else has found a switch. > ...you can try using: > > Dim MyData As DataObject > Set MyData = New DataObject > MyData.SetText "" > MyData.PutInClipboard > > ...that should require setting a ref to the win forms 2 object ...or the > Win > Scripting Host with vbscript should work as well > > ...be sweet if you found a better answer > > > William > > -------------------------------------------------- > From: "Rocky Smolin at Beach Access Software" > Sent: Wednesday, February 25, 2009 5:08 PM > To: "'Access Developers discussion and problem solving'" > > Subject: Re: [AccessD] Word Not Closing > >> Charlotte: >> >> That did it!! Although I spelled it Quit. :) >> >> However, since I'm copying out all the text of the document, when it >> closes a message pops up about having copied a bunch of stuff to the >> clipboard - do I want it keep it there for later use Y/N? >> >> Do you know if there's a way to suppress that message on the way out? >> Is there a property to empty the clipboard? >> >> TIA >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte >> Foust >> Sent: Wednesday, February 25, 2009 12:56 PM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Word Not Closing >> >> I'm working off memory, so don't rely on it. Try objWord.Quite. >> >> Charlotte Foust >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >> Smolin at Beach Access Software >> Sent: Wednesday, February 25, 2009 11:39 AM >> To: 'Access Developers discussion and problem solving' >> Subject: Re: [AccessD] Word Not Closing >> >> Charlotte: >> >> objWord.close generates error Object does not support this property or >> method. Is it because of late binding? >> >> >> Rocky Smolin >> Beach Access Software >> 858-259-4334 >> www.e-z-mrp.com >> www.bchacc.com >> >> >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte >> Foust >> Sent: Wednesday, February 25, 2009 11:06 AM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Word Not Closing >> >> You aren't closing the word.application, you're just setting the >> variable to nothing once you close the document. Isn't there an >> objWord.Close missing? >> >> Charlotte Foust >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky >> Smolin at Beach Access Software >> Sent: Wednesday, February 25, 2009 11:02 AM >> To: 'Access Developers discussion and problem solving' >> Subject: [AccessD] Word Not Closing >> >> Dear List: >> >> >> >> I am using the following to get the contents of a word doc. Works all >> OK except that Word is not closing. Document is closed but not word. >> What am I doing wrong? >> >> >> >> ' Get word document >> Dim objWord As Object >> Set objWord = CreateObject("Word.Application") objWord.Documents.Open >> (varFileName) objWord.Visible = False objWord.Selection.Wholestory >> objWord.Selection.Copy strBody = objWord.Selection >> objWord.Documents.Close Set objWord = Nothing >> >> >> >> >> MTIA, >> >> >> >> Rocky Smolin >> >> Beach Access Software >> >> 858-259-4334 >> >> www.e-z-mrp.com >> >> www.bchacc.com >> >> >> >> >> >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Thu Feb 26 00:13:21 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 26 Feb 2009 01:13:21 -0500 Subject: [AccessD] Using Lateral Thinking To solve problems - This time it is Form Properties In-Reply-To: <49a56ec7.0422300a.4a43.0e8c@mx.google.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49a4f6f2.0a04d00a.18b9.ffff9ebf@mx.google.com> <49A54454.3070409@colbyconsulting.com> <49a56ec7.0422300a.4a43.0e8c@mx.google.com> Message-ID: <49A63301.5050003@colbyconsulting.com> Max, >Couldn't find any way to manipulate custom properties in Forms. Do you know a way? Don't say I never did nothing for ya. Happy lateral thinking. There is this thing in Access called the "documents" collection. Documents are something that the average joe knows nothing about and so are "well hidden" as I mentioned in my previous email. I mean they are right there, anyone can find them, anyone can iterate the documents collections, the properties of a document etc but you have to dig down to that level to actually see what is in the properties collection. currentdb.Containers(strContainer).Documents(strDocName) AFAICT .Containers represents the tabs in an A2003 database. strContainer will be the name of some tab - Forms, Reports, Queries, Tables, etc. .Documents() contains all of the forms, reports etc. strDocName would be the name of a specific form, query etc. AFAICT documents are probably the textual representation of an object, IE what you would get if you exported the object to a text file. As such it doesn't have to be "opened" in design view to manipulate, nor "Saved" afterwards. I haven't done extensive testing to see how many properties you can create. I suspect a BUNCH however, since these are collections like any other. To manipulate it: '--------------------------------------------------------------------------------------- ' Procedure : PropertyAdd ' Author : jwcolby ' Date : 2/26/2009 ' Purpose : ' 'String container can be "Forms", "Reports" etc 'strDocName can be the name of any "document" in that container. ' '--------------------------------------------------------------------------------------- ' Function PropertyAdd(strContainer As String, strDocName As String, _ strPrpName As String, PrpType As DataTypeEnum, varVal As Variant) Dim db As DAO.Database Dim prpNew As Property Dim doc As Document On Error GoTo Err_PropertyAdd Set db = CurrentDb Set doc = db.Containers(strContainer).Documents(strDocName) With doc Set prpNew = .CreateProperty(strPrpName, PrpType, varVal) .Properties.Append prpNew .Properties.Refresh End With Debug.Print db.Containers(strContainer).Documents(strDocName).Properties(strPrpName) Exit_PropertyAdd: On Error Resume Next Exit Function Err_PropertyAdd: Select Case Err Case 0 '.insert Errors you wish to ignore here Resume Next Case Else '.All other errors will trap Beep MsgBox Err.Description Resume Exit_PropertyAdd End Select Resume 0 '.FOR TROUBLESHOOTING End Function '--------------------------------------------------------------------------------------- ' Procedure : PrpGet ' Author : jwcolby ' Date : 2/26/2009 ' Purpose : '--------------------------------------------------------------------------------------- ' Function PrpGet(strContainer As String, strDocName As String, strPrpName As String) As Variant On Error GoTo Err_PrpGet PrpGet = CurrentDb.Containers(strContainer).Documents(strDocName).Properties(strPrpName) Exit_PrpGet: On Error Resume Next Exit Function Err_PrpGet: Select Case Err Case 0 '.insert Errors you wish to ignore here Resume Next Case Else '.All other errors will trap Beep MsgBox Err.Description Resume Exit_PrpGet End Select Resume 0 '.FOR TROUBLESHOOTING End Function In the debug window: AddProperty "forms","frmDemoCtls","JWCs test property",dbText,"jwc" ?PrpGet("forms","frmDemoCtls","jwcs test property") jwc Enjoy! John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Ha! John, Been there. Looked at them yesterday - but I love the fact that > you are now also thinking Laterally! > > Couldn't find any way to manipulate custom properties in Forms. Do you know > a way? > > I could only find custom properties on DB, Tables, Indexes, etc but not > forms. > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! From wdhindman at dejpolsystems.com Thu Feb 26 00:48:13 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Thu, 26 Feb 2009 01:48:13 -0500 Subject: [AccessD] Using Lateral Thinking To solve problems - This time it is Form Properties References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49a4f6f2.0a04d00a.18b9.ffff9ebf@mx.google.com> <49A54454.3070409@colbyconsulting.com><49a56ec7.0422300a.4a43.0e8c@mx.google.com> <49A63301.5050003@colbyconsulting.com> Message-ID: ...we need to get you in RANT mode a lot MORE often ...when you're through ranting, you make amends with gems like this :) William -------------------------------------------------- From: "jwcolby" Sent: Thursday, February 26, 2009 1:13 AM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This time it is Form Properties > Max, > > >Couldn't find any way to manipulate custom properties in Forms. Do you > >know a way? > > Don't say I never did nothing for ya. Happy lateral thinking. > > There is this thing in Access called the "documents" collection. > Documents are something that the > average joe knows nothing about and so are "well hidden" as I mentioned in > my previous email. I > mean they are right there, anyone can find them, anyone can iterate the > documents collections, the > properties of a document etc but you have to dig down to that level to > actually see what is in the > properties collection. > > currentdb.Containers(strContainer).Documents(strDocName) > > AFAICT .Containers represents the tabs in an A2003 database. strContainer > will be the name of some > tab - Forms, Reports, Queries, Tables, etc. .Documents() contains all of > the forms, reports etc. > strDocName would be the name of a specific form, query etc. > > AFAICT documents are probably the textual representation of an object, IE > what you would get if you > exported the object to a text file. As such it doesn't have to be > "opened" in design view to > manipulate, nor "Saved" afterwards. > > I haven't done extensive testing to see how many properties you can > create. I suspect a BUNCH > however, since these are collections like any other. > > To manipulate it: > > '--------------------------------------------------------------------------------------- > ' Procedure : PropertyAdd > ' Author : jwcolby > ' Date : 2/26/2009 > ' Purpose : > ' > 'String container can be "Forms", "Reports" etc > 'strDocName can be the name of any "document" in that container. > ' > '--------------------------------------------------------------------------------------- > ' > Function PropertyAdd(strContainer As String, strDocName As String, _ > strPrpName As String, PrpType As DataTypeEnum, varVal > As Variant) > Dim db As DAO.Database > Dim prpNew As Property > Dim doc As Document > On Error GoTo Err_PropertyAdd > > Set db = CurrentDb > Set doc = db.Containers(strContainer).Documents(strDocName) > With doc > Set prpNew = .CreateProperty(strPrpName, PrpType, varVal) > .Properties.Append prpNew > .Properties.Refresh > End With > Debug.Print > db.Containers(strContainer).Documents(strDocName).Properties(strPrpName) > > Exit_PropertyAdd: > On Error Resume Next > Exit Function > Err_PropertyAdd: > Select Case Err > Case 0 '.insert Errors you wish to ignore here > Resume Next > Case Else '.All other errors will trap > Beep > MsgBox Err.Description > Resume Exit_PropertyAdd > End Select > Resume 0 '.FOR TROUBLESHOOTING > End Function > > '--------------------------------------------------------------------------------------- > ' Procedure : PrpGet > ' Author : jwcolby > ' Date : 2/26/2009 > ' Purpose : > '--------------------------------------------------------------------------------------- > ' > Function PrpGet(strContainer As String, strDocName As String, strPrpName > As String) As Variant > On Error GoTo Err_PrpGet > > PrpGet = > CurrentDb.Containers(strContainer).Documents(strDocName).Properties(strPrpName) > > Exit_PrpGet: > On Error Resume Next > Exit Function > Err_PrpGet: > Select Case Err > Case 0 '.insert Errors you wish to ignore here > Resume Next > Case Else '.All other errors will trap > Beep > MsgBox Err.Description > Resume Exit_PrpGet > End Select > Resume 0 '.FOR TROUBLESHOOTING > End Function > > In the debug window: > > > AddProperty "forms","frmDemoCtls","JWCs test property",dbText,"jwc" > > ?PrpGet("forms","frmDemoCtls","jwcs test property") > jwc > > > Enjoy! > > John W. Colby > www.ColbyConsulting.com > > > Max Wanadoo wrote: >> Ha! John, Been there. Looked at them yesterday - but I love the fact >> that >> you are now also thinking Laterally! >> >> Couldn't find any way to manipulate custom properties in Forms. Do you >> know >> a way? >> >> I could only find custom properties on DB, Tables, Indexes, etc but not >> forms. >> >> Max >> Laugh more than cry. Smile more than frown. Be generous in spirit. >> And >> always stand your round in the pub! > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From DWUTKA at Marlow.com Thu Feb 26 00:57:51 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Thu, 26 Feb 2009 00:57:51 -0600 Subject: [AccessD] Word Not Closing In-Reply-To: Message-ID: True, imagine that! ;) Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: Wednesday, February 25, 2009 5:07 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Word Not Closing ...and a "class" solution at that :) William -------------------------------------------------- From: "Drew Wutka" Sent: Wednesday, February 25, 2009 5:56 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Word Not Closing > http://www.la-solutions.co.uk/content/MVBA/MVBA-Clipboard.htm > > A clipboard solution for VBA. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William > Hindman > Sent: Wednesday, February 25, 2009 4:42 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Word Not Closing > > ...I never found a way within Access vba to address the Windows > Clipboard > > ...but you can avoid the clipboard dialog by setting its contents to "" > before you quit word. > ...how to do that is up to you ...ain't exactly an easy thing unless > someone > else has found a switch. > ...you can try using: > > Dim MyData As DataObject > Set MyData = New DataObject > MyData.SetText "" > MyData.PutInClipboard > > ...that should require setting a ref to the win forms 2 object > ...or the Win Scripting Host with vbscript should work as well > > ...be sweet if you found a better answer > > > William > The information contained in this transmission is intended only for the > person or entity to which it is addressed and may contain II-VI > Proprietary and/or II-VI Business Sensitive material. If you are not the > intended recipient, please contact the sender immediately and destroy the > material in its entirety, whether electronic or hard copy. You are > notified that any review, retransmission, copying, disclosure, > dissemination, or other use of, or taking of any action in reliance upon > this information by persons or entities other than the intended recipient > is prohibited. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From Gustav at cactus.dk Thu Feb 26 02:08:35 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Thu, 26 Feb 2009 09:08:35 +0100 Subject: [AccessD] Scrum (was: Find First in an Array? ...) Message-ID: Hi Charlotte Yes, even though datatables are strongly typed, I would like to move further and the ADO.NET Entity Model offers that. However, wether this represents _the_ solution or if one should go with "my own" datasets or something else, there are many opinions about. So to find out, I'm working on a small project now where I use the ADO.NET Entity Model. Do you - or anyone else here - have experience with this? /gustav >>> cfoust at infostatsystems.com 25-02-2009 23:37 >>> Gustav, You really need to get familiar with strongly typed datasets in .Net. You can build data entity classes that inherit the typed datasets and then program against the data entity instead of directly against tableadapters and datatables. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Wednesday, February 25, 2009 2:24 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) Hi Shamil That could be an interesting exercise - all these tools would be new to me, and converting an Access app to .NET WinForms will probably be a task we all will face sooner or later (William is all about it, so he says). I have only done WinForms from scratch. One discussion will be how to perform data binding. Having used only datatableadapters and datatables, I find all the SqlClient and SqlCommand stuff for totally waste of time while I on the other hand currently is struggling with the ADO.NET Entity Model as it looks promising to me for many purposes. A bit like the tag/class discussion ... which I stayed off as I've never used a Tag for anything. /gustav From mcp2004 at mail.ru Thu Feb 26 03:30:06 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Thu, 26 Feb 2009 12:30:06 +0300 Subject: [AccessD] =?koi8-r?b?U2NydW0gKHdhczogRmluZCBGaXJzdCBpbiBhbiBBcnJh?= =?koi8-r?b?eT8gLi4uKQ==?= In-Reply-To: References: Message-ID: Hi Gustav, Answering your question first: I do not have experience working with ADO.NET Entity Model. But I do have development/deployment experience of making large ASP.NET and .NET applications with thoruzands of C# classes etc.etc. Those applications do use my own light ORM (BLL <-> DAL) framework etc.etc. I have plans (if time/resources allow) to substitute this my custom ORM framework's BLL <-> DAL layer with ADO.NET Entity Model. IOW I'm quite interested to get working experience with ADO.NET Entity Framework... Proposal: get a SCRUM team of seven people to first make as simple as possible MS Access Northwind -> .NET WinForms Northwind with MS SQL 2005 backend conversion. As the second SCRUM project introduce ADO.NET Entity model in converted NorthWind .NET WinForms application. As you have seen in my previous message I first wanted to make MS Access Northwind to .NET WinForms with MS Access backend conversion, then make double/switchable MS Access/MS SQL ORM layer and only then probably make switchable triple backend solution with MS Access/simple custom MS SQL ORM mapper/ADO.NET ORM mapper layer but it looks like this idea doesn't enroll any volunteers to make such SCRUM projects together and to get them pablished on AccessD... Let's try to make transition/conversion of MS Access Northwind to .NET WinForms Northwind with MS SQL 2005 backebd and ADO.NET Entiry Model ORM mapping in two distributed SCRUM projects? I mean doing all that investigation/self-education work alone is rather boring, and time consuming - I'd expect if we try to make it SCRUM-way that would be some fun, and when we get in flow mode that would go much faster than one can imagine fighting with all that new technologies alone... But it's important to note that every SCRUM team member should make a commitment to invest up to five hours within working week into this "joint investigation public project" otherwise it will not work... Anybody to join? Or at least to start talking here about other options to make such a SCRUM project reality? Are five hours investment looking too much? Is SCRUM looking something like is not needed at all in such a context? All and every comments are very welcome... Thank you. -- Shamil P.S. I do think that with nowadays mainstream trend of computing power getting moved into "skies" ("clouds" :) ) and boradband wireless Internet connections getting routine infrastructure everywhere in this World, it would soon become an affrodable for every even small, even one man software development shop to promptly unite with other shops when needed into "virtual" teams to develop an urgent to be released project using agile and SCRUM distributed way - small non-profit/investigation projects could be done that way right now - doing them that way would be much more effective than just discussing the ways and posting short samples how this or that feature/technology coudl be used in real life projects... You can call me a naive deamer... Please remeber I started to promote DEEP-object concept/WithEvents in 1998: http://smsconsulting.spb.ru/shamil_s/articles/deep4sa.htm http://www.4tops.com/ms_access_tips/secwtrk.htm That were rather naive tries as far as I see them now but anyway one article was promptly published in Smart Access: http://smsconsulting.spb.ru/shamil_s/articles/deepcnpt.htm Another was prepared to publication but didn't get published because of my being inexperienced with publishing editors: http://smsconsulting.spb.ru/shamil_s/articles/wew.htm As you can see from what happens here in Access-D nowadays my naive tries were made in proper direction, maybe too early for mainstream VB/VBA development... I call them naive tries because that were a kind of sub-case of Observer/MVC Object Pattern (http://en.wikipedia.org/wiki/Design_pattern_(computer_science)) which was already known that times but which I was unware about (BTW nowadays well-known implementations of Observer/MVC object pattern are ASP.NET MVC (http://www.asp.net/mvc/) and partially, I believe/guess, but I do not know for sure - Ruby on Rails (http://rubyonrails.org/)... I think that one of nowadays's trends is distributed agile/SCRUM projects development - I'm not the only one who thinks so (google it!), and this trend will soon become one of mainstream development practices with the developers being experienced/skilled to work this way getting more competetive than the others... I still can be wrong, I do not pretend on overgeneralizations - please tell me if my current tries to make a trial investigation SCRUM team enrolling AccessD members into it look naive and too ambitious... You're all busy developers I know, I also am... :) Thank you. -----Original Message----- From: "Gustav Brock" To: Date: Thu, 26 Feb 2009 09:08:35 +0100 Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > Hi Charlotte > > Yes, even though datatables are strongly typed, I would like to move further and the ADO.NET Entity Model offers that. However, wether this represents _the_ solution or if one should go with "my own" datasets or something else, there are many opinions about. > > So to find out, I'm working on a small project now where I use the ADO.NET Entity Model. > Do you - or anyone else here - have experience with this? > > /gustav > > > >>> cfoust at infostatsystems.com 25-02-2009 23:37 >>> > Gustav, > > You really need to get familiar with strongly typed datasets in .Net. > You can build data entity classes that inherit the typed datasets and > then program against the data entity instead of directly against > tableadapters and datatables. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Wednesday, February 25, 2009 2:24 PM > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > > Hi Shamil > > That could be an interesting exercise - all these tools would be new to > me, and converting an Access app to .NET WinForms will probably be a > task we all will face sooner or later (William is all about it, so he > says). I have only done WinForms from scratch. > > One discussion will be how to perform data binding. Having used only > datatableadapters and datatables, I find all the SqlClient and > SqlCommand stuff for totally waste of time while I on the other hand > currently is struggling with the ADO.NET Entity Model as it looks > promising to me for many purposes. A bit like the tag/class discussion > ... which I stayed off as I've never used a Tag for anything. > > /gustav > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From mcp2004 at mail.ru Thu Feb 26 04:39:06 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Thu, 26 Feb 2009 13:39:06 +0300 Subject: [AccessD] =?koi8-r?b?Q2xhc3MgY29zdHMgJiBiZW5lZml0cw==?= In-Reply-To: <49A5CCD9.3080205@colbyconsulting.com> References: <49A5CCD9.3080205@colbyconsulting.com> Message-ID: Hi John, <<< inheritance is a double edged sword. >>> Currently I'd suppose that custom classes without inheritance is a double edged samurai's sword and a Tantō blade for final seppuku (harachiri)... I'd also find sometimes good use of multiple inheritance even in business applications. I suppose that C#/VB.NET (.NET CLR) not having multiple inheritance is because of some technical limitations MS weren't able to overcome by this time. I'd guess they may introduce multiple inheritance in C#/VB.NET in the future as C#/VB.NET getting new and new language features with every new .NET Framework version release. MS not giving us VB6/VBA developers custom classes inheritance and some other advanced OOP features were I suppose because of technical limitations, which are still existing in VBA. Here is one example on how complicated VBA code with custom classes could become because of absence of inheritance: http://smsconsulting.spb.ru/patterns/labs/ObserverPatternLab.htm I'm grateful to MS and MS Access because they allowed me to get a lot of business application experience and business contacts and this great AccessD community during the last 15 years, but I sometimes "hate" MS and MS Access VBA because they forced me (yes, stupid me, of course) to spend too much time as I see now trying to use VB6/VBA for what they were not designed for: I mean building advanced custom classes/object models/hierarchies/gropings/aggregates... I see you're aware of that VBA limitations - I'd just add byside note to your lectures for other developers who are only starting with custom classes for those developers to not try to "go over the edges" using VBA (as in referred above Observer Pattern sample) - they better switch to VB.NET/C# - the latter would be less time consuming investment as my and others experience shows, and almost no pain switch and no reason to use seppuku beaten by VBA limitations and getting failed projects and lost profits and customers.... Sorry, if I'm missing the point that awareness of VBA limitations' "blues" is implied in your lecture notes, and everybody but me accepting your lectures in this context... I'd also note that my experience by just using rather simple VBA custom classes but many (hundreds custom classes modules) in one project (with library projects) and with intensive use of interface inheritance (Implements) always sooner or later resulted with my work getting stuck in GPFs both in MS Access VBA and MS Excel VBA - that were Access/Excel 2003 when I switched to mainly .NET development (when I tested hundreds of custom classes with (set of related) VBA project(s) without Implements that worked OK (I remember I tested Access 97 with FE with 40+ library projects - that worked OK but there was no Implements there yet)). Finally: I'm in agreement that custom classes in VBA are more of good than evil but do not force beginners to get trapped by them in this limited VBA programming world - advise and let them go to the open (air) world of VB.NET/C# programming as soon as they get comfortable with faily simple programming with custom classes in VBA... Thank you. -- Shamil -----Original Message----- From: jwcolby To: Access Developers discussion and problem solving Date: Wed, 25 Feb 2009 17:57:29 -0500 Subject: Re: [AccessD] Class costs & benefits > William, > > AFAIK multiple inheritance is not possible in .Net either right? > > So yes, inheritance is a really cool feature, and it does not exist in Access. > > OTOH, even in .Net there are things that you want to program that don't inherit from anything. > Business class objects come to mind. > > I'll tell you a little story. > > When I was in Mexico I was worked on a vending machine project, broken into three parts. There was > a database in a handheld computer, written in Foxpro for DOS (no inheritance). There was a database > on the desktop written in FoxPro for Windows which had inheritance, and there was the vending > machine itself (my part) written in C running on a ZWorld z80 based uC. The HH code was written and > debugged. The vending machine code was written and debugged. The desktop db was hopelessly bogged > down in discussions on what should be inheriting what base stuff, what should be inheriting from the > stuff that they managed to write etc. It was fascinating to sit at the edges of and watch. > > Now... this was mid 90s and I guess that the inheritance thing was new to these guys but the point > remains that inheritance is a double edged sword. Once you understand and can correctly and quickly > make such choices, it can be very powerful. Until that point you can flounder around a lot... > > I do agree that the .Net framework is one of the most powerful frameworks I have ever seen. Nothing > short of awesome IMHO. > > John W. Colby > www.ColbyConsulting.com > > > William Hindman wrote: > > ...ok ...a basic view ...the real value comes when you can inherit from more > > than one object and you can pick and choose what you inherit ...within > > reason, you can build practically anything without having to start from > > scratch ...VS gives you some basic tools, a grid for instance ...and you can > > go a long time before it dawns on you that you don't have to accept that > > basic grid ...you can reach back in the object hierarchy and build a grid > > that does what YOU need ...a treeview with a grid node for instance ...all > > without having to lay out bucks for third party tools that only do half of > > what you wanted. > > > > ...to me, that's the real value of working with dot net ...there is sooooo > > much built in high level stuff that lets you easily build low level custom > > objects for your apps ...and sooooooo many blogs out there with guys doing > > highly creative things that its nigh impossible to keep up. > > > > William > > > > -------------------------------------------------- > > From: "jwcolby" > > Sent: Wednesday, February 25, 2009 4:14 PM > > To: "Access Developers discussion and problem solving" > > > > Subject: Re: [AccessD] Class costs & benefits > > > >> The simplest illustration is to say that inheritance is the ability to > >> define your own object as > >> starting from something already in existence. > >> > >> Inheritance in the programming world mimics inheritance in the genetic > >> world except that in most > >> languages you are only allowed to inherit properties from a single parent. > >> > >> So. I am my dad. I get everything my dad has, his eyes, his height, his > >> race, his ... > >> > >> I add to what I inherited. > >> > >> I add a bunch of extra pounds. I add the experience of living in Mexico > >> for five years. I add the > >> knowledge of building computers. > >> > >> In programming. I inherit a text control. I add code to check my control > >> source to see what data > >> type it is. I then add new method to make my display format depend on the > >> data type I am bound to. > >> > >> I have all of the normal properties of a text box. I can generate all of > >> the events that the text > >> box generated. But I have additional code to check my data type and > >> format myself differently > >> depending on the data type. And other useful things. > >> > >> That in a nutshell is inheritance. > >> > >> Access does not have inheritance. That doesn't Accesses classes useless > >> however. A class is far > >> more than the ability to inherit another object, even in languages where > >> inheritance is possible. > >> > >> John W. Colby > >> www.ColbyConsulting.com > >> > >> > >> Rocky Smolin at Beach Access Software wrote: > >>> "I will promise to treat every opinion as valid and not go into rant > >>> mode. > >>> ;)" Gonna be a pretty dull thread. > >>> > >>> For those of who don't know, can you define inheritance? > >>> > >>> > >>> Rocky Smolin > >>> Beach Access Software > >>> 858-259-4334 > >>> www.e-z-mrp.com > >>> www.bchacc.com > >>> > >>> > >>> > >>> -----Original Message----- > >>> From: accessd-bounces at databaseadvisors.com > >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > >>> Sent: Wednesday, February 25, 2009 7:48 AM > >>> To: Access Developers discussion and problem solving > >>> Subject: [AccessD] Class costs & benefits > >>> > >>> From Rocky's email I thought that perhaps a thread on what the costs and > >>> benefits are for classes. > >>> > >>> Jim made a statement that he felt that "Access has no implementation > >>> inheritance and since inheritance really is the whole point of using > >>> classes, I think they are more or less a waste in Access". > >>> > >>> So what are your feelings and opinions about classes? > >>> > >>> I will promise to treat every opinion as valid and not go into rant mode. > >>> ;) > >>> > >>> In fact I will promise to not respond to any message unless the author > >>> specifically asks me to for some reason. > >>> > >>> -- > >>> John W. Colby > >>> www.ColbyConsulting.com > >>> -- > >>> AccessD mailing list > >>> AccessD at databaseadvisors.com > >>> http://databaseadvisors.com/mailman/listinfo/accessd > >>> Website: http://www.databaseadvisors.com > >>> > >> -- > >> AccessD mailing list > >> AccessD at databaseadvisors.com > >> http://databaseadvisors.com/mailman/listinfo/accessd > >> Website: http://www.databaseadvisors.com > >> > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From mcp2004 at mail.ru Thu Feb 26 04:44:28 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Thu, 26 Feb 2009 13:44:28 +0300 Subject: [AccessD] =?koi8-r?b?Q2xhc3MgY29zdHMgJiBiZW5lZml0cw==?= In-Reply-To: <49A5CCD9.3080205@colbyconsulting.com> References: <49A5CCD9.3080205@colbyconsulting.com> Message-ID: Hi John, <<< inheritance is a double edged sword. >>> Currently I'd suppose that custom classes *without* inheritance is a double edged samurai's sword and a Tantō blade for final seppuku (harakiri)... I'd also find sometimes good use of multiple inheritance even in business applications. I suppose that C#/VB.NET (.NET CLR) not having multiple inheritance is because of some technical limitations MS weren't able to overcome by this time. I'd guess they may introduce multiple inheritance in C#/VB.NET in the future as C#/VB.NET getting new and new language features with every new .NET Framework version release. MS not giving us VB6/VBA developers custom classes inheritance and some other advanced OOP features were I suppose because of technical limitations, which are still existing in VBA. Here is one example on how complicated VBA code with custom classes could become because of absence of inheritance: http://smsconsulting.spb.ru/patterns/labs/ObserverPatternLab.htm I'm grateful to MS and MS Access because they allowed me to get a lot of business application experience and business contacts and this great AccessD community during the last 15 years, but I sometimes "hate" MS and MS Access VBA because they forced me (yes, stupid me, of course) to spend too much time as I see now trying to use VB6/VBA for what they were not designed for: I mean building advanced custom classes/object models/hierarchies/gropings/aggregates... I see you're aware of that VBA limitations - I'd just add byside note to your lectures for other developers who are only starting with custom classes for those developers to not try to "go over the edges" using VBA (as in referred above Observer Pattern sample) - they better switch to VB.NET/C# - the latter would be less time consuming investment as my and others experience shows, and almost no pain switch and no reason to use seppuku beaten by VBA limitations and getting failed projects and lost profits and customers.... Sorry, if I'm missing the point that awareness of VBA limitations' "blues" is implied in your lecture notes, and everybody but me accepting your lectures in this context... I'd also note that my experience by just using rather simple VBA custom classes but many (hundreds custom classes modules) in one project (with library projects) and with intensive use of interface inheritance (Implements) always sooner or later resulted with my work getting stuck in GPFs both in MS Access VBA and MS Excel VBA - that were Access/Excel 2003 when I switched to mainly .NET development (when I tested hundreds of custom classes with (set of related) VBA project(s) without Implements that worked OK (I remember I tested Access 97 with FE with 40+ library projects - that worked OK but there was no Implements there yet)). Finally: I'm in agreement that custom classes in VBA are more of good than evil but do not force beginners to get trapped by them in this limited VBA programming world - advise and let them go to the open (air) world of VB.NET/C# programming as soon as they get comfortable with faily simple programming with custom classes in VBA... Thank you. -- Shamil -----Original Message----- From: jwcolby To: Access Developers discussion and problem solving Date: Wed, 25 Feb 2009 17:57:29 -0500 Subject: Re: [AccessD] Class costs & benefits > William, > > AFAIK multiple inheritance is not possible in .Net either right? > > So yes, inheritance is a really cool feature, and it does not exist in Access. > > OTOH, even in .Net there are things that you want to program that don't inherit from anything. > Business class objects come to mind. > > I'll tell you a little story. > > When I was in Mexico I was worked on a vending machine project, broken into three parts. There was > a database in a handheld computer, written in Foxpro for DOS (no inheritance). There was a database > on the desktop written in FoxPro for Windows which had inheritance, and there was the vending > machine itself (my part) written in C running on a ZWorld z80 based uC. The HH code was written and > debugged. The vending machine code was written and debugged. The desktop db was hopelessly bogged > down in discussions on what should be inheriting what base stuff, what should be inheriting from the > stuff that they managed to write etc. It was fascinating to sit at the edges of and watch. > > Now... this was mid 90s and I guess that the inheritance thing was new to these guys but the point > remains that inheritance is a double edged sword. Once you understand and can correctly and quickly > make such choices, it can be very powerful. Until that point you can flounder around a lot... > > I do agree that the .Net framework is one of the most powerful frameworks I have ever seen. Nothing > short of awesome IMHO. > > John W. Colby > www.ColbyConsulting.com > > <<< tail trimmed >>> From mcp2004 at mail.ru Thu Feb 26 04:48:25 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Thu, 26 Feb 2009 13:48:25 +0300 Subject: [AccessD] =?koi8-r?b?Q2xhc3MgY29zdHMgJiBiZW5lZml0cw==?= In-Reply-To: References: Message-ID: Sorry, posted the same message twice - it was Internet connection issue here and I thought the first one didn't go posted... Thank you. -- Shamil -----Original Message----- From: Salakhetdinov Shamil To: Access Developers discussion and problem solving Date: Thu, 26 Feb 2009 13:39:06 +0300 Subject: Re: [AccessD] Class costs & benefits <<< tail trimmed >>> From jwcolby at colbyconsulting.com Thu Feb 26 06:43:12 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 26 Feb 2009 07:43:12 -0500 Subject: [AccessD] Class costs & benefits In-Reply-To: References: <49A5CCD9.3080205@colbyconsulting.com> Message-ID: <49A68E60.3070902@colbyconsulting.com> Shamil, I would never discourage any developer from moving on to .Net when they were ready. .Net is several orders of magnitude more powerful than VBA. OTOH this is AccessD, not the VB forum and so the assumption is that developers are here because they are actively using / maintaining / developing in Access. As such it is entirely appropriate to discuss the tools that are available to Access developers. Collections / Classes / Events taken together represent a quantum leap in understanding and capabilities for VBA developers who do not yet use them. Notice that I never mentioned Inheritance precisely because it does not exist in VBA, and trying to understand the concept when you can't even use it is pointless and muddies the water. I absolutely encourage you or any other .Net developer to persuade access developers to learn .net. John W. Colby www.ColbyConsulting.com Salakhetdinov Shamil wrote: > Hi John, > > <<< > inheritance is a double edged sword. > Currently I'd suppose that custom classes without inheritance is a double edged samurai's sword and a Tantō blade for final seppuku (harachiri)... > > I'd also find sometimes good use of multiple inheritance even in business applications. > > I suppose that C#/VB.NET (.NET CLR) not having multiple inheritance is because of some technical limitations MS weren't able to overcome by this time. I'd guess they may introduce multiple inheritance in C#/VB.NET in the future as C#/VB.NET getting new and new language features with every new .NET Framework version release. > > MS not giving us VB6/VBA developers custom classes inheritance and some other advanced OOP features were I suppose because of technical limitations, which are still existing in VBA. Here is one example on how complicated VBA code with custom classes could become because of absence of inheritance: > > http://smsconsulting.spb.ru/patterns/labs/ObserverPatternLab.htm > > I'm grateful to MS and MS Access because they allowed me to get a lot of business application experience and business contacts and this great AccessD community during the last 15 years, but I sometimes "hate" MS and MS Access VBA because they forced me (yes, stupid me, of course) to spend too much time as I see now trying to use VB6/VBA for what they were not designed for: I mean building advanced custom classes/object models/hierarchies/gropings/aggregates... > > I see you're aware of that VBA limitations - I'd just add byside note to your lectures for other developers who are only starting with custom classes for those developers to not try to "go over the edges" using VBA (as in referred above Observer Pattern sample) - they better switch to VB.NET/C# - the latter would be less time consuming investment as my and others experience shows, and almost no pain switch and no reason to use seppuku beaten by VBA limitations and getting failed projects and lost profits and customers.... > > Sorry, if I'm missing the point that awareness of VBA limitations' "blues" is implied in your lecture notes, and everybody but me accepting your lectures in this context... > > I'd also note that my experience by just using rather simple VBA custom classes but many (hundreds custom classes modules) in one project (with library projects) and with intensive use of interface inheritance (Implements) always sooner or later resulted with my work getting stuck in GPFs both in MS Access VBA and MS Excel VBA - that were Access/Excel 2003 when I switched to mainly .NET development (when I tested hundreds of custom classes with (set of related) VBA project(s) without Implements that worked OK (I remember I tested Access 97 with FE with 40+ library projects - that worked OK but there was no Implements there yet)). > > Finally: I'm in agreement that custom classes in VBA are more of good than evil but do not force beginners to get trapped by them in this limited VBA programming world - advise and let them go to the open (air) world of VB.NET/C# programming as soon as they get comfortable with faily simple programming with custom classes in VBA... > > Thank you. > > -- > Shamil > > -----Original Message----- > From: jwcolby > To: Access Developers discussion and problem solving > Date: Wed, 25 Feb 2009 17:57:29 -0500 > Subject: Re: [AccessD] Class costs & benefits > >> William, >> >> AFAIK multiple inheritance is not possible in .Net either right? >> >> So yes, inheritance is a really cool feature, and it does not exist in Access. >> >> OTOH, even in .Net there are things that you want to program that don't inherit from anything. >> Business class objects come to mind. >> >> I'll tell you a little story. >> >> When I was in Mexico I was worked on a vending machine project, broken into three parts. There was >> a database in a handheld computer, written in Foxpro for DOS (no inheritance). There was a database >> on the desktop written in FoxPro for Windows which had inheritance, and there was the vending >> machine itself (my part) written in C running on a ZWorld z80 based uC. The HH code was written and >> debugged. The vending machine code was written and debugged. The desktop db was hopelessly bogged >> down in discussions on what should be inheriting what base stuff, what should be inheriting from the >> stuff that they managed to write etc. It was fascinating to sit at the edges of and watch. >> >> Now... this was mid 90s and I guess that the inheritance thing was new to these guys but the point >> remains that inheritance is a double edged sword. Once you understand and can correctly and quickly >> make such choices, it can be very powerful. Until that point you can flounder around a lot... >> >> I do agree that the .Net framework is one of the most powerful frameworks I have ever seen. Nothing >> short of awesome IMHO. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> William Hindman wrote: >>> ...ok ...a basic view ...the real value comes when you can inherit from more >>> than one object and you can pick and choose what you inherit ...within >>> reason, you can build practically anything without having to start from >>> scratch ...VS gives you some basic tools, a grid for instance ...and you can >>> go a long time before it dawns on you that you don't have to accept that >>> basic grid ...you can reach back in the object hierarchy and build a grid >>> that does what YOU need ...a treeview with a grid node for instance ...all >>> without having to lay out bucks for third party tools that only do half of >>> what you wanted. >>> >>> ...to me, that's the real value of working with dot net ...there is sooooo >>> much built in high level stuff that lets you easily build low level custom >>> objects for your apps ...and sooooooo many blogs out there with guys doing >>> highly creative things that its nigh impossible to keep up. >>> >>> William >>> >>> -------------------------------------------------- >>> From: "jwcolby" >>> Sent: Wednesday, February 25, 2009 4:14 PM >>> To: "Access Developers discussion and problem solving" >>> >>> Subject: Re: [AccessD] Class costs & benefits >>> >>>> The simplest illustration is to say that inheritance is the ability to >>>> define your own object as >>>> starting from something already in existence. >>>> >>>> Inheritance in the programming world mimics inheritance in the genetic >>>> world except that in most >>>> languages you are only allowed to inherit properties from a single parent. >>>> >>>> So. I am my dad. I get everything my dad has, his eyes, his height, his >>>> race, his ... >>>> >>>> I add to what I inherited. >>>> >>>> I add a bunch of extra pounds. I add the experience of living in Mexico >>>> for five years. I add the >>>> knowledge of building computers. >>>> >>>> In programming. I inherit a text control. I add code to check my control >>>> source to see what data >>>> type it is. I then add new method to make my display format depend on the >>>> data type I am bound to. >>>> >>>> I have all of the normal properties of a text box. I can generate all of >>>> the events that the text >>>> box generated. But I have additional code to check my data type and >>>> format myself differently >>>> depending on the data type. And other useful things. >>>> >>>> That in a nutshell is inheritance. >>>> >>>> Access does not have inheritance. That doesn't Accesses classes useless >>>> however. A class is far >>>> more than the ability to inherit another object, even in languages where >>>> inheritance is possible. >>>> >>>> John W. Colby >>>> www.ColbyConsulting.com >>>> >>>> >>>> Rocky Smolin at Beach Access Software wrote: >>>>> "I will promise to treat every opinion as valid and not go into rant >>>>> mode. >>>>> ;)" Gonna be a pretty dull thread. >>>>> >>>>> For those of who don't know, can you define inheritance? >>>>> >>>>> >>>>> Rocky Smolin >>>>> Beach Access Software >>>>> 858-259-4334 >>>>> www.e-z-mrp.com >>>>> www.bchacc.com >>>>> >>>>> >>>>> >>>>> -----Original Message----- >>>>> From: accessd-bounces at databaseadvisors.com >>>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>>>> Sent: Wednesday, February 25, 2009 7:48 AM >>>>> To: Access Developers discussion and problem solving >>>>> Subject: [AccessD] Class costs & benefits >>>>> >>>>> From Rocky's email I thought that perhaps a thread on what the costs and >>>>> benefits are for classes. >>>>> >>>>> Jim made a statement that he felt that "Access has no implementation >>>>> inheritance and since inheritance really is the whole point of using >>>>> classes, I think they are more or less a waste in Access". >>>>> >>>>> So what are your feelings and opinions about classes? >>>>> >>>>> I will promise to treat every opinion as valid and not go into rant mode. >>>>> ;) >>>>> >>>>> In fact I will promise to not respond to any message unless the author >>>>> specifically asks me to for some reason. >>>>> >>>>> -- >>>>> John W. Colby >>>>> www.ColbyConsulting.com >>>>> -- >>>>> AccessD mailing list >>>>> AccessD at databaseadvisors.com >>>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>>> Website: http://www.databaseadvisors.com >>>>> >>>> -- >>>> AccessD mailing list >>>> AccessD at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>> Website: http://www.databaseadvisors.com >>>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From jwcolby at colbyconsulting.com Thu Feb 26 06:56:30 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 26 Feb 2009 07:56:30 -0500 Subject: [AccessD] Using Lateral Thinking To solve problems - This time it is Form Properties In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49a4f6f2.0a04d00a.18b9.ffff9ebf@mx.google.com> <49A54454.3070409@colbyconsulting.com><49a56ec7.0422300a.4a43.0e8c@mx.google.com> <49A63301.5050003@colbyconsulting.com> Message-ID: <49A6917E.9010801@colbyconsulting.com> All you have to do is ask. BTW, I discovered that getting a pointer to currentdb is expensive. If you are going to do a lot of dao manipulation of the dao.database object you should get a single pointer and then use that pointer: function dbDao() as dao.database static db as dao.database if db is nothing then set db = currentdb endif set dbdao - db end function The difference when repeatedly calling a function that needs the currentdb pointer can be quite dramatic. John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...we need to get you in RANT mode a lot MORE often ...when you're through > ranting, you make amends with gems like this :) > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Thursday, February 26, 2009 1:13 AM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This time > it is Form Properties > >> Max, >> >>> Couldn't find any way to manipulate custom properties in Forms. Do you >>> know a way? >> Don't say I never did nothing for ya. Happy lateral thinking. >> >> There is this thing in Access called the "documents" collection. >> Documents are something that the >> average joe knows nothing about and so are "well hidden" as I mentioned in >> my previous email. I >> mean they are right there, anyone can find them, anyone can iterate the >> documents collections, the >> properties of a document etc but you have to dig down to that level to >> actually see what is in the >> properties collection. >> >> currentdb.Containers(strContainer).Documents(strDocName) >> >> AFAICT .Containers represents the tabs in an A2003 database. strContainer >> will be the name of some >> tab - Forms, Reports, Queries, Tables, etc. .Documents() contains all of >> the forms, reports etc. >> strDocName would be the name of a specific form, query etc. >> >> AFAICT documents are probably the textual representation of an object, IE >> what you would get if you >> exported the object to a text file. As such it doesn't have to be >> "opened" in design view to >> manipulate, nor "Saved" afterwards. >> >> I haven't done extensive testing to see how many properties you can >> create. I suspect a BUNCH >> however, since these are collections like any other. >> >> To manipulate it: >> >> '--------------------------------------------------------------------------------------- >> ' Procedure : PropertyAdd >> ' Author : jwcolby >> ' Date : 2/26/2009 >> ' Purpose : >> ' >> 'String container can be "Forms", "Reports" etc >> 'strDocName can be the name of any "document" in that container. >> ' >> '--------------------------------------------------------------------------------------- >> ' >> Function PropertyAdd(strContainer As String, strDocName As String, _ >> strPrpName As String, PrpType As DataTypeEnum, varVal >> As Variant) >> Dim db As DAO.Database >> Dim prpNew As Property >> Dim doc As Document >> On Error GoTo Err_PropertyAdd >> >> Set db = CurrentDb >> Set doc = db.Containers(strContainer).Documents(strDocName) >> With doc >> Set prpNew = .CreateProperty(strPrpName, PrpType, varVal) >> .Properties.Append prpNew >> .Properties.Refresh >> End With >> Debug.Print >> db.Containers(strContainer).Documents(strDocName).Properties(strPrpName) >> >> Exit_PropertyAdd: >> On Error Resume Next >> Exit Function >> Err_PropertyAdd: >> Select Case Err >> Case 0 '.insert Errors you wish to ignore here >> Resume Next >> Case Else '.All other errors will trap >> Beep >> MsgBox Err.Description >> Resume Exit_PropertyAdd >> End Select >> Resume 0 '.FOR TROUBLESHOOTING >> End Function >> >> '--------------------------------------------------------------------------------------- >> ' Procedure : PrpGet >> ' Author : jwcolby >> ' Date : 2/26/2009 >> ' Purpose : >> '--------------------------------------------------------------------------------------- >> ' >> Function PrpGet(strContainer As String, strDocName As String, strPrpName >> As String) As Variant >> On Error GoTo Err_PrpGet >> >> PrpGet = >> CurrentDb.Containers(strContainer).Documents(strDocName).Properties(strPrpName) >> >> Exit_PrpGet: >> On Error Resume Next >> Exit Function >> Err_PrpGet: >> Select Case Err >> Case 0 '.insert Errors you wish to ignore here >> Resume Next >> Case Else '.All other errors will trap >> Beep >> MsgBox Err.Description >> Resume Exit_PrpGet >> End Select >> Resume 0 '.FOR TROUBLESHOOTING >> End Function >> >> In the debug window: >> >> >> AddProperty "forms","frmDemoCtls","JWCs test property",dbText,"jwc" >> >> ?PrpGet("forms","frmDemoCtls","jwcs test property") >> jwc >> >> >> Enjoy! >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> Ha! John, Been there. Looked at them yesterday - but I love the fact >>> that >>> you are now also thinking Laterally! >>> >>> Couldn't find any way to manipulate custom properties in Forms. Do you >>> know >>> a way? >>> >>> I could only find custom properties on DB, Tables, Indexes, etc but not >>> forms. >>> >>> Max >>> Laugh more than cry. Smile more than frown. Be generous in spirit. >>> And >>> always stand your round in the pub! >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From wdhindman at dejpolsystems.com Thu Feb 26 08:53:48 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Thu, 26 Feb 2009 09:53:48 -0500 Subject: [AccessD] Using Lateral Thinking To solve problems - This time it is Form Properties References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49a4f6f2.0a04d00a.18b9.ffff9ebf@mx.google.com> <49A54454.3070409@colbyconsulting.com><49a56ec7.0422300a.4a43.0e8c@mx.google.com> <49A63301.5050003@colbyconsulting.com> <49A6917E.9010801@colbyconsulting.com> Message-ID: <7A81EE4DF32A4BD7AD648977C7A31319@jislaptopdev> set dbdao - db ???? William -------------------------------------------------- From: "jwcolby" Sent: Thursday, February 26, 2009 7:56 AM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This time it is Form Properties > All you have to do is ask. > > BTW, I discovered that getting a pointer to currentdb is expensive. If > you are going to do a lot of > dao manipulation of the dao.database object you should get a single > pointer and then use that pointer: > > function dbDao() as dao.database > static db as dao.database > if db is nothing then > set db = currentdb > endif > set dbdao - db > end function > > The difference when repeatedly calling a function that needs the currentdb > pointer can be quite > dramatic. > > John W. Colby > www.ColbyConsulting.com > > > William Hindman wrote: >> ...we need to get you in RANT mode a lot MORE often ...when you're >> through >> ranting, you make amends with gems like this :) >> >> William >> >> -------------------------------------------------- >> From: "jwcolby" >> Sent: Thursday, February 26, 2009 1:13 AM >> To: "Access Developers discussion and problem solving" >> >> Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This >> time >> it is Form Properties >> >>> Max, >>> >>>> Couldn't find any way to manipulate custom properties in Forms. Do you >>>> know a way? >>> Don't say I never did nothing for ya. Happy lateral thinking. >>> >>> There is this thing in Access called the "documents" collection. >>> Documents are something that the >>> average joe knows nothing about and so are "well hidden" as I mentioned >>> in >>> my previous email. I >>> mean they are right there, anyone can find them, anyone can iterate the >>> documents collections, the >>> properties of a document etc but you have to dig down to that level to >>> actually see what is in the >>> properties collection. >>> >>> currentdb.Containers(strContainer).Documents(strDocName) >>> >>> AFAICT .Containers represents the tabs in an A2003 database. >>> strContainer >>> will be the name of some >>> tab - Forms, Reports, Queries, Tables, etc. .Documents() contains all >>> of >>> the forms, reports etc. >>> strDocName would be the name of a specific form, query etc. >>> >>> AFAICT documents are probably the textual representation of an object, >>> IE >>> what you would get if you >>> exported the object to a text file. As such it doesn't have to be >>> "opened" in design view to >>> manipulate, nor "Saved" afterwards. >>> >>> I haven't done extensive testing to see how many properties you can >>> create. I suspect a BUNCH >>> however, since these are collections like any other. >>> >>> To manipulate it: >>> >>> '--------------------------------------------------------------------------------------- >>> ' Procedure : PropertyAdd >>> ' Author : jwcolby >>> ' Date : 2/26/2009 >>> ' Purpose : >>> ' >>> 'String container can be "Forms", "Reports" etc >>> 'strDocName can be the name of any "document" in that container. >>> ' >>> '--------------------------------------------------------------------------------------- >>> ' >>> Function PropertyAdd(strContainer As String, strDocName As String, _ >>> strPrpName As String, PrpType As DataTypeEnum, >>> varVal >>> As Variant) >>> Dim db As DAO.Database >>> Dim prpNew As Property >>> Dim doc As Document >>> On Error GoTo Err_PropertyAdd >>> >>> Set db = CurrentDb >>> Set doc = db.Containers(strContainer).Documents(strDocName) >>> With doc >>> Set prpNew = .CreateProperty(strPrpName, PrpType, varVal) >>> .Properties.Append prpNew >>> .Properties.Refresh >>> End With >>> Debug.Print >>> db.Containers(strContainer).Documents(strDocName).Properties(strPrpName) >>> >>> Exit_PropertyAdd: >>> On Error Resume Next >>> Exit Function >>> Err_PropertyAdd: >>> Select Case Err >>> Case 0 '.insert Errors you wish to ignore here >>> Resume Next >>> Case Else '.All other errors will trap >>> Beep >>> MsgBox Err.Description >>> Resume Exit_PropertyAdd >>> End Select >>> Resume 0 '.FOR TROUBLESHOOTING >>> End Function >>> >>> '--------------------------------------------------------------------------------------- >>> ' Procedure : PrpGet >>> ' Author : jwcolby >>> ' Date : 2/26/2009 >>> ' Purpose : >>> '--------------------------------------------------------------------------------------- >>> ' >>> Function PrpGet(strContainer As String, strDocName As String, strPrpName >>> As String) As Variant >>> On Error GoTo Err_PrpGet >>> >>> PrpGet = >>> CurrentDb.Containers(strContainer).Documents(strDocName).Properties(strPrpName) >>> >>> Exit_PrpGet: >>> On Error Resume Next >>> Exit Function >>> Err_PrpGet: >>> Select Case Err >>> Case 0 '.insert Errors you wish to ignore here >>> Resume Next >>> Case Else '.All other errors will trap >>> Beep >>> MsgBox Err.Description >>> Resume Exit_PrpGet >>> End Select >>> Resume 0 '.FOR TROUBLESHOOTING >>> End Function >>> >>> In the debug window: >>> >>> >>> AddProperty "forms","frmDemoCtls","JWCs test property",dbText,"jwc" >>> >>> ?PrpGet("forms","frmDemoCtls","jwcs test property") >>> jwc >>> >>> >>> Enjoy! >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Max Wanadoo wrote: >>>> Ha! John, Been there. Looked at them yesterday - but I love the fact >>>> that >>>> you are now also thinking Laterally! >>>> >>>> Couldn't find any way to manipulate custom properties in Forms. Do you >>>> know >>>> a way? >>>> >>>> I could only find custom properties on DB, Tables, Indexes, etc but not >>>> forms. >>>> >>>> Max >>>> Laugh more than cry. Smile more than frown. Be generous in spirit. >>>> And >>>> always stand your round in the pub! >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Thu Feb 26 09:17:01 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 26 Feb 2009 10:17:01 -0500 Subject: [AccessD] dbDao: was Form Properties In-Reply-To: <7A81EE4DF32A4BD7AD648977C7A31319@jislaptopdev> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49a4f6f2.0a04d00a.18b9.ffff9ebf@mx.google.com> <49A54454.3070409@colbyconsulting.com><49a56ec7.0422300a.4a43.0e8c@mx.google.com> <49A63301.5050003@colbyconsulting.com> <49A6917E.9010801@colbyconsulting.com> <7A81EE4DF32A4BD7AD648977C7A31319@jislaptopdev> Message-ID: <49A6B26D.9020008@colbyconsulting.com> uuuhhh... =? That was air code that I promptly pasted into a module, found the error and fixed IN MY MODULE. Sorry about that. Function dbDao() As DAO.Database Static db As DAO.Database If db Is Nothing Then Set db = CurrentDb End If Set dbDao = db End Function I found this issue years ago and have been using a function like this but because it is so simple I just rewrote it in the email. 8( John W. Colby www.ColbyConsulting.com William Hindman wrote: > set dbdao - db ???? > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Thursday, February 26, 2009 7:56 AM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This time > it is Form Properties > >> All you have to do is ask. >> >> BTW, I discovered that getting a pointer to currentdb is expensive. If >> you are going to do a lot of >> dao manipulation of the dao.database object you should get a single >> pointer and then use that pointer: >> >> function dbDao() as dao.database >> static db as dao.database >> if db is nothing then >> set db = currentdb >> endif >> set dbdao - db >> end function >> >> The difference when repeatedly calling a function that needs the currentdb >> pointer can be quite >> dramatic. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> William Hindman wrote: >>> ...we need to get you in RANT mode a lot MORE often ...when you're >>> through >>> ranting, you make amends with gems like this :) >>> >>> William >>> >>> -------------------------------------------------- >>> From: "jwcolby" >>> Sent: Thursday, February 26, 2009 1:13 AM >>> To: "Access Developers discussion and problem solving" >>> >>> Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This >>> time >>> it is Form Properties >>> >>>> Max, >>>> >>>>> Couldn't find any way to manipulate custom properties in Forms. Do you >>>>> know a way? >>>> Don't say I never did nothing for ya. Happy lateral thinking. >>>> >>>> There is this thing in Access called the "documents" collection. >>>> Documents are something that the >>>> average joe knows nothing about and so are "well hidden" as I mentioned >>>> in >>>> my previous email. I >>>> mean they are right there, anyone can find them, anyone can iterate the >>>> documents collections, the >>>> properties of a document etc but you have to dig down to that level to >>>> actually see what is in the >>>> properties collection. >>>> >>>> currentdb.Containers(strContainer).Documents(strDocName) >>>> >>>> AFAICT .Containers represents the tabs in an A2003 database. >>>> strContainer >>>> will be the name of some >>>> tab - Forms, Reports, Queries, Tables, etc. .Documents() contains all >>>> of >>>> the forms, reports etc. >>>> strDocName would be the name of a specific form, query etc. >>>> >>>> AFAICT documents are probably the textual representation of an object, >>>> IE >>>> what you would get if you >>>> exported the object to a text file. As such it doesn't have to be >>>> "opened" in design view to >>>> manipulate, nor "Saved" afterwards. >>>> >>>> I haven't done extensive testing to see how many properties you can >>>> create. I suspect a BUNCH >>>> however, since these are collections like any other. >>>> >>>> To manipulate it: >>>> >>>> '--------------------------------------------------------------------------------------- >>>> ' Procedure : PropertyAdd >>>> ' Author : jwcolby >>>> ' Date : 2/26/2009 >>>> ' Purpose : >>>> ' >>>> 'String container can be "Forms", "Reports" etc >>>> 'strDocName can be the name of any "document" in that container. >>>> ' >>>> '--------------------------------------------------------------------------------------- >>>> ' >>>> Function PropertyAdd(strContainer As String, strDocName As String, _ >>>> strPrpName As String, PrpType As DataTypeEnum, >>>> varVal >>>> As Variant) >>>> Dim db As DAO.Database >>>> Dim prpNew As Property >>>> Dim doc As Document >>>> On Error GoTo Err_PropertyAdd >>>> >>>> Set db = CurrentDb >>>> Set doc = db.Containers(strContainer).Documents(strDocName) >>>> With doc >>>> Set prpNew = .CreateProperty(strPrpName, PrpType, varVal) >>>> .Properties.Append prpNew >>>> .Properties.Refresh >>>> End With >>>> Debug.Print >>>> db.Containers(strContainer).Documents(strDocName).Properties(strPrpName) >>>> >>>> Exit_PropertyAdd: >>>> On Error Resume Next >>>> Exit Function >>>> Err_PropertyAdd: >>>> Select Case Err >>>> Case 0 '.insert Errors you wish to ignore here >>>> Resume Next >>>> Case Else '.All other errors will trap >>>> Beep >>>> MsgBox Err.Description >>>> Resume Exit_PropertyAdd >>>> End Select >>>> Resume 0 '.FOR TROUBLESHOOTING >>>> End Function >>>> >>>> '--------------------------------------------------------------------------------------- >>>> ' Procedure : PrpGet >>>> ' Author : jwcolby >>>> ' Date : 2/26/2009 >>>> ' Purpose : >>>> '--------------------------------------------------------------------------------------- >>>> ' >>>> Function PrpGet(strContainer As String, strDocName As String, strPrpName >>>> As String) As Variant >>>> On Error GoTo Err_PrpGet >>>> >>>> PrpGet = >>>> CurrentDb.Containers(strContainer).Documents(strDocName).Properties(strPrpName) >>>> >>>> Exit_PrpGet: >>>> On Error Resume Next >>>> Exit Function >>>> Err_PrpGet: >>>> Select Case Err >>>> Case 0 '.insert Errors you wish to ignore here >>>> Resume Next >>>> Case Else '.All other errors will trap >>>> Beep >>>> MsgBox Err.Description >>>> Resume Exit_PrpGet >>>> End Select >>>> Resume 0 '.FOR TROUBLESHOOTING >>>> End Function >>>> >>>> In the debug window: >>>> >>>> >>>> AddProperty "forms","frmDemoCtls","JWCs test property",dbText,"jwc" >>>> >>>> ?PrpGet("forms","frmDemoCtls","jwcs test property") >>>> jwc >>>> >>>> >>>> Enjoy! >>>> >>>> John W. Colby >>>> www.ColbyConsulting.com >>>> >>>> >>>> Max Wanadoo wrote: >>>>> Ha! John, Been there. Looked at them yesterday - but I love the fact >>>>> that >>>>> you are now also thinking Laterally! >>>>> >>>>> Couldn't find any way to manipulate custom properties in Forms. Do you >>>>> know >>>>> a way? >>>>> >>>>> I could only find custom properties on DB, Tables, Indexes, etc but not >>>>> forms. >>>>> >>>>> Max >>>>> Laugh more than cry. Smile more than frown. Be generous in spirit. >>>>> And >>>>> always stand your round in the pub! >>>> -- >>>> AccessD mailing list >>>> AccessD at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>> Website: http://www.databaseadvisors.com >>>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From max.wanadoo at gmail.com Thu Feb 26 09:19:45 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 26 Feb 2009 15:19:45 -0000 Subject: [AccessD] Using Lateral Thinking To solve problems - This time it is Form Properties In-Reply-To: <49A6917E.9010801@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49a4f6f2.0a04d00a.18b9.ffff9ebf@mx.google.com> <49A54454.3070409@colbyconsulting.com><49a56ec7.0422300a.4a43.0e8c@mx.google.com> <49A63301.5050003@colbyconsulting.com> <49A6917E.9010801@colbyconsulting.com> Message-ID: <49a6b31c.0a1ad00a.0348.5241@mx.google.com> Ummm, don't pat yourself on the back tooooo soooon JC. I tried all of the containers and documents and NOWHERE can I find where I can ADD a User-Defined Property to the Forms Collections. Post some code that does that and then I will personally give you a pat on the back... As I originally state, I don't think Access allows this other than for those declared items in the objects collection, ie Datbases, Tables, Indexes etc. Not Forms. I would love to be wrong, but given that I seldom am, I won't hold my breath too long. Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 26 February 2009 12:57 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This time it is Form Properties All you have to do is ask. BTW, I discovered that getting a pointer to currentdb is expensive. If you are going to do a lot of dao manipulation of the dao.database object you should get a single pointer and then use that pointer: function dbDao() as dao.database static db as dao.database if db is nothing then set db = currentdb endif set dbdao - db end function The difference when repeatedly calling a function that needs the currentdb pointer can be quite dramatic. John W. Colby www.ColbyConsulting.com William Hindman wrote: > ...we need to get you in RANT mode a lot MORE often ...when you're through > ranting, you make amends with gems like this :) > > William > > -------------------------------------------------- > From: "jwcolby" > Sent: Thursday, February 26, 2009 1:13 AM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This time > it is Form Properties > >> Max, >> >>> Couldn't find any way to manipulate custom properties in Forms. Do you >>> know a way? >> Don't say I never did nothing for ya. Happy lateral thinking. >> >> There is this thing in Access called the "documents" collection. >> Documents are something that the >> average joe knows nothing about and so are "well hidden" as I mentioned in >> my previous email. I >> mean they are right there, anyone can find them, anyone can iterate the >> documents collections, the >> properties of a document etc but you have to dig down to that level to >> actually see what is in the >> properties collection. >> >> currentdb.Containers(strContainer).Documents(strDocName) >> >> AFAICT .Containers represents the tabs in an A2003 database. strContainer >> will be the name of some >> tab - Forms, Reports, Queries, Tables, etc. .Documents() contains all of >> the forms, reports etc. >> strDocName would be the name of a specific form, query etc. >> >> AFAICT documents are probably the textual representation of an object, IE >> what you would get if you >> exported the object to a text file. As such it doesn't have to be >> "opened" in design view to >> manipulate, nor "Saved" afterwards. >> >> I haven't done extensive testing to see how many properties you can >> create. I suspect a BUNCH >> however, since these are collections like any other. >> >> To manipulate it: >> >> '--------------------------------------------------------------------------- ------------ >> ' Procedure : PropertyAdd >> ' Author : jwcolby >> ' Date : 2/26/2009 >> ' Purpose : >> ' >> 'String container can be "Forms", "Reports" etc >> 'strDocName can be the name of any "document" in that container. >> ' >> '--------------------------------------------------------------------------- ------------ >> ' >> Function PropertyAdd(strContainer As String, strDocName As String, _ >> strPrpName As String, PrpType As DataTypeEnum, varVal >> As Variant) >> Dim db As DAO.Database >> Dim prpNew As Property >> Dim doc As Document >> On Error GoTo Err_PropertyAdd >> >> Set db = CurrentDb >> Set doc = db.Containers(strContainer).Documents(strDocName) >> With doc >> Set prpNew = .CreateProperty(strPrpName, PrpType, varVal) >> .Properties.Append prpNew >> .Properties.Refresh >> End With >> Debug.Print >> db.Containers(strContainer).Documents(strDocName).Properties(strPrpName) >> >> Exit_PropertyAdd: >> On Error Resume Next >> Exit Function >> Err_PropertyAdd: >> Select Case Err >> Case 0 '.insert Errors you wish to ignore here >> Resume Next >> Case Else '.All other errors will trap >> Beep >> MsgBox Err.Description >> Resume Exit_PropertyAdd >> End Select >> Resume 0 '.FOR TROUBLESHOOTING >> End Function >> >> '--------------------------------------------------------------------------- ------------ >> ' Procedure : PrpGet >> ' Author : jwcolby >> ' Date : 2/26/2009 >> ' Purpose : >> '--------------------------------------------------------------------------- ------------ >> ' >> Function PrpGet(strContainer As String, strDocName As String, strPrpName >> As String) As Variant >> On Error GoTo Err_PrpGet >> >> PrpGet = >> CurrentDb.Containers(strContainer).Documents(strDocName).Properties(strPrpNa me) >> >> Exit_PrpGet: >> On Error Resume Next >> Exit Function >> Err_PrpGet: >> Select Case Err >> Case 0 '.insert Errors you wish to ignore here >> Resume Next >> Case Else '.All other errors will trap >> Beep >> MsgBox Err.Description >> Resume Exit_PrpGet >> End Select >> Resume 0 '.FOR TROUBLESHOOTING >> End Function >> >> In the debug window: >> >> >> AddProperty "forms","frmDemoCtls","JWCs test property",dbText,"jwc" >> >> ?PrpGet("forms","frmDemoCtls","jwcs test property") >> jwc >> >> >> Enjoy! >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Max Wanadoo wrote: >>> Ha! John, Been there. Looked at them yesterday - but I love the fact >>> that >>> you are now also thinking Laterally! >>> >>> Couldn't find any way to manipulate custom properties in Forms. Do you >>> know >>> a way? >>> >>> I could only find custom properties on DB, Tables, Indexes, etc but not >>> forms. >>> >>> Max >>> Laugh more than cry. Smile more than frown. Be generous in spirit. >>> And >>> always stand your round in the pub! >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Thu Feb 26 09:28:54 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Thu, 26 Feb 2009 10:28:54 -0500 Subject: [AccessD] Using Lateral Thinking To solve problems - This timeit is Form Properties References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49a4f6f2.0a04d00a.18b9.ffff9ebf@mx.google.com> <49A54454.3070409@colbyconsulting.com><49a56ec7.0422300a.4a43.0e8c@mx.google.com> <49A63301.5050003@colbyconsulting.com> <49A6917E.9010801@colbyconsulting.com> <49a6b31c.0a1ad00a.0348.5241@mx.google.com> Message-ID: " I would love to be wrong, but given that I seldom am, I won't hold my breath too long." Max ...that's my line and you can't have it! :) William -------------------------------------------------- From: "Max Wanadoo" Sent: Thursday, February 26, 2009 10:19 AM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This timeit is Form Properties > Ummm, don't pat yourself on the back tooooo soooon JC. I tried all of the > containers and documents and NOWHERE can I find where I can ADD a > User-Defined Property to the Forms Collections. Post some code that does > that and then I will personally give you a pat on the back... > > As I originally state, I don't think Access allows this other than for > those > declared items in the objects collection, ie Datbases, Tables, Indexes > etc. > Not Forms. I would love to be wrong, but given that I seldom am, I won't > hold my breath too long. > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 26 February 2009 12:57 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This > time > it is Form Properties > > All you have to do is ask. > > BTW, I discovered that getting a pointer to currentdb is expensive. If > you > are going to do a lot of > dao manipulation of the dao.database object you should get a single > pointer > and then use that pointer: > > function dbDao() as dao.database > static db as dao.database > if db is nothing then > set db = currentdb > endif > set dbdao - db > end function > > The difference when repeatedly calling a function that needs the currentdb > pointer can be quite > dramatic. > > John W. Colby > www.ColbyConsulting.com > > > William Hindman wrote: >> ...we need to get you in RANT mode a lot MORE often ...when you're >> through > >> ranting, you make amends with gems like this :) >> >> William >> >> -------------------------------------------------- >> From: "jwcolby" >> Sent: Thursday, February 26, 2009 1:13 AM >> To: "Access Developers discussion and problem solving" >> >> Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This > time >> it is Form Properties >> >>> Max, >>> >>>> Couldn't find any way to manipulate custom properties in Forms. Do you >>>> know a way? >>> Don't say I never did nothing for ya. Happy lateral thinking. >>> >>> There is this thing in Access called the "documents" collection. >>> Documents are something that the >>> average joe knows nothing about and so are "well hidden" as I mentioned > in >>> my previous email. I >>> mean they are right there, anyone can find them, anyone can iterate the >>> documents collections, the >>> properties of a document etc but you have to dig down to that level to >>> actually see what is in the >>> properties collection. >>> >>> currentdb.Containers(strContainer).Documents(strDocName) >>> >>> AFAICT .Containers represents the tabs in an A2003 database. >>> strContainer > >>> will be the name of some >>> tab - Forms, Reports, Queries, Tables, etc. .Documents() contains all >>> of > >>> the forms, reports etc. >>> strDocName would be the name of a specific form, query etc. >>> >>> AFAICT documents are probably the textual representation of an object, >>> IE > >>> what you would get if you >>> exported the object to a text file. As such it doesn't have to be >>> "opened" in design view to >>> manipulate, nor "Saved" afterwards. >>> >>> I haven't done extensive testing to see how many properties you can >>> create. I suspect a BUNCH >>> however, since these are collections like any other. >>> >>> To manipulate it: >>> >>> > '--------------------------------------------------------------------------- > ------------ >>> ' Procedure : PropertyAdd >>> ' Author : jwcolby >>> ' Date : 2/26/2009 >>> ' Purpose : >>> ' >>> 'String container can be "Forms", "Reports" etc >>> 'strDocName can be the name of any "document" in that container. >>> ' >>> > '--------------------------------------------------------------------------- > ------------ >>> ' >>> Function PropertyAdd(strContainer As String, strDocName As String, _ >>> strPrpName As String, PrpType As DataTypeEnum, >>> varVal > >>> As Variant) >>> Dim db As DAO.Database >>> Dim prpNew As Property >>> Dim doc As Document >>> On Error GoTo Err_PropertyAdd >>> >>> Set db = CurrentDb >>> Set doc = db.Containers(strContainer).Documents(strDocName) >>> With doc >>> Set prpNew = .CreateProperty(strPrpName, PrpType, varVal) >>> .Properties.Append prpNew >>> .Properties.Refresh >>> End With >>> Debug.Print >>> db.Containers(strContainer).Documents(strDocName).Properties(strPrpName) >>> >>> Exit_PropertyAdd: >>> On Error Resume Next >>> Exit Function >>> Err_PropertyAdd: >>> Select Case Err >>> Case 0 '.insert Errors you wish to ignore here >>> Resume Next >>> Case Else '.All other errors will trap >>> Beep >>> MsgBox Err.Description >>> Resume Exit_PropertyAdd >>> End Select >>> Resume 0 '.FOR TROUBLESHOOTING >>> End Function >>> >>> > '--------------------------------------------------------------------------- > ------------ >>> ' Procedure : PrpGet >>> ' Author : jwcolby >>> ' Date : 2/26/2009 >>> ' Purpose : >>> > '--------------------------------------------------------------------------- > ------------ >>> ' >>> Function PrpGet(strContainer As String, strDocName As String, strPrpName >>> As String) As Variant >>> On Error GoTo Err_PrpGet >>> >>> PrpGet = >>> > CurrentDb.Containers(strContainer).Documents(strDocName).Properties(strPrpNa > me) >>> >>> Exit_PrpGet: >>> On Error Resume Next >>> Exit Function >>> Err_PrpGet: >>> Select Case Err >>> Case 0 '.insert Errors you wish to ignore here >>> Resume Next >>> Case Else '.All other errors will trap >>> Beep >>> MsgBox Err.Description >>> Resume Exit_PrpGet >>> End Select >>> Resume 0 '.FOR TROUBLESHOOTING >>> End Function >>> >>> In the debug window: >>> >>> >>> AddProperty "forms","frmDemoCtls","JWCs test property",dbText,"jwc" >>> >>> ?PrpGet("forms","frmDemoCtls","jwcs test property") >>> jwc >>> >>> >>> Enjoy! >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Max Wanadoo wrote: >>>> Ha! John, Been there. Looked at them yesterday - but I love the fact >>>> that >>>> you are now also thinking Laterally! >>>> >>>> Couldn't find any way to manipulate custom properties in Forms. Do you >>>> know >>>> a way? >>>> >>>> I could only find custom properties on DB, Tables, Indexes, etc but not >>>> forms. >>>> >>>> Max >>>> Laugh more than cry. Smile more than frown. Be generous in spirit. >>>> And >>>> always stand your round in the pub! >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Thu Feb 26 09:33:42 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 26 Feb 2009 10:33:42 -0500 Subject: [AccessD] Using Lateral Thinking To solve problems - This time it is Form Properties In-Reply-To: <49a6b31c.0a1ad00a.0348.5241@mx.google.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49a4f6f2.0a04d00a.18b9.ffff9ebf@mx.google.com> <49A54454.3070409@colbyconsulting.com><49a56ec7.0422300a.4a43.0e8c@mx.google.com> <49A63301.5050003@colbyconsulting.com> <49A6917E.9010801@colbyconsulting.com> <49a6b31c.0a1ad00a.0348.5241@mx.google.com> Message-ID: <49A6B656.9040900@colbyconsulting.com> You can't. What you can do is add the properties to the document representing that form. Just change your thinking to point to a different representation of the form. The Forms() collection represents form documents (classes) instantiated. The containers("forms").documents("SomeFormName") represents that form in it's not loaded state. It still represents the form however. If you delete the form, the document goes away. If you add a new form a document is created for that form as soon as you save your new form. The custom properties of the document are persistent. Where's the beef? John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Ummm, don't pat yourself on the back tooooo soooon JC. I tried all of the > containers and documents and NOWHERE can I find where I can ADD a > User-Defined Property to the Forms Collections. Post some code that does > that and then I will personally give you a pat on the back... > > As I originally state, I don't think Access allows this other than for those > declared items in the objects collection, ie Datbases, Tables, Indexes etc. > Not Forms. I would love to be wrong, but given that I seldom am, I won't > hold my breath too long. > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 26 February 2009 12:57 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This time > it is Form Properties > > All you have to do is ask. > > BTW, I discovered that getting a pointer to currentdb is expensive. If you > are going to do a lot of > dao manipulation of the dao.database object you should get a single pointer > and then use that pointer: > > function dbDao() as dao.database > static db as dao.database > if db is nothing then > set db = currentdb > endif > set dbdao - db > end function > > The difference when repeatedly calling a function that needs the currentdb > pointer can be quite > dramatic. > > John W. Colby > www.ColbyConsulting.com > > > William Hindman wrote: >> ...we need to get you in RANT mode a lot MORE often ...when you're through > >> ranting, you make amends with gems like this :) >> >> William >> >> -------------------------------------------------- >> From: "jwcolby" >> Sent: Thursday, February 26, 2009 1:13 AM >> To: "Access Developers discussion and problem solving" >> >> Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This > time >> it is Form Properties >> >>> Max, >>> >>>> Couldn't find any way to manipulate custom properties in Forms. Do you >>>> know a way? >>> Don't say I never did nothing for ya. Happy lateral thinking. >>> >>> There is this thing in Access called the "documents" collection. >>> Documents are something that the >>> average joe knows nothing about and so are "well hidden" as I mentioned > in >>> my previous email. I >>> mean they are right there, anyone can find them, anyone can iterate the >>> documents collections, the >>> properties of a document etc but you have to dig down to that level to >>> actually see what is in the >>> properties collection. >>> >>> currentdb.Containers(strContainer).Documents(strDocName) >>> >>> AFAICT .Containers represents the tabs in an A2003 database. strContainer > >>> will be the name of some >>> tab - Forms, Reports, Queries, Tables, etc. .Documents() contains all of > >>> the forms, reports etc. >>> strDocName would be the name of a specific form, query etc. >>> >>> AFAICT documents are probably the textual representation of an object, IE > >>> what you would get if you >>> exported the object to a text file. As such it doesn't have to be >>> "opened" in design view to >>> manipulate, nor "Saved" afterwards. >>> >>> I haven't done extensive testing to see how many properties you can >>> create. I suspect a BUNCH >>> however, since these are collections like any other. >>> >>> To manipulate it: >>> >>> > '--------------------------------------------------------------------------- > ------------ >>> ' Procedure : PropertyAdd >>> ' Author : jwcolby >>> ' Date : 2/26/2009 >>> ' Purpose : >>> ' >>> 'String container can be "Forms", "Reports" etc >>> 'strDocName can be the name of any "document" in that container. >>> ' >>> > '--------------------------------------------------------------------------- > ------------ >>> ' >>> Function PropertyAdd(strContainer As String, strDocName As String, _ >>> strPrpName As String, PrpType As DataTypeEnum, varVal > >>> As Variant) >>> Dim db As DAO.Database >>> Dim prpNew As Property >>> Dim doc As Document >>> On Error GoTo Err_PropertyAdd >>> >>> Set db = CurrentDb >>> Set doc = db.Containers(strContainer).Documents(strDocName) >>> With doc >>> Set prpNew = .CreateProperty(strPrpName, PrpType, varVal) >>> .Properties.Append prpNew >>> .Properties.Refresh >>> End With >>> Debug.Print >>> db.Containers(strContainer).Documents(strDocName).Properties(strPrpName) >>> >>> Exit_PropertyAdd: >>> On Error Resume Next >>> Exit Function >>> Err_PropertyAdd: >>> Select Case Err >>> Case 0 '.insert Errors you wish to ignore here >>> Resume Next >>> Case Else '.All other errors will trap >>> Beep >>> MsgBox Err.Description >>> Resume Exit_PropertyAdd >>> End Select >>> Resume 0 '.FOR TROUBLESHOOTING >>> End Function >>> >>> > '--------------------------------------------------------------------------- > ------------ >>> ' Procedure : PrpGet >>> ' Author : jwcolby >>> ' Date : 2/26/2009 >>> ' Purpose : >>> > '--------------------------------------------------------------------------- > ------------ >>> ' >>> Function PrpGet(strContainer As String, strDocName As String, strPrpName >>> As String) As Variant >>> On Error GoTo Err_PrpGet >>> >>> PrpGet = >>> > CurrentDb.Containers(strContainer).Documents(strDocName).Properties(strPrpNa > me) >>> Exit_PrpGet: >>> On Error Resume Next >>> Exit Function >>> Err_PrpGet: >>> Select Case Err >>> Case 0 '.insert Errors you wish to ignore here >>> Resume Next >>> Case Else '.All other errors will trap >>> Beep >>> MsgBox Err.Description >>> Resume Exit_PrpGet >>> End Select >>> Resume 0 '.FOR TROUBLESHOOTING >>> End Function >>> >>> In the debug window: >>> >>> >>> AddProperty "forms","frmDemoCtls","JWCs test property",dbText,"jwc" >>> >>> ?PrpGet("forms","frmDemoCtls","jwcs test property") >>> jwc >>> >>> >>> Enjoy! >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Max Wanadoo wrote: >>>> Ha! John, Been there. Looked at them yesterday - but I love the fact >>>> that >>>> you are now also thinking Laterally! >>>> >>>> Couldn't find any way to manipulate custom properties in Forms. Do you >>>> know >>>> a way? >>>> >>>> I could only find custom properties on DB, Tables, Indexes, etc but not >>>> forms. >>>> >>>> Max >>>> Laugh more than cry. Smile more than frown. Be generous in spirit. >>>> And >>>> always stand your round in the pub! >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> From jwcolby at colbyconsulting.com Thu Feb 26 09:34:43 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 26 Feb 2009 10:34:43 -0500 Subject: [AccessD] Using Lateral Thinking To solve problems - This time it is Form Properties In-Reply-To: <49a6b31c.0a1ad00a.0348.5241@mx.google.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49a4f6f2.0a04d00a.18b9.ffff9ebf@mx.google.com> <49A54454.3070409@colbyconsulting.com><49a56ec7.0422300a.4a43.0e8c@mx.google.com> <49A63301.5050003@colbyconsulting.com> <49A6917E.9010801@colbyconsulting.com> <49a6b31c.0a1ad00a.0348.5241@mx.google.com> Message-ID: <49A6B693.9030804@colbyconsulting.com> Think laterally! Look at the code I provided. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Ummm, don't pat yourself on the back tooooo soooon JC. I tried all of the > containers and documents and NOWHERE can I find where I can ADD a > User-Defined Property to the Forms Collections. Post some code that does > that and then I will personally give you a pat on the back... > > As I originally state, I don't think Access allows this other than for those > declared items in the objects collection, ie Datbases, Tables, Indexes etc. > Not Forms. I would love to be wrong, but given that I seldom am, I won't > hold my breath too long. > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 26 February 2009 12:57 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This time > it is Form Properties > > All you have to do is ask. > > BTW, I discovered that getting a pointer to currentdb is expensive. If you > are going to do a lot of > dao manipulation of the dao.database object you should get a single pointer > and then use that pointer: > > function dbDao() as dao.database > static db as dao.database > if db is nothing then > set db = currentdb > endif > set dbdao - db > end function > > The difference when repeatedly calling a function that needs the currentdb > pointer can be quite > dramatic. > > John W. Colby > www.ColbyConsulting.com > > > William Hindman wrote: >> ...we need to get you in RANT mode a lot MORE often ...when you're through > >> ranting, you make amends with gems like this :) >> >> William >> >> -------------------------------------------------- >> From: "jwcolby" >> Sent: Thursday, February 26, 2009 1:13 AM >> To: "Access Developers discussion and problem solving" >> >> Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This > time >> it is Form Properties >> >>> Max, >>> >>>> Couldn't find any way to manipulate custom properties in Forms. Do you >>>> know a way? >>> Don't say I never did nothing for ya. Happy lateral thinking. >>> >>> There is this thing in Access called the "documents" collection. >>> Documents are something that the >>> average joe knows nothing about and so are "well hidden" as I mentioned > in >>> my previous email. I >>> mean they are right there, anyone can find them, anyone can iterate the >>> documents collections, the >>> properties of a document etc but you have to dig down to that level to >>> actually see what is in the >>> properties collection. >>> >>> currentdb.Containers(strContainer).Documents(strDocName) >>> >>> AFAICT .Containers represents the tabs in an A2003 database. strContainer > >>> will be the name of some >>> tab - Forms, Reports, Queries, Tables, etc. .Documents() contains all of > >>> the forms, reports etc. >>> strDocName would be the name of a specific form, query etc. >>> >>> AFAICT documents are probably the textual representation of an object, IE > >>> what you would get if you >>> exported the object to a text file. As such it doesn't have to be >>> "opened" in design view to >>> manipulate, nor "Saved" afterwards. >>> >>> I haven't done extensive testing to see how many properties you can >>> create. I suspect a BUNCH >>> however, since these are collections like any other. >>> >>> To manipulate it: >>> >>> > '--------------------------------------------------------------------------- > ------------ >>> ' Procedure : PropertyAdd >>> ' Author : jwcolby >>> ' Date : 2/26/2009 >>> ' Purpose : >>> ' >>> 'String container can be "Forms", "Reports" etc >>> 'strDocName can be the name of any "document" in that container. >>> ' >>> > '--------------------------------------------------------------------------- > ------------ >>> ' >>> Function PropertyAdd(strContainer As String, strDocName As String, _ >>> strPrpName As String, PrpType As DataTypeEnum, varVal > >>> As Variant) >>> Dim db As DAO.Database >>> Dim prpNew As Property >>> Dim doc As Document >>> On Error GoTo Err_PropertyAdd >>> >>> Set db = CurrentDb >>> Set doc = db.Containers(strContainer).Documents(strDocName) >>> With doc >>> Set prpNew = .CreateProperty(strPrpName, PrpType, varVal) >>> .Properties.Append prpNew >>> .Properties.Refresh >>> End With >>> Debug.Print >>> db.Containers(strContainer).Documents(strDocName).Properties(strPrpName) >>> >>> Exit_PropertyAdd: >>> On Error Resume Next >>> Exit Function >>> Err_PropertyAdd: >>> Select Case Err >>> Case 0 '.insert Errors you wish to ignore here >>> Resume Next >>> Case Else '.All other errors will trap >>> Beep >>> MsgBox Err.Description >>> Resume Exit_PropertyAdd >>> End Select >>> Resume 0 '.FOR TROUBLESHOOTING >>> End Function >>> >>> > '--------------------------------------------------------------------------- > ------------ >>> ' Procedure : PrpGet >>> ' Author : jwcolby >>> ' Date : 2/26/2009 >>> ' Purpose : >>> > '--------------------------------------------------------------------------- > ------------ >>> ' >>> Function PrpGet(strContainer As String, strDocName As String, strPrpName >>> As String) As Variant >>> On Error GoTo Err_PrpGet >>> >>> PrpGet = >>> > CurrentDb.Containers(strContainer).Documents(strDocName).Properties(strPrpNa > me) >>> Exit_PrpGet: >>> On Error Resume Next >>> Exit Function >>> Err_PrpGet: >>> Select Case Err >>> Case 0 '.insert Errors you wish to ignore here >>> Resume Next >>> Case Else '.All other errors will trap >>> Beep >>> MsgBox Err.Description >>> Resume Exit_PrpGet >>> End Select >>> Resume 0 '.FOR TROUBLESHOOTING >>> End Function >>> >>> In the debug window: >>> >>> >>> AddProperty "forms","frmDemoCtls","JWCs test property",dbText,"jwc" >>> >>> ?PrpGet("forms","frmDemoCtls","jwcs test property") >>> jwc >>> >>> >>> Enjoy! >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Max Wanadoo wrote: >>>> Ha! John, Been there. Looked at them yesterday - but I love the fact >>>> that >>>> you are now also thinking Laterally! >>>> >>>> Couldn't find any way to manipulate custom properties in Forms. Do you >>>> know >>>> a way? >>>> >>>> I could only find custom properties on DB, Tables, Indexes, etc but not >>>> forms. >>>> >>>> Max >>>> Laugh more than cry. Smile more than frown. Be generous in spirit. >>>> And >>>> always stand your round in the pub! >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> From ssharkins at gmail.com Thu Feb 26 09:44:59 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Thu, 26 Feb 2009 10:44:59 -0500 Subject: [AccessD] dbHiddenObject Message-ID: <1BD6BD0967DF4E949F8E424848EA9A0B@SusanOne> I remember that setting a table's hidden property programmatically, using dbHiddenObject tagged the table as "temporary" and Access deleted the table during a compact. That's not happening in Access 2003 -- do I remember this behavior incorrectly? Susan H. From max.wanadoo at gmail.com Thu Feb 26 09:45:59 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 26 Feb 2009 15:45:59 -0000 Subject: [AccessD] Using Lateral Thinking To solve problems - This timeit is Form Properties In-Reply-To: References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49a4f6f2.0a04d00a.18b9.ffff9ebf@mx.google.com> <49A54454.3070409@colbyconsulting.com><49a56ec7.0422300a.4a43.0e8c@mx.google.com> <49A63301.5050003@colbyconsulting.com> <49A6917E.9010801@colbyconsulting.com> <49a6b31c.0a1ad00a.0348.5241@mx.google.com> Message-ID: <49a6b945.1701d00a.2294.ffffdd73@mx.google.com> Ok, I will have this one then... " I would love to be wrong, but given that I seldom am right, I won't hold my breath too long." Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: 26 February 2009 15:29 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This timeit is Form Properties " I would love to be wrong, but given that I seldom am, I won't hold my breath too long." Max ...that's my line and you can't have it! :) William -------------------------------------------------- From: "Max Wanadoo" Sent: Thursday, February 26, 2009 10:19 AM To: "'Access Developers discussion and problem solving'" Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This timeit is Form Properties > Ummm, don't pat yourself on the back tooooo soooon JC. I tried all of the > containers and documents and NOWHERE can I find where I can ADD a > User-Defined Property to the Forms Collections. Post some code that does > that and then I will personally give you a pat on the back... > > As I originally state, I don't think Access allows this other than for > those > declared items in the objects collection, ie Datbases, Tables, Indexes > etc. > Not Forms. I would love to be wrong, but given that I seldom am, I won't > hold my breath too long. > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 26 February 2009 12:57 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This > time > it is Form Properties > > All you have to do is ask. > > BTW, I discovered that getting a pointer to currentdb is expensive. If > you > are going to do a lot of > dao manipulation of the dao.database object you should get a single > pointer > and then use that pointer: > > function dbDao() as dao.database > static db as dao.database > if db is nothing then > set db = currentdb > endif > set dbdao - db > end function > > The difference when repeatedly calling a function that needs the currentdb > pointer can be quite > dramatic. > > John W. Colby > www.ColbyConsulting.com > > > William Hindman wrote: >> ...we need to get you in RANT mode a lot MORE often ...when you're >> through > >> ranting, you make amends with gems like this :) >> >> William >> >> -------------------------------------------------- >> From: "jwcolby" >> Sent: Thursday, February 26, 2009 1:13 AM >> To: "Access Developers discussion and problem solving" >> >> Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This > time >> it is Form Properties >> >>> Max, >>> >>>> Couldn't find any way to manipulate custom properties in Forms. Do you >>>> know a way? >>> Don't say I never did nothing for ya. Happy lateral thinking. >>> >>> There is this thing in Access called the "documents" collection. >>> Documents are something that the >>> average joe knows nothing about and so are "well hidden" as I mentioned > in >>> my previous email. I >>> mean they are right there, anyone can find them, anyone can iterate the >>> documents collections, the >>> properties of a document etc but you have to dig down to that level to >>> actually see what is in the >>> properties collection. >>> >>> currentdb.Containers(strContainer).Documents(strDocName) >>> >>> AFAICT .Containers represents the tabs in an A2003 database. >>> strContainer > >>> will be the name of some >>> tab - Forms, Reports, Queries, Tables, etc. .Documents() contains all >>> of > >>> the forms, reports etc. >>> strDocName would be the name of a specific form, query etc. >>> >>> AFAICT documents are probably the textual representation of an object, >>> IE > >>> what you would get if you >>> exported the object to a text file. As such it doesn't have to be >>> "opened" in design view to >>> manipulate, nor "Saved" afterwards. >>> >>> I haven't done extensive testing to see how many properties you can >>> create. I suspect a BUNCH >>> however, since these are collections like any other. >>> >>> To manipulate it: >>> >>> > '--------------------------------------------------------------------------- > ------------ >>> ' Procedure : PropertyAdd >>> ' Author : jwcolby >>> ' Date : 2/26/2009 >>> ' Purpose : >>> ' >>> 'String container can be "Forms", "Reports" etc >>> 'strDocName can be the name of any "document" in that container. >>> ' >>> > '--------------------------------------------------------------------------- > ------------ >>> ' >>> Function PropertyAdd(strContainer As String, strDocName As String, _ >>> strPrpName As String, PrpType As DataTypeEnum, >>> varVal > >>> As Variant) >>> Dim db As DAO.Database >>> Dim prpNew As Property >>> Dim doc As Document >>> On Error GoTo Err_PropertyAdd >>> >>> Set db = CurrentDb >>> Set doc = db.Containers(strContainer).Documents(strDocName) >>> With doc >>> Set prpNew = .CreateProperty(strPrpName, PrpType, varVal) >>> .Properties.Append prpNew >>> .Properties.Refresh >>> End With >>> Debug.Print >>> db.Containers(strContainer).Documents(strDocName).Properties(strPrpName) >>> >>> Exit_PropertyAdd: >>> On Error Resume Next >>> Exit Function >>> Err_PropertyAdd: >>> Select Case Err >>> Case 0 '.insert Errors you wish to ignore here >>> Resume Next >>> Case Else '.All other errors will trap >>> Beep >>> MsgBox Err.Description >>> Resume Exit_PropertyAdd >>> End Select >>> Resume 0 '.FOR TROUBLESHOOTING >>> End Function >>> >>> > '--------------------------------------------------------------------------- > ------------ >>> ' Procedure : PrpGet >>> ' Author : jwcolby >>> ' Date : 2/26/2009 >>> ' Purpose : >>> > '--------------------------------------------------------------------------- > ------------ >>> ' >>> Function PrpGet(strContainer As String, strDocName As String, strPrpName >>> As String) As Variant >>> On Error GoTo Err_PrpGet >>> >>> PrpGet = >>> > CurrentDb.Containers(strContainer).Documents(strDocName).Properties(strPrpNa > me) >>> >>> Exit_PrpGet: >>> On Error Resume Next >>> Exit Function >>> Err_PrpGet: >>> Select Case Err >>> Case 0 '.insert Errors you wish to ignore here >>> Resume Next >>> Case Else '.All other errors will trap >>> Beep >>> MsgBox Err.Description >>> Resume Exit_PrpGet >>> End Select >>> Resume 0 '.FOR TROUBLESHOOTING >>> End Function >>> >>> In the debug window: >>> >>> >>> AddProperty "forms","frmDemoCtls","JWCs test property",dbText,"jwc" >>> >>> ?PrpGet("forms","frmDemoCtls","jwcs test property") >>> jwc >>> >>> >>> Enjoy! >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Max Wanadoo wrote: >>>> Ha! John, Been there. Looked at them yesterday - but I love the fact >>>> that >>>> you are now also thinking Laterally! >>>> >>>> Couldn't find any way to manipulate custom properties in Forms. Do you >>>> know >>>> a way? >>>> >>>> I could only find custom properties on DB, Tables, Indexes, etc but not >>>> forms. >>>> >>>> Max >>>> Laugh more than cry. Smile more than frown. Be generous in spirit. >>>> And >>>> always stand your round in the pub! >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >> > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From cfoust at infostatsystems.com Thu Feb 26 09:52:39 2009 From: cfoust at infostatsystems.com (Charlotte Foust) Date: Thu, 26 Feb 2009 07:52:39 -0800 Subject: [AccessD] dbHiddenObject In-Reply-To: <1BD6BD0967DF4E949F8E424848EA9A0B@SusanOne> References: <1BD6BD0967DF4E949F8E424848EA9A0B@SusanOne> Message-ID: Sounds familiar, Susan, but I think that was in 2000, which waa a strange animal all around. Anyhow, it would only have worked for non-system tables with that attribute. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins Sent: Thursday, February 26, 2009 7:45 AM To: AccessD at databaseadvisors.com Subject: [AccessD] dbHiddenObject I remember that setting a table's hidden property programmatically, using dbHiddenObject tagged the table as "temporary" and Access deleted the table during a compact. That's not happening in Access 2003 -- do I remember this behavior incorrectly? Susan H. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From ssharkins at gmail.com Thu Feb 26 09:58:39 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Thu, 26 Feb 2009 10:58:39 -0500 Subject: [AccessD] dbHiddenObject References: <1BD6BD0967DF4E949F8E424848EA9A0B@SusanOne> Message-ID: <071CC3BA98634B898AF966D7DB0F31AC@SusanOne> Sounds like an old problem that's been resolved then -- thanks! Susan H. ----- Original Message ----- From: "Charlotte Foust" To: "Access Developers discussion and problem solving" Sent: Thursday, February 26, 2009 10:52 AM Subject: Re: [AccessD] dbHiddenObject > Sounds familiar, Susan, but I think that was in 2000, which waa a > strange animal all around. Anyhow, it would only have worked for > non-system tables with that attribute. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins > Sent: Thursday, February 26, 2009 7:45 AM > To: AccessD at databaseadvisors.com > Subject: [AccessD] dbHiddenObject > > I remember that setting a table's hidden property programmatically, > using dbHiddenObject tagged the table as "temporary" and Access deleted > the table during a compact. > > That's not happening in Access 2003 -- do I remember this behavior > incorrectly? > > Susan H. > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From ssharkins at gmail.com Thu Feb 26 10:01:07 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Thu, 26 Feb 2009 11:01:07 -0500 Subject: [AccessD] How about lbdView Message-ID: <5FCCF63D7BEA4A9582878F8BAFC41D9F@SusanOne> Any of you still using the ldbView utility with 2003? Just wondering if it's still relevant of if its been replaced by something newer and better. Susan H. From max.wanadoo at gmail.com Thu Feb 26 10:11:40 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Thu, 26 Feb 2009 16:11:40 -0000 Subject: [AccessD] Using Lateral Thinking To solve problems - This time it is Form Properties In-Reply-To: <49A6B693.9030804@colbyconsulting.com> References: <03DC01E6037D4BE3931BF41095651721@HAL9005>, <49A2DCBF.4000809@colbyconsulting.com>, <49A500C6.12249.3B1A18F@stuart.lexacorp.com.pg> <49a4f6f2.0a04d00a.18b9.ffff9ebf@mx.google.com> <49A54454.3070409@colbyconsulting.com><49a56ec7.0422300a.4a43.0e8c@mx.google.com> <49A63301.5050003@colbyconsulting.com> <49A6917E.9010801@colbyconsulting.com> <49a6b31c.0a1ad00a.0348.5241@mx.google.com> <49A6B693.9030804@colbyconsulting.com> Message-ID: <49a6bf46.0707d00a.0b92.0868@mx.google.com> > Think laterally! HA! I will do my best..(goes and lies down) >>Look at the code I provided. Didn't see any code to manipulate the containers/documents. ? Max These are my principles. If you don't like them, I have others. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: 26 February 2009 15:35 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This time it is Form Properties Think laterally! Look at the code I provided. John W. Colby www.ColbyConsulting.com Max Wanadoo wrote: > Ummm, don't pat yourself on the back tooooo soooon JC. I tried all of the > containers and documents and NOWHERE can I find where I can ADD a > User-Defined Property to the Forms Collections. Post some code that does > that and then I will personally give you a pat on the back... > > As I originally state, I don't think Access allows this other than for those > declared items in the objects collection, ie Datbases, Tables, Indexes etc. > Not Forms. I would love to be wrong, but given that I seldom am, I won't > hold my breath too long. > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! > > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: 26 February 2009 12:57 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This time > it is Form Properties > > All you have to do is ask. > > BTW, I discovered that getting a pointer to currentdb is expensive. If you > are going to do a lot of > dao manipulation of the dao.database object you should get a single pointer > and then use that pointer: > > function dbDao() as dao.database > static db as dao.database > if db is nothing then > set db = currentdb > endif > set dbdao - db > end function > > The difference when repeatedly calling a function that needs the currentdb > pointer can be quite > dramatic. > > John W. Colby > www.ColbyConsulting.com > > > William Hindman wrote: >> ...we need to get you in RANT mode a lot MORE often ...when you're through > >> ranting, you make amends with gems like this :) >> >> William >> >> -------------------------------------------------- >> From: "jwcolby" >> Sent: Thursday, February 26, 2009 1:13 AM >> To: "Access Developers discussion and problem solving" >> >> Subject: Re: [AccessD] Using Lateral Thinking To solve problems - This > time >> it is Form Properties >> >>> Max, >>> >>>> Couldn't find any way to manipulate custom properties in Forms. Do you >>>> know a way? >>> Don't say I never did nothing for ya. Happy lateral thinking. >>> >>> There is this thing in Access called the "documents" collection. >>> Documents are something that the >>> average joe knows nothing about and so are "well hidden" as I mentioned > in >>> my previous email. I >>> mean they are right there, anyone can find them, anyone can iterate the >>> documents collections, the >>> properties of a document etc but you have to dig down to that level to >>> actually see what is in the >>> properties collection. >>> >>> currentdb.Containers(strContainer).Documents(strDocName) >>> >>> AFAICT .Containers represents the tabs in an A2003 database. strContainer > >>> will be the name of some >>> tab - Forms, Reports, Queries, Tables, etc. .Documents() contains all of > >>> the forms, reports etc. >>> strDocName would be the name of a specific form, query etc. >>> >>> AFAICT documents are probably the textual representation of an object, IE > >>> what you would get if you >>> exported the object to a text file. As such it doesn't have to be >>> "opened" in design view to >>> manipulate, nor "Saved" afterwards. >>> >>> I haven't done extensive testing to see how many properties you can >>> create. I suspect a BUNCH >>> however, since these are collections like any other. >>> >>> To manipulate it: >>> >>> > '--------------------------------------------------------------------------- > ------------ >>> ' Procedure : PropertyAdd >>> ' Author : jwcolby >>> ' Date : 2/26/2009 >>> ' Purpose : >>> ' >>> 'String container can be "Forms", "Reports" etc >>> 'strDocName can be the name of any "document" in that container. >>> ' >>> > '--------------------------------------------------------------------------- > ------------ >>> ' >>> Function PropertyAdd(strContainer As String, strDocName As String, _ >>> strPrpName As String, PrpType As DataTypeEnum, varVal > >>> As Variant) >>> Dim db As DAO.Database >>> Dim prpNew As Property >>> Dim doc As Document >>> On Error GoTo Err_PropertyAdd >>> >>> Set db = CurrentDb >>> Set doc = db.Containers(strContainer).Documents(strDocName) >>> With doc >>> Set prpNew = .CreateProperty(strPrpName, PrpType, varVal) >>> .Properties.Append prpNew >>> .Properties.Refresh >>> End With >>> Debug.Print >>> db.Containers(strContainer).Documents(strDocName).Properties(strPrpName) >>> >>> Exit_PropertyAdd: >>> On Error Resume Next >>> Exit Function >>> Err_PropertyAdd: >>> Select Case Err >>> Case 0 '.insert Errors you wish to ignore here >>> Resume Next >>> Case Else '.All other errors will trap >>> Beep >>> MsgBox Err.Description >>> Resume Exit_PropertyAdd >>> End Select >>> Resume 0 '.FOR TROUBLESHOOTING >>> End Function >>> >>> > '--------------------------------------------------------------------------- > ------------ >>> ' Procedure : PrpGet >>> ' Author : jwcolby >>> ' Date : 2/26/2009 >>> ' Purpose : >>> > '--------------------------------------------------------------------------- > ------------ >>> ' >>> Function PrpGet(strContainer As String, strDocName As String, strPrpName >>> As String) As Variant >>> On Error GoTo Err_PrpGet >>> >>> PrpGet = >>> > CurrentDb.Containers(strContainer).Documents(strDocName).Properties(strPrpNa > me) >>> Exit_PrpGet: >>> On Error Resume Next >>> Exit Function >>> Err_PrpGet: >>> Select Case Err >>> Case 0 '.insert Errors you wish to ignore here >>> Resume Next >>> Case Else '.All other errors will trap >>> Beep >>> MsgBox Err.Description >>> Resume Exit_PrpGet >>> End Select >>> Resume 0 '.FOR TROUBLESHOOTING >>> End Function >>> >>> In the debug window: >>> >>> >>> AddProperty "forms","frmDemoCtls","JWCs test property",dbText,"jwc" >>> >>> ?PrpGet("forms","frmDemoCtls","jwcs test property") >>> jwc >>> >>> >>> Enjoy! >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Max Wanadoo wrote: >>>> Ha! John, Been there. Looked at them yesterday - but I love the fact >>>> that >>>> you are now also thinking Laterally! >>>> >>>> Couldn't find any way to manipulate custom properties in Forms. Do you >>>> know >>>> a way? >>>> >>>> I could only find custom properties on DB, Tables, Indexes, etc but not >>>> forms. >>>> >>>> Max >>>> Laugh more than cry. Smile more than frown. Be generous in spirit. >>>> And >>>> always stand your round in the pub! >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From wdhindman at dejpolsystems.com Thu Feb 26 11:54:49 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Thu, 26 Feb 2009 12:54:49 -0500 Subject: [AccessD] How about lbdView References: <5FCCF63D7BEA4A9582878F8BAFC41D9F@SusanOne> Message-ID: <69476ACDC91248F7B2D85D9C50CDB56D@jislaptopdev> ...I use this in the be: Private Sub GetCurrentUsers() Dim rst As New ADODB.Recordset Dim i, j As Long Set cnn = CurrentProject.Connection Set rst = cnn.OpenSchema(adSchemaProviderSpecific, , "{947bb102-5d43-11d1-bdbf-00c04fb92675}") strList = BuildString(rst) lstUsers.RowSource = strList rst.Close Set rst = Nothing End Sub Private Function BuildString(rst As ADODB.Recordset) As String Dim strReturn As String Dim varItems As Variant Dim x As Integer Dim y As Integer strReturn = "COMPUTER_NAME;" & "LOGIN_NAME;" & "CONNECTED;" rst.MoveFirst varItems = rst.GetRows() For x = LBound(varItems, 2) To UBound(varItems, 2) For y = LBound(varItems, 1) To UBound(varItems, 1) If Not IsNull(varItems(y, x)) Then strReturn = strReturn & Left$(varItems(y, x), Len(Trim(varItems(y, x))) - 1) & ";" End If Next y Next x BuildString = strReturn End Function William -------------------------------------------------- From: "Susan Harkins" Sent: Thursday, February 26, 2009 11:01 AM To: Subject: [AccessD] How about lbdView > Any of you still using the ldbView utility with 2003? Just wondering if > it's > still relevant of if its been replaced by something newer and better. > > Susan H. > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From fuller.artful at gmail.com Thu Feb 26 12:01:27 2009 From: fuller.artful at gmail.com (Arthur Fuller) Date: Thu, 26 Feb 2009 13:01:27 -0500 Subject: [AccessD] Class costs & benefits In-Reply-To: <53C43C87364449F5BD45CA647900BC49@jislaptopdev> References: <49A56813.60403@colbyconsulting.com> <49671BEFC8C4469B82EC7ED1898737BB@HAL9005> <49A5B4B8.6050501@colbyconsulting.com> <53C43C87364449F5BD45CA647900BC49@jislaptopdev> Message-ID: <29f585dd0902261001y35b779e2u762e9287736ed8b5@mail.gmail.com> No no no no no, I interject. Multiple inheritance has been deemed problematic in virtually language that offered it. It is simply too crazy a construct for mere mortals such as myself to handle. For example, suppose that I inherit from both class A and B, and each has a method of the same name. How to distringuish which one you want? This path IMO leads to nuts documentation and nuts programming. Even the C++ guys have abandoned this approach. A. From jimdettman at verizon.net Thu Feb 26 12:12:34 2009 From: jimdettman at verizon.net (Jim Dettman) Date: Thu, 26 Feb 2009 13:12:34 -0500 Subject: [AccessD] Class costs & benefits In-Reply-To: <49A56813.60403@colbyconsulting.com> References: <49A56813.60403@colbyconsulting.com> Message-ID: <27B157D16FD7451384CF55C1E212759E@XPS> John, <> Been meaning to get back to this, but I have some business in LA next week along with a conference to attend in San Luis Obispo, so time has been tight this week. Given that I've already burned though half of today, I probably won't get back to this till after I get back from LA on the 8th. Just wanted you to know that I hadn't missed this and will respond. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 25, 2009 10:48 AM To: Access Developers discussion and problem solving Subject: [AccessD] Class costs & benefits From Rocky's email I thought that perhaps a thread on what the costs and benefits are for classes. Jim made a statement that he felt that "Access has no implementation inheritance and since inheritance really is the whole point of using classes, I think they are more or less a waste in Access". So what are your feelings and opinions about classes? I will promise to treat every opinion as valid and not go into rant mode. ;) In fact I will promise to not respond to any message unless the author specifically asks me to for some reason. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Thu Feb 26 12:42:56 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 26 Feb 2009 13:42:56 -0500 Subject: [AccessD] Class costs & benefits In-Reply-To: <27B157D16FD7451384CF55C1E212759E@XPS> References: <49A56813.60403@colbyconsulting.com> <27B157D16FD7451384CF55C1E212759E@XPS> Message-ID: <49A6E2B0.9070109@colbyconsulting.com> I too will be answering later, as my week just went crazy. John W. Colby www.ColbyConsulting.com Jim Dettman wrote: > John, > > <> > > Been meaning to get back to this, but I have some business in LA next week > along with a conference to attend in San Luis Obispo, so time has been tight > this week. Given that I've already burned though half of today, I probably > won't get back to this till after I get back from LA on the 8th. > > Just wanted you to know that I hadn't missed this and will respond. > > Jim. > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Wednesday, February 25, 2009 10:48 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Class costs & benefits > > From Rocky's email I thought that perhaps a thread on what the costs and > benefits are for classes. > > Jim made a statement that he felt that "Access has no implementation > inheritance and since > inheritance really is the whole point of using classes, I think they are > more or less a waste in > Access". > > So what are your feelings and opinions about classes? > > I will promise to treat every opinion as valid and not go into rant mode. > ;) > > In fact I will promise to not respond to any message unless the author > specifically asks me to for > some reason. > From jwcolby at colbyconsulting.com Thu Feb 26 12:47:44 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 26 Feb 2009 13:47:44 -0500 Subject: [AccessD] Class costs & benefits In-Reply-To: <27B157D16FD7451384CF55C1E212759E@XPS> References: <49A56813.60403@colbyconsulting.com> <27B157D16FD7451384CF55C1E212759E@XPS> Message-ID: <49A6E3D0.5060400@colbyconsulting.com> I am particularly looking for the opinions of those of you who have not used classes, or event sinking in classes, or collections up to this point. What are your beliefs and opinions? If you have followed the class lectures how have your opinions changed? This lecture serious is technical and sometimes I just miss explaining stuff because it doesn't occur to me that you might not know it. John W. Colby www.ColbyConsulting.com From ssharkins at gmail.com Thu Feb 26 13:02:55 2009 From: ssharkins at gmail.com (Susan Harkins) Date: Thu, 26 Feb 2009 14:02:55 -0500 Subject: [AccessD] How about lbdView References: <5FCCF63D7BEA4A9582878F8BAFC41D9F@SusanOne> <69476ACDC91248F7B2D85D9C50CDB56D@jislaptopdev> Message-ID: <7253FE8FD2E04A6D962B0EDCD45D573C@SusanOne> I actually wrote about OpenSchema, but it's been a long time ago. I just wondered if ldbView was still relevant -- it has a lot of gotchas, but in a pinch... Susan H. > ...I use this in the be: > > Private Sub GetCurrentUsers() > Dim rst As New ADODB.Recordset > Dim i, j As Long > > Set cnn = CurrentProject.Connection > Set rst = cnn.OpenSchema(adSchemaProviderSpecific, , > "{947bb102-5d43-11d1-bdbf-00c04fb92675}") > > strList = BuildString(rst) > lstUsers.RowSource = strList > > rst.Close > Set rst = Nothing > End Sub > > Private Function BuildString(rst As ADODB.Recordset) As String > Dim strReturn As String > Dim varItems As Variant > Dim x As Integer > Dim y As Integer > > strReturn = "COMPUTER_NAME;" & "LOGIN_NAME;" & "CONNECTED;" > > rst.MoveFirst > > varItems = rst.GetRows() > For x = LBound(varItems, 2) To UBound(varItems, 2) > For y = LBound(varItems, 1) To UBound(varItems, 1) > If Not IsNull(varItems(y, x)) Then > strReturn = strReturn & Left$(varItems(y, x), > Len(Trim(varItems(y, x))) - 1) & ";" > End If > Next y > Next x > BuildString = strReturn > End Function > > William > > -------------------------------------------------- > From: "Susan Harkins" > Sent: Thursday, February 26, 2009 11:01 AM > To: > Subject: [AccessD] How about lbdView > >> Any of you still using the ldbView utility with 2003? Just wondering if >> it's >> still relevant of if its been replaced by something newer and better. >> >> Susan H. >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From mcp2004 at mail.ru Thu Feb 26 13:08:51 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Thu, 26 Feb 2009 22:08:51 +0300 Subject: [AccessD] =?koi8-r?b?Q2xhc3MgY29zdHMgJiBiZW5lZml0cw==?= In-Reply-To: <29f585dd0902261001y35b779e2u762e9287736ed8b5@mail.gmail.com> References: <29f585dd0902261001y35b779e2u762e9287736ed8b5@mail.gmail.com> Message-ID: Hi Arthur, Have a look - Ruby has multiple inheritance features implememted using so called Mix-ins to effectively solve the issue you mentioned: http://www.artima.com/intv/tuesday2.html I'd bet C# and VB.NEt will follow this pattern or something like that in the future versions (but not yet in next versions C#4.0 and VB10 (VBx))... Thank you. -- Shamil -----Original Message----- From: Arthur Fuller To: Access Developers discussion and problem solving Date: Thu, 26 Feb 2009 13:01:27 -0500 Subject: Re: [AccessD] Class costs & benefits > No no no no no, I interject. Multiple inheritance has been deemed > problematic in virtually language that offered it. It is simply too crazy a > construct for mere mortals such as myself to handle. For example, suppose > that I inherit from both class A and B, and each has a method of the same > name. How to distringuish which one you want? This path IMO leads to nuts > documentation and nuts programming. Even the C++ guys have abandoned this > approach. > > A. > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From wdhindman at dejpolsystems.com Thu Feb 26 13:26:53 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Thu, 26 Feb 2009 14:26:53 -0500 Subject: [AccessD] How about lbdView References: <5FCCF63D7BEA4A9582878F8BAFC41D9F@SusanOne><69476ACDC91248F7B2D85D9C50CDB56D@jislaptopdev> <7253FE8FD2E04A6D962B0EDCD45D573C@SusanOne> Message-ID: <80495242858044CB9C79D1B80260F90B@jislaptopdev> ...the schema is built into ado and the ref set by default ...I don't have to distribute it or deal with users screwing with it. ...LDBView is still available and works within its limits but I can't think of a reason to use it. William -------------------------------------------------- From: "Susan Harkins" Sent: Thursday, February 26, 2009 2:02 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] How about lbdView > I actually wrote about OpenSchema, but it's been a long time ago. I just > wondered if ldbView was still relevant -- it has a lot of gotchas, but in > a > pinch... > > Susan H. > > >> ...I use this in the be: >> >> Private Sub GetCurrentUsers() >> Dim rst As New ADODB.Recordset >> Dim i, j As Long >> >> Set cnn = CurrentProject.Connection >> Set rst = cnn.OpenSchema(adSchemaProviderSpecific, , >> "{947bb102-5d43-11d1-bdbf-00c04fb92675}") >> >> strList = BuildString(rst) >> lstUsers.RowSource = strList >> >> rst.Close >> Set rst = Nothing >> End Sub >> >> Private Function BuildString(rst As ADODB.Recordset) As String >> Dim strReturn As String >> Dim varItems As Variant >> Dim x As Integer >> Dim y As Integer >> >> strReturn = "COMPUTER_NAME;" & "LOGIN_NAME;" & "CONNECTED;" >> >> rst.MoveFirst >> >> varItems = rst.GetRows() >> For x = LBound(varItems, 2) To UBound(varItems, 2) >> For y = LBound(varItems, 1) To UBound(varItems, 1) >> If Not IsNull(varItems(y, x)) Then >> strReturn = strReturn & Left$(varItems(y, x), >> Len(Trim(varItems(y, x))) - 1) & ";" >> End If >> Next y >> Next x >> BuildString = strReturn >> End Function >> >> William >> >> -------------------------------------------------- >> From: "Susan Harkins" >> Sent: Thursday, February 26, 2009 11:01 AM >> To: >> Subject: [AccessD] How about lbdView >> >>> Any of you still using the ldbView utility with 2003? Just wondering if >>> it's >>> still relevant of if its been replaced by something newer and better. >>> >>> Susan H. >>> >>> -- >>> AccessD mailing list >>> AccessD at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/accessd >>> Website: http://www.databaseadvisors.com >>> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From wdhindman at dejpolsystems.com Thu Feb 26 13:30:29 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Thu, 26 Feb 2009 14:30:29 -0500 Subject: [AccessD] Class costs & benefits References: <29f585dd0902261001y35b779e2u762e9287736ed8b5@mail.gmail.com> Message-ID: ...with every step forward there are new problems that have to be resolved ..."no no no no no" would still have us wearing fig leaves :( William -------------------------------------------------- From: "Salakhetdinov Shamil" Sent: Thursday, February 26, 2009 2:08 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD] Class costs & benefits > > Hi Arthur, > > Have a look - Ruby has multiple inheritance features implememted using so > called Mix-ins to effectively solve the issue you mentioned: > > http://www.artima.com/intv/tuesday2.html > > I'd bet C# and VB.NEt will follow this pattern or something like that in > the future versions (but not yet in next versions C#4.0 and VB10 (VBx))... > > Thank you. > > -- > Shamil > > -----Original Message----- > From: Arthur Fuller > To: Access Developers discussion and problem > solving > Date: Thu, 26 Feb 2009 13:01:27 -0500 > Subject: Re: [AccessD] Class costs & benefits > >> No no no no no, I interject. Multiple inheritance has been deemed >> problematic in virtually language that offered it. It is simply too crazy >> a >> construct for mere mortals such as myself to handle. For example, suppose >> that I inherit from both class A and B, and each has a method of the same >> name. How to distringuish which one you want? This path IMO leads to nuts >> documentation and nuts programming. Even the C++ guys have abandoned this >> approach. >> >> A. >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From mcp2004 at mail.ru Thu Feb 26 16:22:23 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Fri, 27 Feb 2009 01:22:23 +0300 Subject: [AccessD] =?koi8-r?b?T1Q6IFQtU1FMIDIwMDUgLSBCdWlsZGluZyBsb29rdXAg?= =?koi8-r?b?cm93cyBmcm9tIHN0cmluZy4uLg==?= Message-ID: Hi All, Using the following T-SQL in MS SQL 2005: select REPLACE( ( SELECT Cast(CategoryId as nvarchar(10)) + ',' + CategoryName + ',' FROM Categories ORDER BY CategoryName FOR XML PATH('') ) + '-', ',-','') as Categories You can get the string 1,Beverages,2,Condiments,3,Confections,4,Dairy Products,5,Grains/Cereals,6,Meat/Poultry,7,Produce,8,Seafood Questions: 1. If you know better way to get the same string please post it here (please do not spend time looking for it if youy do not have prompt solution from your experience - looking for other solution could be time consuming). 2. Do you know similar T-SQL only based way to split the above string to get a table: CategoryId CategoryName 1 Beverages 2 Condiments ... 8 Seafood ? (probably UDF should be used) N.B. The above technique introduced here (http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/)coudl be used to make cross-tab queries in T-SQL using dynamic SQL... Thank you. -- Shamil From davidmcafee at gmail.com Thu Feb 26 16:30:32 2009 From: davidmcafee at gmail.com (David McAfee) Date: Thu, 26 Feb 2009 14:30:32 -0800 Subject: [AccessD] OT: T-SQL 2005 - Building lookup rows from string... In-Reply-To: References: Message-ID: <8786a4c00902261430u20311454id1501ba499ef617a@mail.gmail.com> Here's a udf that I stole from Francisco. I might have tweaked it a bit, not sure. :) CREATE FUNCTION udfListToTable (@HList VarChar(1000), @Delimiter CHAR(1)) RETURNS @ListTable TABLE (Mystr VARCHAR(20)) AS BEGIN --Purpose: To convert a Comma delimited text to a Temp Variable table To help avoid dynamic sql -- Instead you can join the temp table or use it in your where clause if a field is IN the subquery -- Call as such: SELECT * FROM dbo.udfListToTable('jim,joe,bob,tom',',') DECLARE @Mystrtext as VarChar(20) IF RIGHT(RTRIM(@HLIST),1) <>@Delimiter SET @HList = @HList + @Delimiter WHILE CHARINDEX(@Delimiter, @HList) > 0 BEGIN IF CHARINDEX(@Delimiter, @HList) > 0 BEGIN SELECT @Mystrtext =LEFT(@HList, CHARINDEX(@Delimiter, @HList)-1) END ELSE BEGIN SELECT @Mystrtext = RTRIM(LTRIM(@HList)) END --Insert into Variable Table INSERT INTO @ListTable(Mystr) SELECT RTRIM(LTRIM(@Mystrtext)) --Remove Item from list SELECT @HList = RIGHT(RTRIM(@HList), LEN(RTRIM(@HList)) - CHARINDEX(@Delimiter, @HList)) END RETURN END 2009/2/26 Salakhetdinov Shamil : > Hi All, > > Using the following T-SQL in MS SQL 2005: > > select > REPLACE( > ( > ?SELECT > ? ? ? ?Cast(CategoryId as nvarchar(10)) + ',' + > ? ? ? ?CategoryName + ',' > ? ? ? ?FROM Categories > ? ? ? ?ORDER BY CategoryName > ? ? ? ?FOR XML PATH('') > ) + '-', > ',-','') > as Categories > > You can get the string > > 1,Beverages,2,Condiments,3,Confections,4,Dairy Products,5,Grains/Cereals,6,Meat/Poultry,7,Produce,8,Seafood > > Questions: > 1. If you know better way to get the same string please post it here (please do not spend time looking for it if youy do not have prompt solution from your experience - looking for other solution could be time consuming). > > 2. Do you know similar T-SQL only based way to split the above string to get a table: > > CategoryId CategoryName > 1 Beverages > 2 Condiments > ... > 8 Seafood > > ? (probably UDF should be used) > > > N.B. The above technique introduced here (http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/)coudl be used to make cross-tab queries in T-SQL using dynamic SQL... > > Thank you. > > -- > Shamil > > > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From darren at activebilling.com.au Thu Feb 26 19:13:25 2009 From: darren at activebilling.com.au (Darren D) Date: Fri, 27 Feb 2009 12:13:25 +1100 Subject: [AccessD] Access Data Page - Change heading text on the fly Message-ID: <00cb01c99878$995f58f0$131b910a@denzilnote> Hi team I have approx 10 Data Access Pages DAP (The Web pages that Access lets you 'play' with) - All identical - Just pointing to different SQL SVR Db's I have worked out how to change the syntax to open one of these and then pass the relevant Connection string to the relevant dB so I can just have 1 to maintain - WooHoo No all I need to do is change the text in the heading label On the DAP in design view, the item is referred to in the property sheet as Id and I have called it label0 and I have given it an innertext of "MyHeading" Anyone know how to change this text on the fly? Many thanks in adavance Darren From mcp2004 at mail.ru Fri Feb 27 07:26:13 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Fri, 27 Feb 2009 16:26:13 +0300 Subject: [AccessD] =?koi8-r?b?T1Q6IFQtU1FMIDIwMDUgLSBCdWlsZGluZyBsb29rdXAg?= =?koi8-r?b?cm93cyBmcm9tIHN0cmluZy4uLg==?= In-Reply-To: <8786a4c00902261430u20311454id1501ba499ef617a@mail.gmail.com> References: <8786a4c00902261430u20311454id1501ba499ef617a@mail.gmail.com> Message-ID: Thank you, David! -----Original Message----- From: David McAfee To: Access Developers discussion and problem solving Date: Thu, 26 Feb 2009 14:30:32 -0800 Subject: Re: [AccessD] OT: T-SQL 2005 - Building lookup rows from string... > Here's a udf that I stole from Francisco. I might have tweaked it a > bit, not sure. :) > > CREATE FUNCTION udfListToTable (@HList VarChar(1000), @Delimiter CHAR(1)) > RETURNS @ListTable TABLE (Mystr VARCHAR(20)) > AS > BEGIN > --Purpose: To convert a Comma delimited text to a Temp Variable table > To help avoid dynamic sql > -- Instead you can join the temp table or use it in your where > clause if a field is IN the subquery > -- Call as such: SELECT * FROM > dbo.udfListToTable('jim,joe,bob,tom',',') > DECLARE @Mystrtext as VarChar(20) > > IF RIGHT(RTRIM(@HLIST),1) <>@Delimiter > SET @HList = @HList + @Delimiter > > WHILE CHARINDEX(@Delimiter, @HList) > 0 > BEGIN > IF CHARINDEX(@Delimiter, @HList) > 0 > BEGIN > SELECT @Mystrtext =LEFT(@HList, CHARINDEX(@Delimiter, @HList)-1) > END > ELSE > BEGIN > SELECT @Mystrtext = RTRIM(LTRIM(@HList)) > END > --Insert into Variable Table > INSERT INTO @ListTable(Mystr) > SELECT RTRIM(LTRIM(@Mystrtext)) > --Remove Item from list > SELECT @HList = RIGHT(RTRIM(@HList), LEN(RTRIM(@HList)) - > CHARINDEX(@Delimiter, @HList)) > END > RETURN > END > > > > > > > 2009/2/26 Salakhetdinov Shamil : > > Hi All, > > > > Using the following T-SQL in MS SQL 2005: > > > > select > > REPLACE( > > ( > > SELECT > > Cast(CategoryId as nvarchar(10)) + ',' + > > CategoryName + ',' > > FROM Categories > > ORDER BY CategoryName > > FOR XML PATH('') > > ) + '-', > > ',-','') > > as Categories > > > > You can get the string > > > > 1,Beverages,2,Condiments,3,Confections,4,Dairy Products,5,Grains/Cereals,6,Meat/Poultry,7,Produce,8,Seafood > > > > Questions: > > 1. If you know better way to get the same string please post it here (please do not spend time looking for it if youy do not have prompt solution from your experience - looking for other solution could be time consuming). > > > > 2. Do you know similar T-SQL only based way to split the above string to get a table: > > > > CategoryId CategoryName > > 1 Beverages > > 2 Condiments > > ... > > 8 Seafood > > > > ? (probably UDF should be used) > > > > > > N.B. The above technique introduced here (http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/)coudl be used to make cross-tab queries in T-SQL using dynamic SQL... > > > > Thank you. > > > > -- > > Shamil > > > > > > > > > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From mcp2004 at mail.ru Fri Feb 27 07:42:11 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Fri, 27 Feb 2009 16:42:11 +0300 Subject: [AccessD] =?koi8-r?b?T1Q6IFQtU1FMIDIwMDUgLSBCdWlsZGluZyBsb29rdXAg?= =?koi8-r?b?cm93cyBmcm9tIHN0cmluZy4uLg==?= In-Reply-To: References: Message-ID: Hi All, Inspired by David response and using the following greate T-SQL dynamic programmic sources: http://www.sommarskog.se/dynamic_sql.html#sp_executesqlong http://www.sommarskog.se/arrays-in-sql-2005.html I have got written a couple of UDF and SP to get lookup values wrapped into a string and "unwrapped back" to a table. The code of those UDF and SP follows. Please note that dynamic T-SQL has some security limitations. The code was tested with MS SQL 2005 Northwind sample database. Writing this code was an exercize to prepare to develop advanced XREF T-SQL quesries for a real customer. I hope you can find posted T-SQL code and URLs on dynamic SQL programming issue useful. Thank you. -- Shamil P.S. Code (watch line wraps!): -- -- -- SAMPLE CALL -- -- select * from udf_LookupListToTable('1,Beverages,2,Condiments,3,Confections,4,Dairy Products,5,Grains/Cereals,6,Meat/Poultry,7,Produce,8,Seafood') -- CREATE FUNCTION udf_LookupListToTable (@list nvarchar(MAX)) RETURNS @tbl TABLE (id int NOT NULL, [name] nvarchar(128)) AS BEGIN DECLARE @pos int, @nextpos int, @valuelen int SELECT @pos = 0, @nextpos = 1 WHILE @nextpos > 0 BEGIN DECLARE @index int, @id int, @name nvarchar(128) SET @index = 2 WHILE @index > 0 BEGIN SELECT @nextpos = charindex(',', @list, @pos + 1) SELECT @valuelen = CASE WHEN @nextpos > 0 THEN @nextpos ELSE len(@list) + 1 END - @pos - 1 if @index = 2 SET @id = convert(int, substring(@list, @pos + 1, @valuelen)) if @index = 1 begin SET @name = substring(@list, @pos + 1, @valuelen) INSERT @tbl (id, [name]) VALUES (@id, @name) end SELECT @pos = @nextpos set @index = @index - 1 END END RETURN END GO -- -- -- SAMPLE CALL -- -- declare @resultList nvarchar(MAX) -- EXEC SP_LookupTableToList 'Categories','CategoryId','CategoryName', -- @resultList out -- -- print @resultList -- select * from udf_LookupListToTable(@resultList) ALTER PROCEDURE [dbo].[SP_LookupTableToList] @tableName nvarchar(128), @idFieldName nvarchar(128), @valueFieldName nvarchar(128), @resultList nvarchar(4000) OUT AS BEGIN SET NOCOUNT ON; DECLARE @tbl TABLE (ResultList nvarchar(max)) DECLARE @resultListColumnName nvarchar(128), @sql nvarchar(4000) set @resultListColumnName = 'ResultList' set @sql = ' SELECT REPLACE( ( SELECT CAST(@idFieldName as nvarchar(126)) + '','' + @valueFieldName + '','' FROM @tableName ORDER BY @valueFieldName FOR XML PATH('''') ) + ''-'', '',-'','''') as @resultListColumnName' set @sql = REPLACE(@sql,'@tableName', at tableName) set @sql = REPLACE(@sql,'@idFieldName', at idFieldName) set @sql = REPLACE(@sql,'@valueFieldName', at valueFieldName) set @sql = REPLACE(@sql,'@resultListColumnName', at resultListColumnName) INSERT @tbl(ResultList) EXEC (@sql) SELECT @resultList = [ResultList] from @tbl END GO From jwcolby at colbyconsulting.com Fri Feb 27 08:50:50 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 27 Feb 2009 09:50:50 -0500 Subject: [AccessD] Automate Excel macro with parameters Message-ID: <49A7FDCA.7080603@colbyconsulting.com> I am trying to figure out how to automate an excel macro with an unknown number of parameters. I doubt it is possible but I thought I would ask. If you want to run a macro in Excel you have to get a pointer to the workbook. You then use the syntax: xlBook.Application.Run "MacroName", "string parameter 1", intParameter2, etc In other words, you can pass as many parameters as the macro needs. So... I have long ago written a class (of course) that wraps Excel functionality. It can open, modify, close etc an Excel workbook. An excellent example BTW of where it is useful to create a class that does not inherit anything. To my knowledge even .Net cannot inherit an Excel application. So one of the methods of this class can run a macro in the workbook. However to this point it can only automate a macro that does not take parameters. I want to add a ParamArray to my method to feed in parameters to be sent to the macro. The only way I can see to do this (and it is UGLY) is to build a case statement that looks at how many variables are in the paramarray and just select a different xlbook.Application.Run statement: (pseudocode) select case ubound(MyParamArray) case 1 xlBook.Application.Run "MacroName", MyParamArray(0) case 2 xlBook.Application.Run "MacroName", MyParamArray(0), MyParamArray(1) case 3 xlBook.Application.Run "MacroName", MyParamArray(0), MyParamArray(1), MyParamArray(3) end select Do that for a number that would meet most cases and punt. I HATE punting! Has anyone ever solved the problem of passing the contents of a ParamArray to another object that accepts a paramarray? -- John W. Colby www.ColbyConsulting.com From markamatte at hotmail.com Fri Feb 27 08:56:55 2009 From: markamatte at hotmail.com (Mark A Matte) Date: Fri, 27 Feb 2009 14:56:55 +0000 Subject: [AccessD] Access Data Page - Change heading text on the fly In-Reply-To: <00cb01c99878$995f58f0$131b910a@denzilnote> References: <00cb01c99878$995f58f0$131b910a@denzilnote> Message-ID: Darren, It's been awhile since I played with DAPs...but can you use a CASE statement when the page loads...that reads your connect string...determine the heading...and set the appropriate text? Thanks, Mark A. Matte > From: darren at activebilling.com.au > To: accessd at databaseadvisors.com > Date: Fri, 27 Feb 2009 12:13:25 +1100 > Subject: [AccessD] Access Data Page - Change heading text on the fly > > Hi team > > I have approx 10 Data Access Pages DAP (The Web pages that Access lets you > 'play' with) - All identical - Just pointing to different SQL SVR Db's > > I have worked out how to change the syntax to open one of these and then pass > the relevant Connection string to the relevant dB so I can just have 1 to > maintain - WooHoo > > > > No all I need to do is change the text in the heading label > > On the DAP in design view, the item is referred to in the property sheet as Id > and I have called it label0 and I have given it an innertext of "MyHeading" > > Anyone know how to change this text on the fly? > > Many thanks in adavance > > Darren > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com _________________________________________________________________ Access your email online and on the go with Windows Live Hotmail. http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_HM_AE_Access_022009 From jwcolby at colbyconsulting.com Fri Feb 27 09:27:41 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 27 Feb 2009 10:27:41 -0500 Subject: [AccessD] Humor Message-ID: <49A8066D.4090705@colbyconsulting.com> GAMES FOR WHEN WE ARE OLDER 1. Sag, you're It. 2. Hide and go pee. 3. 20 questions shouted into your good ear. 4. Kick the bucket 5. Red Rover, Red Rover, the nurse says Bend Over. 6. Musical recliners. 7. Simon says something incoherent. 8. Pin the Toupee on the bald guy SIGNS OF MENOPAUSE : 1. You sell your home heating system at a yard sale. 2. You have to write post-it notes with your kids' names on them. 3. You change your underwear after a sneeze. OLD IS WHEN: 1. Going bra-less pulls all the wrinkles out of your face. 2. You don't care where your spouse goes, just as long as you don't have to go along. 3. Getting a little action means you don't need fiber today. 4. Getting lucky means you find your car in the parking lot. 5. An all-niter means not getting up to pee! Thoughts for the weekend: Wouldn't it be nice if whenever we messed up our life we could simply press 'Ctr Alt Delete' and start all over? If raising children was going to be easy, it never would have started with something called labor! Brain cells come and brain cells go, but fat cells live forever. Ponderisms I used to eat a lot of natural foods until I learned that most people die of natural causes. When weeding a garden, the easiest way to make sure you are removing a weed and not a valuable plant is to pull on it. If it comes out of the ground easily, it is a valuable plant. The easiest way to find something lost around the house is to buy a replacement. Never take life seriously. Nobody gets out alive anyway. Have you noticed since everyone has a camcorder these days no one talks about seeing UFOs like they used to? In the 60's, people took acid to make the world weird. Now the world is weird and people take Prozac to make it normal. How is it one careless match can start a forest fire, but it takes a whole box to start a campfire? Who was the first person to look at a cow and say, "I think I'll squeeze these dangly things here and drink whatever comes out?" Who was the first person to say, "See that chicken there? I'm gonna eat the next thing that comes outta its butt." If Jimmy cracks corn and no one cares, why is there a song about him? Why does your OB-GYN leave the room when you get undressed if he's going to look up there anyway? Why doesn't glue stick to the inside of the bottle? But Most Of All, Remember! A Good Friend Is Like A Good Bra. Hard to Find, Supportive, Comfortable, And Always Close To Your Heart From JHewson at nciinc.com Fri Feb 27 09:47:01 2009 From: JHewson at nciinc.com (Hewson, Jim ) Date: Fri, 27 Feb 2009 09:47:01 -0600 Subject: [AccessD] Automate Excel macro with parameters In-Reply-To: <49A7FDCA.7080603@colbyconsulting.com> References: <49A7FDCA.7080603@colbyconsulting.com> Message-ID: <7E02B06E41E5404589EDDDA2BAA1C5A86BD75D@sanex101.nciinc.com> If the Excel macro is always the same one, why not pull the code into Access and wrap it into a function? Call the function each time you want to change the parameters. Jim -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 27, 2009 8:51 AM To: Access Developers discussion and problem solving Subject: [AccessD] Automate Excel macro with parameters I am trying to figure out how to automate an excel macro with an unknown number of parameters. I doubt it is possible but I thought I would ask. If you want to run a macro in Excel you have to get a pointer to the workbook. You then use the syntax: xlBook.Application.Run "MacroName", "string parameter 1", intParameter2, etc In other words, you can pass as many parameters as the macro needs. So... I have long ago written a class (of course) that wraps Excel functionality. It can open, modify, close etc an Excel workbook. An excellent example BTW of where it is useful to create a class that does not inherit anything. To my knowledge even .Net cannot inherit an Excel application. So one of the methods of this class can run a macro in the workbook. However to this point it can only automate a macro that does not take parameters. I want to add a ParamArray to my method to feed in parameters to be sent to the macro. The only way I can see to do this (and it is UGLY) is to build a case statement that looks at how many variables are in the paramarray and just select a different xlbook.Application.Run statement: (pseudocode) select case ubound(MyParamArray) case 1 xlBook.Application.Run "MacroName", MyParamArray(0) case 2 xlBook.Application.Run "MacroName", MyParamArray(0), MyParamArray(1) case 3 xlBook.Application.Run "MacroName", MyParamArray(0), MyParamArray(1), MyParamArray(3) end select Do that for a number that would meet most cases and punt. I HATE punting! Has anyone ever solved the problem of passing the contents of a ParamArray to another object that accepts a paramarray? -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ################################################################################ If you have received this message in error, please contact the sender immediately and be aware that the use, copying, or dissemination of this information is prohibited. This email transmission contains information from NCI Information Systems, Inc. that may be considered privileged or confidential and is intended solely for the named recipient. ################################################################################ From jwcolby at colbyconsulting.com Fri Feb 27 10:08:43 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 27 Feb 2009 11:08:43 -0500 Subject: [AccessD] Automate Excel macro with parameters In-Reply-To: <7E02B06E41E5404589EDDDA2BAA1C5A86BD75D@sanex101.nciinc.com> References: <49A7FDCA.7080603@colbyconsulting.com> <7E02B06E41E5404589EDDDA2BAA1C5A86BD75D@sanex101.nciinc.com> Message-ID: <49A8100B.3000201@colbyconsulting.com> Well, that works but of course that is another manual labor task. Even more importantly the spreadsheet is a template. I just found a need to modify the template and add yet another piece. If the code lives in the template then I modify the template, not my access database. The whole point of an Excel Wrapper class is: 1) The syntax is arcane if you do not use Excel 2) It allows the Access developer (me) to do things with an Excel workbook / sheet by just calling methods of a class, passing in parameters. 3) It allows me to set up Excel operations and click a button in access to do those things. I have an Excel spreadsheet with 16 tabs which I populate with numbers from 16 views out in SQL Server. I can then attach that spreadsheet to an email and send it off to a client. I created a macro in the spreadsheet to fill in the pages, but the macro needs the name of the server and the name of the database in that server. Every time I do this I have to open the spreadsheet, click tools / Macro / vbEditor, find the macro that I want, call it from the debug window passing the name of the server and database etc. It is already way better than the cut and paste each sheet from the view over in SQL, which is what I used to do, but it would be even better if I could simply press an "excel" button in my Access form and the spreadsheet opens and the macro runs. In fact I have done what I need by pulling the code out of my excel class wrapper and calling the workbook object inside of my access function, but that is ugly, and I have to do the same thing any time (in any code) that I run into a macro with parameters. I have run into other places where I want to pass a paramarray off to another function that expects a paramarray. Unfortunately what happens is that the paramarray gets passed into the destination as an array, not a lit of items in that array, and the receiving function does not know what to do with the array. Sigh. John W. Colby www.ColbyConsulting.com Hewson, Jim wrote: > If the Excel macro is always the same one, why not pull the code into > Access and wrap it into a function? > Call the function each time you want to change the parameters. > > Jim > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 27, 2009 8:51 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Automate Excel macro with parameters > > I am trying to figure out how to automate an excel macro with an unknown > number of parameters. I > doubt it is possible but I thought I would ask. > > If you want to run a macro in Excel you have to get a pointer to the > workbook. You then use the syntax: > > xlBook.Application.Run "MacroName", "string parameter 1", > intParameter2, etc > > In other words, you can pass as many parameters as the macro needs. > So... > > I have long ago written a class (of course) that wraps Excel > functionality. It can open, modify, > close etc an Excel workbook. An excellent example BTW of where it is > useful to create a class that > does not inherit anything. To my knowledge even .Net cannot inherit an > Excel application. > > So one of the methods of this class can run a macro in the workbook. > However to this point it can > only automate a macro that does not take parameters. I want to add a > ParamArray to my method to > feed in parameters to be sent to the macro. > > The only way I can see to do this (and it is UGLY) is to build a case > statement that looks at how > many variables are in the paramarray and just select a different > xlbook.Application.Run statement: > > (pseudocode) > > select case ubound(MyParamArray) > case 1 > xlBook.Application.Run "MacroName", MyParamArray(0) > case 2 > xlBook.Application.Run "MacroName", MyParamArray(0), > MyParamArray(1) > case 3 > xlBook.Application.Run "MacroName", MyParamArray(0), > MyParamArray(1), MyParamArray(3) > end select > > Do that for a number that would meet most cases and punt. > > I HATE punting! > > Has anyone ever solved the problem of passing the contents of a > ParamArray to another object that > accepts a paramarray? > From mcp2004 at mail.ru Fri Feb 27 11:04:33 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Fri, 27 Feb 2009 20:04:33 +0300 Subject: [AccessD] =?koi8-r?b?QXV0b21hdGUgRXhjZWwgbWFjcm8gd2l0aCBwYXJhbWV0?= =?koi8-r?b?ZXJz?= In-Reply-To: <49A8100B.3000201@colbyconsulting.com> References: <49A8100B.3000201@colbyconsulting.com> Message-ID: Hi John, Why not: 1. a) Write parameterrs into a simple text file with each parameters on a separate line in MS Access VBA... b) Read parameters from text file in MS Excel VBA(?) macro? If you run many instances of MS Excel then you can make different text files with parameters for different instances, and pass the name/fullpath of this file as the only parameter in your xlBook.Application.Run call OR 2. Start MS Excel instance using Shell(...) and command line then you can pass as many custom params as you wish I suppose (needs checking) BTW, for the case when ParamArray should be passed through as another ParamArray I always used static Select Case as in your below sample - and I had I believe up to 30 params to pass this way - never had any issues with that - that coding style is looking ugly - yes - but it works well :) Thank you. -- Shamil -----Original Message----- From: jwcolby To: Access Developers discussion and problem solving Date: Fri, 27 Feb 2009 11:08:43 -0500 Subject: Re: [AccessD] Automate Excel macro with parameters > Well, that works but of course that is another manual labor task. Even more importantly the > spreadsheet is a template. I just found a need to modify the template and add yet another piece. > If the code lives in the template then I modify the template, not my access database. > > The whole point of an Excel Wrapper class is: > > 1) The syntax is arcane if you do not use Excel > 2) It allows the Access developer (me) to do things with an Excel workbook / sheet by just calling > methods of a class, passing in parameters. > 3) It allows me to set up Excel operations and click a button in access to do those things. > > I have an Excel spreadsheet with 16 tabs which I populate with numbers from 16 views out in SQL > Server. I can then attach that spreadsheet to an email and send it off to a client. I created a > macro in the spreadsheet to fill in the pages, but the macro needs the name of the server and the > name of the database in that server. > > Every time I do this I have to open the spreadsheet, click tools / Macro / vbEditor, find the macro > that I want, call it from the debug window passing the name of the server and database etc. It is > already way better than the cut and paste each sheet from the view over in SQL, which is what I used > to do, but it would be even better if I could simply press an "excel" button in my Access form and > the spreadsheet opens and the macro runs. > > In fact I have done what I need by pulling the code out of my excel class wrapper and calling the > workbook object inside of my access function, but that is ugly, and I have to do the same thing any > time (in any code) that I run into a macro with parameters. > > I have run into other places where I want to pass a paramarray off to another function that expects > a paramarray. Unfortunately what happens is that the paramarray gets passed into the destination as > an array, not a lit of items in that array, and the receiving function does not know what to do with > the array. Sigh. > > John W. Colby > www.ColbyConsulting.com > > > Hewson, Jim wrote: > > If the Excel macro is always the same one, why not pull the code into > > Access and wrap it into a function? > > Call the function each time you want to change the parameters. > > > > Jim > > > > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > > Sent: Friday, February 27, 2009 8:51 AM > > To: Access Developers discussion and problem solving > > Subject: [AccessD] Automate Excel macro with parameters > > > > I am trying to figure out how to automate an excel macro with an unknown > > number of parameters. I > > doubt it is possible but I thought I would ask. > > > > If you want to run a macro in Excel you have to get a pointer to the > > workbook. You then use the syntax: > > > > xlBook.Application.Run "MacroName", "string parameter 1", > > intParameter2, etc > > > > In other words, you can pass as many parameters as the macro needs. > > So... > > > > I have long ago written a class (of course) that wraps Excel > > functionality. It can open, modify, > > close etc an Excel workbook. An excellent example BTW of where it is > > useful to create a class that > > does not inherit anything. To my knowledge even .Net cannot inherit an > > Excel application. > > > > So one of the methods of this class can run a macro in the workbook. > > However to this point it can > > only automate a macro that does not take parameters. I want to add a > > ParamArray to my method to > > feed in parameters to be sent to the macro. > > > > The only way I can see to do this (and it is UGLY) is to build a case > > statement that looks at how > > many variables are in the paramarray and just select a different > > xlbook.Application.Run statement: > > > > (pseudocode) > > > > select case ubound(MyParamArray) > > case 1 > > xlBook.Application.Run "MacroName", MyParamArray(0) > > case 2 > > xlBook.Application.Run "MacroName", MyParamArray(0), > > MyParamArray(1) > > case 3 > > xlBook.Application.Run "MacroName", MyParamArray(0), > > MyParamArray(1), MyParamArray(3) > > end select > > > > Do that for a number that would meet most cases and punt. > > > > I HATE punting! > > > > Has anyone ever solved the problem of passing the contents of a > > ParamArray to another object that > > accepts a paramarray? > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Fri Feb 27 11:35:53 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 27 Feb 2009 12:35:53 -0500 Subject: [AccessD] Automate Excel macro with parameters In-Reply-To: References: <49A8100B.3000201@colbyconsulting.com> Message-ID: <49A82479.5050802@colbyconsulting.com> Shamil, Thanks for the response. The parameters in a text file sounds almost as ugly as case statement. My Excel class is expecting to be able to do things with an Excel application, open a worksheet, poke values out to cells and so forth. That syntax I quoted appears to pick up the existing and already open Excel application instance, it is not opening a new Excel application (AFAICT). In my own code if I need to process a param array passed in I can do that but in this case it is a method of a class in Excel and that method simply doesn't know what to do with an array passed in. The case sounds like the answer. I hate ugly almost as much as I hate punting. John W. Colby www.ColbyConsulting.com Salakhetdinov Shamil wrote: > Hi John, > > Why not: > > 1. a) Write parameterrs into a simple text file with each parameters on a separate line in MS Access VBA... > b) Read parameters from text file in MS Excel VBA(?) macro? > > If you run many instances of MS Excel then you can make different text files with parameters for different instances, and pass the name/fullpath of this file as the only parameter in your xlBook.Application.Run call > > OR > > 2. Start MS Excel instance using Shell(...) and command line then you can pass as many custom params as you wish I suppose (needs checking) > > BTW, for the case when ParamArray should be passed through as another ParamArray I always used static Select Case as in your below sample - and I had I believe up to 30 params to pass this way - never had any issues with that - that coding style is looking ugly - yes - but it works well :) > > Thank you. > > -- > Shamil From markamatte at hotmail.com Fri Feb 27 11:58:44 2009 From: markamatte at hotmail.com (Mark A Matte) Date: Fri, 27 Feb 2009 17:58:44 +0000 Subject: [AccessD] Automate Excel macro with parameters In-Reply-To: <49A8100B.3000201@colbyconsulting.com> References: <49A7FDCA.7080603@colbyconsulting.com> <7E02B06E41E5404589EDDDA2BAA1C5A86BD75D@sanex101.nciinc.com> <49A8100B.3000201@colbyconsulting.com> Message-ID: John, I had an MDB that pulled some data from different sources...exported to several different tabs in an Excel document...and then formatted each sheet. Just curious...is there a benefit to having excel get the data and format vs. Access getting the data, exporting, and formatting the sheets? Thanks, Mark > Date: Fri, 27 Feb 2009 11:08:43 -0500 > From: jwcolby at colbyconsulting.com > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Automate Excel macro with parameters > > Well, that works but of course that is another manual labor task. Even more importantly the > spreadsheet is a template. I just found a need to modify the template and add yet another piece. > If the code lives in the template then I modify the template, not my access database. > > The whole point of an Excel Wrapper class is: > > 1) The syntax is arcane if you do not use Excel > 2) It allows the Access developer (me) to do things with an Excel workbook / sheet by just calling > methods of a class, passing in parameters. > 3) It allows me to set up Excel operations and click a button in access to do those things. > > I have an Excel spreadsheet with 16 tabs which I populate with numbers from 16 views out in SQL > Server. I can then attach that spreadsheet to an email and send it off to a client. I created a > macro in the spreadsheet to fill in the pages, but the macro needs the name of the server and the > name of the database in that server. > > Every time I do this I have to open the spreadsheet, click tools / Macro / vbEditor, find the macro > that I want, call it from the debug window passing the name of the server and database etc. It is > already way better than the cut and paste each sheet from the view over in SQL, which is what I used > to do, but it would be even better if I could simply press an "excel" button in my Access form and > the spreadsheet opens and the macro runs. > > In fact I have done what I need by pulling the code out of my excel class wrapper and calling the > workbook object inside of my access function, but that is ugly, and I have to do the same thing any > time (in any code) that I run into a macro with parameters. > > I have run into other places where I want to pass a paramarray off to another function that expects > a paramarray. Unfortunately what happens is that the paramarray gets passed into the destination as > an array, not a lit of items in that array, and the receiving function does not know what to do with > the array. Sigh. > > John W. Colby > www.ColbyConsulting.com > > > Hewson, Jim wrote: > > If the Excel macro is always the same one, why not pull the code into > > Access and wrap it into a function? > > Call the function each time you want to change the parameters. > > > > Jim > > > > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > > Sent: Friday, February 27, 2009 8:51 AM > > To: Access Developers discussion and problem solving > > Subject: [AccessD] Automate Excel macro with parameters > > > > I am trying to figure out how to automate an excel macro with an unknown > > number of parameters. I > > doubt it is possible but I thought I would ask. > > > > If you want to run a macro in Excel you have to get a pointer to the > > workbook. You then use the syntax: > > > > xlBook.Application.Run "MacroName", "string parameter 1", > > intParameter2, etc > > > > In other words, you can pass as many parameters as the macro needs. > > So... > > > > I have long ago written a class (of course) that wraps Excel > > functionality. It can open, modify, > > close etc an Excel workbook. An excellent example BTW of where it is > > useful to create a class that > > does not inherit anything. To my knowledge even .Net cannot inherit an > > Excel application. > > > > So one of the methods of this class can run a macro in the workbook. > > However to this point it can > > only automate a macro that does not take parameters. I want to add a > > ParamArray to my method to > > feed in parameters to be sent to the macro. > > > > The only way I can see to do this (and it is UGLY) is to build a case > > statement that looks at how > > many variables are in the paramarray and just select a different > > xlbook.Application.Run statement: > > > > (pseudocode) > > > > select case ubound(MyParamArray) > > case 1 > > xlBook.Application.Run "MacroName", MyParamArray(0) > > case 2 > > xlBook.Application.Run "MacroName", MyParamArray(0), > > MyParamArray(1) > > case 3 > > xlBook.Application.Run "MacroName", MyParamArray(0), > > MyParamArray(1), MyParamArray(3) > > end select > > > > Do that for a number that would meet most cases and punt. > > > > I HATE punting! > > > > Has anyone ever solved the problem of passing the contents of a > > ParamArray to another object that > > accepts a paramarray? > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com _________________________________________________________________ Windows Live? Hotmail??more than just e-mail. http://windowslive.com/howitworks?ocid=TXT_TAGLM_WL_t2_hm_justgotbetter_howitworks_022009 From tinanfields at torchlake.com Fri Feb 27 12:22:06 2009 From: tinanfields at torchlake.com (tinanfields at torchlake.com) Date: Fri, 27 Feb 2009 13:22:06 -0500 Subject: [AccessD] Make Multiple Selections on a Form and Create a Record for Each Message-ID: <62522b507df940af8dbf9822546dcb52.tinanfields@torchlake.com> I hope the subject line isn't too confusing :) Here's the situation: volunteers fill out a paper form indicating which skills they have and at what level (1 to 3, with 1 being high). When this database was built (1999), the developer crafted a macro that added one record for every possible skill (32, so far) to the table of volunteers and skills. The data-entry person then went down the rows, clicking the ones that were to be selected, and entering the skill level number. This results in lots of empty records. Since then, the database crashed and the macro no longer works anyway. I want to craft a form with a checkbox for each skill and a drop-list of the skill-levels, so the data-entry person can click the checkbox and select the skill level - then click a button that will place one record for each skill selected into the table of volunteers and skills. This gives the data entry person the same ease of entry, but does not create lots of empty records. I saw something in the ADH that captures the number of selections made, and I'm guessing I need to start there, but I could sure use some inspiration on this. If three skills are checked, I want three records entered for that volunteer in the volunteers and skills table - each one referencing one of the selected skills. Thanks for any ideas. Tina From jwcolby at colbyconsulting.com Fri Feb 27 12:22:57 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 27 Feb 2009 13:22:57 -0500 Subject: [AccessD] Automate Excel macro with parameters In-Reply-To: References: <49A7FDCA.7080603@colbyconsulting.com> <7E02B06E41E5404589EDDDA2BAA1C5A86BD75D@sanex101.nciinc.com> <49A8100B.3000201@colbyconsulting.com> Message-ID: <49A82F81.4010502@colbyconsulting.com> Mark, > Just curious...is there a benefit to having excel get the data and format vs. Access getting the data, exporting, and formatting the sheets? Well... That is a quasi-philosophical argument with touches of realism. In general (given I am not an Excel kinda guy) I have found it easiest to use the macro recorder to record a macro doing whatever I wanted done, apply formatting, bold, back color, whatever. Cleanup the code (the macro code is ugly) and save that as a macro. Now call the macro from Access and you are done. Create a template spreadsheet with all of the code. I wrote code in the spreadsheet to open an ado connection to SQL Server given a server name and database name. Then I open a recordset right in Excel. Iterating the recordset I pull the data and stuff it into cells. Not spectacularly fast, and perhaps even entirely inefficient, however it works. When I do not know what I am doing, I am all about getting it working, then make it better. Now that I can open the recordset and populate a single spreadsheet, I call that same code over and over, changing the name of the sheet and the view back in SQL Server. When I am done I have a spreadsheet with about 17 sheets filled out, and formatted the way I like. Doing it inside of Excel allows me to instantly look back at the sheet and SEE what I just did or didn't do. Just click on the tabs. I don't even need Access open to get the spreadsheet working. If you do it in Access, you are writing / correcting your code in Access, and playing with Excel to see it. This spreadsheet tells the client the details about the order I just processed. I used to actually go run the views in SQL Server, then cut and paste the result sets into the pages of the workbook. I got the spreadsheet automatically importing the data into the sheets and have been using it for a couple of months. I just had to copy / rename / open the template, then manually execute the code that fills the pages. MUCH better than having to manually execute views back in SQL Server and cut/paste the results into the sheets. I finally got the time to automate copy / renaming the template, and then opening the spreadsheet from a form I already use as part of my order process for the client. One more piece automated. Filling an order used to take me most of a day. It now takes me about two to four hours, depending on complexity. Someday it will get down to as little as an hour. It will probably never fall below that because the rest is configuring views out in SQL Server. John W. Colby www.ColbyConsulting.com Mark A Matte wrote: > John, > > > > I had an MDB that pulled some data from different sources...exported to several different tabs in an Excel document...and then formatted each sheet. > > > > Just curious...is there a benefit to having excel get the data and format vs. Access getting the data, exporting, and formatting the sheets? > > > > Thanks, > > > > Mark > > > > > >> Date: Fri, 27 Feb 2009 11:08:43 -0500 >> From: jwcolby at colbyconsulting.com >> To: accessd at databaseadvisors.com >> Subject: Re: [AccessD] Automate Excel macro with parameters >> >> Well, that works but of course that is another manual labor task. Even more importantly the >> spreadsheet is a template. I just found a need to modify the template and add yet another piece. >> If the code lives in the template then I modify the template, not my access database. >> >> The whole point of an Excel Wrapper class is: >> >> 1) The syntax is arcane if you do not use Excel >> 2) It allows the Access developer (me) to do things with an Excel workbook / sheet by just calling >> methods of a class, passing in parameters. >> 3) It allows me to set up Excel operations and click a button in access to do those things. >> >> I have an Excel spreadsheet with 16 tabs which I populate with numbers from 16 views out in SQL >> Server. I can then attach that spreadsheet to an email and send it off to a client. I created a >> macro in the spreadsheet to fill in the pages, but the macro needs the name of the server and the >> name of the database in that server. >> >> Every time I do this I have to open the spreadsheet, click tools / Macro / vbEditor, find the macro >> that I want, call it from the debug window passing the name of the server and database etc. It is >> already way better than the cut and paste each sheet from the view over in SQL, which is what I used >> to do, but it would be even better if I could simply press an "excel" button in my Access form and >> the spreadsheet opens and the macro runs. >> >> In fact I have done what I need by pulling the code out of my excel class wrapper and calling the >> workbook object inside of my access function, but that is ugly, and I have to do the same thing any >> time (in any code) that I run into a macro with parameters. >> >> I have run into other places where I want to pass a paramarray off to another function that expects >> a paramarray. Unfortunately what happens is that the paramarray gets passed into the destination as >> an array, not a lit of items in that array, and the receiving function does not know what to do with >> the array. Sigh. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Hewson, Jim wrote: >>> If the Excel macro is always the same one, why not pull the code into >>> Access and wrap it into a function? >>> Call the function each time you want to change the parameters. >>> >>> Jim >>> >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>> Sent: Friday, February 27, 2009 8:51 AM >>> To: Access Developers discussion and problem solving >>> Subject: [AccessD] Automate Excel macro with parameters >>> >>> I am trying to figure out how to automate an excel macro with an unknown >>> number of parameters. I >>> doubt it is possible but I thought I would ask. >>> >>> If you want to run a macro in Excel you have to get a pointer to the >>> workbook. You then use the syntax: >>> >>> xlBook.Application.Run "MacroName", "string parameter 1", >>> intParameter2, etc >>> >>> In other words, you can pass as many parameters as the macro needs. >>> So... >>> >>> I have long ago written a class (of course) that wraps Excel >>> functionality. It can open, modify, >>> close etc an Excel workbook. An excellent example BTW of where it is >>> useful to create a class that >>> does not inherit anything. To my knowledge even .Net cannot inherit an >>> Excel application. >>> >>> So one of the methods of this class can run a macro in the workbook. >>> However to this point it can >>> only automate a macro that does not take parameters. I want to add a >>> ParamArray to my method to >>> feed in parameters to be sent to the macro. >>> >>> The only way I can see to do this (and it is UGLY) is to build a case >>> statement that looks at how >>> many variables are in the paramarray and just select a different >>> xlbook.Application.Run statement: >>> >>> (pseudocode) >>> >>> select case ubound(MyParamArray) >>> case 1 >>> xlBook.Application.Run "MacroName", MyParamArray(0) >>> case 2 >>> xlBook.Application.Run "MacroName", MyParamArray(0), >>> MyParamArray(1) >>> case 3 >>> xlBook.Application.Run "MacroName", MyParamArray(0), >>> MyParamArray(1), MyParamArray(3) >>> end select >>> >>> Do that for a number that would meet most cases and punt. >>> >>> I HATE punting! >>> >>> Has anyone ever solved the problem of passing the contents of a >>> ParamArray to another object that >>> accepts a paramarray? >>> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com > > _________________________________________________________________ > Windows Live? Hotmail??more than just e-mail. > http://windowslive.com/howitworks?ocid=TXT_TAGLM_WL_t2_hm_justgotbetter_howitworks_022009 From dwaters at usinternet.com Fri Feb 27 12:34:40 2009 From: dwaters at usinternet.com (Dan Waters) Date: Fri, 27 Feb 2009 12:34:40 -0600 Subject: [AccessD] Make Multiple Selections on a Form and Create a Record for Each In-Reply-To: <62522b507df940af8dbf9822546dcb52.tinanfields@torchlake.com> References: <62522b507df940af8dbf9822546dcb52.tinanfields@torchlake.com> Message-ID: <9EB89FFF93F8418C902338BF8C92C59D@danwaters> Hi Tina, You will want three tables: tblVolunteers, tblVolunteerSkills, and tblSkills. tblSkills will be a lookup table. tblVolunteers will be a primary table and tblVolunteerSkills will be a subtable with a one-to-may relationship. In your form, I would recommend using a dropdown list to select a Skill, and radio buttons for the Skill Level. The reason for this is that it's likely that you'll want to add/change/remove the Skills, and it's less likely that you'll want to increase or decrease the number of skill levels that you'll want to record. To change the Skills, you just need to get into the tblSkills table, and not make any form or code changes. You'll also want to have a form for Volunteers (bound to tblVolunteers), and a subform for the Skills and Levels (bound to tblVolunteerSkills). Hope this helps! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of tinanfields at torchlake.com Sent: Friday, February 27, 2009 12:22 PM To: AccessD at databaseadvisors.com Subject: [AccessD] Make Multiple Selections on a Form and Create a Record for Each I hope the subject line isn't too confusing :) Here's the situation: volunteers fill out a paper form indicating which skills they have and at what level (1 to 3, with 1 being high). When this database was built (1999), the developer crafted a macro that added one record for every possible skill (32, so far) to the table of volunteers and skills. The data-entry person then went down the rows, clicking the ones that were to be selected, and entering the skill level number. This results in lots of empty records. Since then, the database crashed and the macro no longer works anyway. I want to craft a form with a checkbox for each skill and a drop-list of the skill-levels, so the data-entry person can click the checkbox and select the skill level - then click a button that will place one record for each skill selected into the table of volunteers and skills. This gives the data entry person the same ease of entry, but does not create lots of empty records. I saw something in the ADH that captures the number of selections made, and I'm guessing I need to start there, but I could sure use some inspiration on this. If three skills are checked, I want three records entered for that volunteer in the volunteers and skills table - each one referencing one of the selected skills. Thanks for any ideas. Tina -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From mcp2004 at mail.ru Fri Feb 27 12:50:33 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Fri, 27 Feb 2009 21:50:33 +0300 Subject: [AccessD] =?koi8-r?b?QXV0b21hdGUgRXhjZWwgbWFjcm8gd2l0aCBwYXJhbWV0?= =?koi8-r?b?ZXJz?= In-Reply-To: <49A82479.5050802@colbyconsulting.com> References: <49A82479.5050802@colbyconsulting.com> Message-ID: John, You can also try to use XML serialization/deserialization using MS XML Core Services (MSXMLxx.dll it's installed with IE/MS Office 2003/2007 or you can get it installed manually). But if your static Select Case solution is already written and works OK I'd not change anything. As for formatting your excel output - if the output format is of fixed width and height then you can just copy and paste the whole template in XL macro VBA code... As for getting data from MS SQL and putting them into XL speardsheet - you can use ADO recordset to put its data into all adjacent cells almost instantly by one VBA code line using CopyFromRecordSet method of XL Range object http://msdn.microsoft.com/de-de/library/microsoft.office.interop.excel.range.copyfromrecordset.aspx Well, you might be doing that already. BTW, that could be another option to pass variable qty of params using disconnected/manually built ADO recordsets: I mean you can just create ADO recordset instance in VBA code and define as many fields as you need set their values as params - then you can pass this ADO recordset instance to MS Excel instance as parameter.... Thank you. -- Shamil -----Original Message----- From: jwcolby To: Access Developers discussion and problem solving Date: Fri, 27 Feb 2009 12:35:53 -0500 Subject: Re: [AccessD] Automate Excel macro with parameters > Shamil, > > Thanks for the response. The parameters in a text file sounds almost as ugly as case statement. > > My Excel class is expecting to be able to do things with an Excel application, open a worksheet, > poke values out to cells and so forth. That syntax I quoted appears to pick up the existing and > already open Excel application instance, it is not opening a new Excel application (AFAICT). > > In my own code if I need to process a param array passed in I can do that but in this case it is a > method of a class in Excel and that method simply doesn't know what to do with an array passed in. > The case sounds like the answer. > > I hate ugly almost as much as I hate punting. > > John W. Colby > www.ColbyConsulting.com > > > Salakhetdinov Shamil wrote: > > Hi John, > > > > Why not: > > > > 1. a) Write parameterrs into a simple text file with each parameters on a separate line in MS Access VBA... > > b) Read parameters from text file in MS Excel VBA(?) macro? > > > > If you run many instances of MS Excel then you can make different text files with parameters for different instances, and pass the name/fullpath of this file as the only parameter in your xlBook.Application.Run call > > > > OR > > > > 2. Start MS Excel instance using Shell(...) and command line then you can pass as many custom params as you wish I suppose (needs checking) > > > > BTW, for the case when ParamArray should be passed through as another ParamArray I always used static Select Case as in your below sample - and I had I believe up to 30 params to pass this way - never had any issues with that - that coding style is looking ugly - yes - but it works well :) > > > > Thank you. > > > > -- > > Shamil > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From marksimms at verizon.net Fri Feb 27 12:52:03 2009 From: marksimms at verizon.net (Mark Simms) Date: Fri, 27 Feb 2009 13:52:03 -0500 Subject: [AccessD] Automate Excel macro with parameters In-Reply-To: <49A82F81.4010502@colbyconsulting.com> References: <49A7FDCA.7080603@colbyconsulting.com> <7E02B06E41E5404589EDDDA2BAA1C5A86BD75D@sanex101.nciinc.com> <49A8100B.3000201@colbyconsulting.com> <49A82F81.4010502@colbyconsulting.com> Message-ID: <005c01c9990c$7b07dd20$0301a8c0@MSIMMSWS> Hey John - did you try Application.Evalute ? Here's a quick and dirty example... Private Sub testevS(ParamArray parms() As Variant) Dim i As Long Dim strMsg As String For i = LBound(parms) To UBound(parms) - 1 strMsg = strMsg & parms(i) & "," Next strMsg = strMsg & parms(i) MsgBox "sub parms=" & strMsg End Sub Sub testeval() Application.Evaluate ("testevS(" & """x""" & ",123" & ")") End Sub > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 27, 2009 1:23 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Automate Excel macro with parameters > > Mark, > > > Just curious...is there a benefit to having excel get the > data and format vs. Access getting the data, exporting, and > formatting the sheets? > > > Well... > > That is a quasi-philosophical argument with touches of realism. > > In general (given I am not an Excel kinda guy) I have found > it easiest to use the macro recorder to > record a macro doing whatever I wanted done, apply > formatting, bold, back color, whatever. Cleanup > the code (the macro code is ugly) and save that as a macro. > Now call the macro from Access and you > are done. Create a template spreadsheet with all of the code. > > I wrote code in the spreadsheet to open an ado connection to > SQL Server given a server name and > database name. Then I open a recordset right in Excel. > Iterating the recordset I pull the data and > stuff it into cells. Not spectacularly fast, and perhaps > even entirely inefficient, however it > works. When I do not know what I am doing, I am all about > getting it working, then make it better. > > Now that I can open the recordset and populate a single > spreadsheet, I call that same code over and > over, changing the name of the sheet and the view back in SQL Server. > > When I am done I have a spreadsheet with about 17 sheets > filled out, and formatted the way I like. > > Doing it inside of Excel allows me to instantly look back at > the sheet and SEE what I just did or > didn't do. Just click on the tabs. I don't even need Access > open to get the spreadsheet working. > > If you do it in Access, you are writing / correcting your > code in Access, and playing with Excel to > see it. > > This spreadsheet tells the client the details about the order > I just processed. I used to actually > go run the views in SQL Server, then cut and paste the result > sets into the pages of the workbook. > I got the spreadsheet automatically importing the data into > the sheets and have been using it for a > couple of months. I just had to copy / rename / open the > template, then manually execute the code > that fills the pages. MUCH better than having to manually > execute views back in SQL Server and > cut/paste the results into the sheets. > > I finally got the time to automate copy / renaming the > template, and then opening the spreadsheet > from a form I already use as part of my order process for the client. > > One more piece automated. > > Filling an order used to take me most of a day. It now takes > me about two to four hours, depending > on complexity. Someday it will get down to as little as an > hour. It will probably never fall below > that because the rest is configuring views out in SQL Server. > > John W. Colby > www.ColbyConsulting.com > > > Mark A Matte wrote: > > John, > > > > > > > > I had an MDB that pulled some data from different > sources...exported to several different tabs in an Excel > document...and then formatted each sheet. > > > > > > > > Just curious...is there a benefit to having excel get the > data and format vs. Access getting the data, exporting, and > formatting the sheets? > > > > > > > > Thanks, > > > > > > > > Mark > > > > > > > > > > > >> Date: Fri, 27 Feb 2009 11:08:43 -0500 > >> From: jwcolby at colbyconsulting.com > >> To: accessd at databaseadvisors.com > >> Subject: Re: [AccessD] Automate Excel macro with parameters > >> > >> Well, that works but of course that is another manual > labor task. Even more importantly the > >> spreadsheet is a template. I just found a need to modify > the template and add yet another piece. > >> If the code lives in the template then I modify the > template, not my access database. > >> > >> The whole point of an Excel Wrapper class is: > >> > >> 1) The syntax is arcane if you do not use Excel > >> 2) It allows the Access developer (me) to do things with > an Excel workbook / sheet by just calling > >> methods of a class, passing in parameters. > >> 3) It allows me to set up Excel operations and click a > button in access to do those things. > >> > >> I have an Excel spreadsheet with 16 tabs which I populate > with numbers from 16 views out in SQL > >> Server. I can then attach that spreadsheet to an email and > send it off to a client. I created a > >> macro in the spreadsheet to fill in the pages, but the > macro needs the name of the server and the > >> name of the database in that server. > >> > >> Every time I do this I have to open the spreadsheet, click > tools / Macro / vbEditor, find the macro > >> that I want, call it from the debug window passing the > name of the server and database etc. It is > >> already way better than the cut and paste each sheet from > the view over in SQL, which is what I used > >> to do, but it would be even better if I could simply press > an "excel" button in my Access form and > >> the spreadsheet opens and the macro runs. > >> > >> In fact I have done what I need by pulling the code out of > my excel class wrapper and calling the > >> workbook object inside of my access function, but that is > ugly, and I have to do the same thing any > >> time (in any code) that I run into a macro with parameters. > >> > >> I have run into other places where I want to pass a > paramarray off to another function that expects > >> a paramarray. Unfortunately what happens is that the > paramarray gets passed into the destination as > >> an array, not a lit of items in that array, and the > receiving function does not know what to do with > >> the array. Sigh. > >> > >> John W. Colby > >> www.ColbyConsulting.com > >> > >> > >> Hewson, Jim wrote: > >>> If the Excel macro is always the same one, why not pull > the code into > >>> Access and wrap it into a function? > >>> Call the function each time you want to change the parameters. > >>> > >>> Jim > >>> > >>> > >>> -----Original Message----- > >>> From: accessd-bounces at databaseadvisors.com > >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > >>> Sent: Friday, February 27, 2009 8:51 AM > >>> To: Access Developers discussion and problem solving > >>> Subject: [AccessD] Automate Excel macro with parameters > >>> > >>> I am trying to figure out how to automate an excel macro > with an unknown > >>> number of parameters. I > >>> doubt it is possible but I thought I would ask. > >>> > >>> If you want to run a macro in Excel you have to get a > pointer to the > >>> workbook. You then use the syntax: > >>> > >>> xlBook.Application.Run "MacroName", "string parameter 1", > >>> intParameter2, etc > >>> > >>> In other words, you can pass as many parameters as the > macro needs. > >>> So... > >>> > >>> I have long ago written a class (of course) that wraps Excel > >>> functionality. It can open, modify, > >>> close etc an Excel workbook. An excellent example BTW of > where it is > >>> useful to create a class that > >>> does not inherit anything. To my knowledge even .Net > cannot inherit an > >>> Excel application. > >>> > >>> So one of the methods of this class can run a macro in > the workbook. > >>> However to this point it can > >>> only automate a macro that does not take parameters. I > want to add a > >>> ParamArray to my method to > >>> feed in parameters to be sent to the macro. > >>> > >>> The only way I can see to do this (and it is UGLY) is to > build a case > >>> statement that looks at how > >>> many variables are in the paramarray and just select a different > >>> xlbook.Application.Run statement: > >>> > >>> (pseudocode) > >>> > >>> select case ubound(MyParamArray) > >>> case 1 > >>> xlBook.Application.Run "MacroName", MyParamArray(0) > >>> case 2 > >>> xlBook.Application.Run "MacroName", MyParamArray(0), > >>> MyParamArray(1) > >>> case 3 > >>> xlBook.Application.Run "MacroName", MyParamArray(0), > >>> MyParamArray(1), MyParamArray(3) > >>> end select > >>> > >>> Do that for a number that would meet most cases and punt. > >>> > >>> I HATE punting! > >>> > >>> Has anyone ever solved the problem of passing the contents of a > >>> ParamArray to another object that > >>> accepts a paramarray? > >>> > >> -- > >> AccessD mailing list > >> AccessD at databaseadvisors.com > >> http://databaseadvisors.com/mailman/listinfo/accessd > >> Website: http://www.databaseadvisors.com > > > > _________________________________________________________________ > > Windows LiveT HotmailR.more than just e-mail. > > > http://windowslive.com/howitworks?ocid=TXT_TAGLM_WL_t2_hm_just gotbetter_howitworks_022009 > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From mcp2004 at mail.ru Fri Feb 27 12:56:19 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Fri, 27 Feb 2009 21:56:19 +0300 Subject: [AccessD] =?koi8-r?b?QXV0b21hdGUgRXhjZWwgbWFjcm8gd2l0aCBwYXJhbWV0?= =?koi8-r?b?ZXJz?= In-Reply-To: References: Message-ID: Hi Mike, When you Automate MS Excel from within MS Access VBA, especially if there are many Automation calls then on every such call under "the DCOM hood" happens a lot of COM marshaling/demarchaling "dirty" work, which is quite time consuming therefore the way John does his Automation is the most efficient in my opinion although it would be not that easy to control what happening on MS Excel VBA macro side, how to properly handle runtime errors on that side if any etc... -- Shamil -----Original Message----- From: Mark A Matte To: Date: Fri, 27 Feb 2009 17:58:44 +0000 Subject: Re: [AccessD] Automate Excel macro with parameters > > John, > > > > I had an MDB that pulled some data from different sources...exported to several different tabs in an Excel document...and then formatted each sheet. > > > > Just curious...is there a benefit to having excel get the data and format vs. Access getting the data, exporting, and formatting the sheets? > > > > Thanks, > > > > Mark > > > > > > > Date: Fri, 27 Feb 2009 11:08:43 -0500 > > From: jwcolby at colbyconsulting.com > > To: accessd at databaseadvisors.com > > Subject: Re: [AccessD] Automate Excel macro with parameters > > > > Well, that works but of course that is another manual labor task. Even more importantly the > > spreadsheet is a template. I just found a need to modify the template and add yet another piece. > > If the code lives in the template then I modify the template, not my access database. > > > > The whole point of an Excel Wrapper class is: > > > > 1) The syntax is arcane if you do not use Excel > > 2) It allows the Access developer (me) to do things with an Excel workbook / sheet by just calling > > methods of a class, passing in parameters. > > 3) It allows me to set up Excel operations and click a button in access to do those things. > > > > I have an Excel spreadsheet with 16 tabs which I populate with numbers from 16 views out in SQL > > Server. I can then attach that spreadsheet to an email and send it off to a client. I created a > > macro in the spreadsheet to fill in the pages, but the macro needs the name of the server and the > > name of the database in that server. > > > > Every time I do this I have to open the spreadsheet, click tools / Macro / vbEditor, find the macro > > that I want, call it from the debug window passing the name of the server and database etc. It is > > already way better than the cut and paste each sheet from the view over in SQL, which is what I used > > to do, but it would be even better if I could simply press an "excel" button in my Access form and > > the spreadsheet opens and the macro runs. > > > > In fact I have done what I need by pulling the code out of my excel class wrapper and calling the > > workbook object inside of my access function, but that is ugly, and I have to do the same thing any > > time (in any code) that I run into a macro with parameters. > > > > I have run into other places where I want to pass a paramarray off to another function that expects > > a paramarray. Unfortunately what happens is that the paramarray gets passed into the destination as > > an array, not a lit of items in that array, and the receiving function does not know what to do with > > the array. Sigh. > > > > John W. Colby > > www.ColbyConsulting.com > > > > > > Hewson, Jim wrote: > > > If the Excel macro is always the same one, why not pull the code into > > > Access and wrap it into a function? > > > Call the function each time you want to change the parameters. > > > > > > Jim > > > > > > > > > -----Original Message----- > > > From: accessd-bounces at databaseadvisors.com > > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > > > Sent: Friday, February 27, 2009 8:51 AM > > > To: Access Developers discussion and problem solving > > > Subject: [AccessD] Automate Excel macro with parameters > > > > > > I am trying to figure out how to automate an excel macro with an unknown > > > number of parameters. I > > > doubt it is possible but I thought I would ask. > > > > > > If you want to run a macro in Excel you have to get a pointer to the > > > workbook. You then use the syntax: > > > > > > xlBook.Application.Run "MacroName", "string parameter 1", > > > intParameter2, etc > > > > > > In other words, you can pass as many parameters as the macro needs. > > > So... > > > > > > I have long ago written a class (of course) that wraps Excel > > > functionality. It can open, modify, > > > close etc an Excel workbook. An excellent example BTW of where it is > > > useful to create a class that > > > does not inherit anything. To my knowledge even .Net cannot inherit an > > > Excel application. > > > > > > So one of the methods of this class can run a macro in the workbook. > > > However to this point it can > > > only automate a macro that does not take parameters. I want to add a > > > ParamArray to my method to > > > feed in parameters to be sent to the macro. > > > > > > The only way I can see to do this (and it is UGLY) is to build a case > > > statement that looks at how > > > many variables are in the paramarray and just select a different > > > xlbook.Application.Run statement: > > > > > > (pseudocode) > > > > > > select case ubound(MyParamArray) > > > case 1 > > > xlBook.Application.Run "MacroName", MyParamArray(0) > > > case 2 > > > xlBook.Application.Run "MacroName", MyParamArray(0), > > > MyParamArray(1) > > > case 3 > > > xlBook.Application.Run "MacroName", MyParamArray(0), > > > MyParamArray(1), MyParamArray(3) > > > end select > > > > > > Do that for a number that would meet most cases and punt. > > > > > > I HATE punting! > > > > > > Has anyone ever solved the problem of passing the contents of a > > > ParamArray to another object that > > > accepts a paramarray? > > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > _________________________________________________________________ > Windows Live Hotmail more than just e-mail. > http://windowslive.com/howitworks?ocid=TXT_TAGLM_WL_t2_hm_justgotbetter_howitworks_022009 > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Fri Feb 27 13:04:56 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 27 Feb 2009 14:04:56 -0500 Subject: [AccessD] Automate Excel macro with parameters In-Reply-To: <005c01c9990c$7b07dd20$0301a8c0@MSIMMSWS> References: <49A7FDCA.7080603@colbyconsulting.com> <7E02B06E41E5404589EDDDA2BAA1C5A86BD75D@sanex101.nciinc.com> <49A8100B.3000201@colbyconsulting.com> <49A82F81.4010502@colbyconsulting.com> <005c01c9990c$7b07dd20$0301a8c0@MSIMMSWS> Message-ID: <49A83958.4010700@colbyconsulting.com> Mark, Thanks for reminding me of that. I have used evaluate on occasion, so long ago though that I had forgotten about it. John W. Colby www.ColbyConsulting.com Mark Simms wrote: > Hey John - did you try Application.Evalute ? > Here's a quick and dirty example... > > Private Sub testevS(ParamArray parms() As Variant) > > Dim i As Long > Dim strMsg As String > For i = LBound(parms) To UBound(parms) - 1 > strMsg = strMsg & parms(i) & "," > Next > strMsg = strMsg & parms(i) > MsgBox "sub parms=" & strMsg > End Sub > > Sub testeval() > Application.Evaluate ("testevS(" & """x""" & ",123" & ")") > End Sub > >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Friday, February 27, 2009 1:23 PM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Automate Excel macro with parameters >> >> Mark, >> >> > Just curious...is there a benefit to having excel get the >> data and format vs. Access getting the data, exporting, and >> formatting the sheets? >> >> >> Well... >> >> That is a quasi-philosophical argument with touches of realism. >> >> In general (given I am not an Excel kinda guy) I have found >> it easiest to use the macro recorder to >> record a macro doing whatever I wanted done, apply >> formatting, bold, back color, whatever. Cleanup >> the code (the macro code is ugly) and save that as a macro. >> Now call the macro from Access and you >> are done. Create a template spreadsheet with all of the code. >> >> I wrote code in the spreadsheet to open an ado connection to >> SQL Server given a server name and >> database name. Then I open a recordset right in Excel. >> Iterating the recordset I pull the data and >> stuff it into cells. Not spectacularly fast, and perhaps >> even entirely inefficient, however it >> works. When I do not know what I am doing, I am all about >> getting it working, then make it better. >> >> Now that I can open the recordset and populate a single >> spreadsheet, I call that same code over and >> over, changing the name of the sheet and the view back in SQL Server. >> >> When I am done I have a spreadsheet with about 17 sheets >> filled out, and formatted the way I like. >> >> Doing it inside of Excel allows me to instantly look back at >> the sheet and SEE what I just did or >> didn't do. Just click on the tabs. I don't even need Access >> open to get the spreadsheet working. >> >> If you do it in Access, you are writing / correcting your >> code in Access, and playing with Excel to >> see it. >> >> This spreadsheet tells the client the details about the order >> I just processed. I used to actually >> go run the views in SQL Server, then cut and paste the result >> sets into the pages of the workbook. >> I got the spreadsheet automatically importing the data into >> the sheets and have been using it for a >> couple of months. I just had to copy / rename / open the >> template, then manually execute the code >> that fills the pages. MUCH better than having to manually >> execute views back in SQL Server and >> cut/paste the results into the sheets. >> >> I finally got the time to automate copy / renaming the >> template, and then opening the spreadsheet >> from a form I already use as part of my order process for the client. >> >> One more piece automated. >> >> Filling an order used to take me most of a day. It now takes >> me about two to four hours, depending >> on complexity. Someday it will get down to as little as an >> hour. It will probably never fall below >> that because the rest is configuring views out in SQL Server. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Mark A Matte wrote: >>> John, >>> >>> >>> >>> I had an MDB that pulled some data from different >> sources...exported to several different tabs in an Excel >> document...and then formatted each sheet. >>> >>> >>> Just curious...is there a benefit to having excel get the >> data and format vs. Access getting the data, exporting, and >> formatting the sheets? >>> >>> >>> Thanks, >>> >>> >>> >>> Mark >>> >>> >>> >>> >>> >>>> Date: Fri, 27 Feb 2009 11:08:43 -0500 >>>> From: jwcolby at colbyconsulting.com >>>> To: accessd at databaseadvisors.com >>>> Subject: Re: [AccessD] Automate Excel macro with parameters >>>> >>>> Well, that works but of course that is another manual >> labor task. Even more importantly the >>>> spreadsheet is a template. I just found a need to modify >> the template and add yet another piece. >>>> If the code lives in the template then I modify the >> template, not my access database. >>>> The whole point of an Excel Wrapper class is: >>>> >>>> 1) The syntax is arcane if you do not use Excel >>>> 2) It allows the Access developer (me) to do things with >> an Excel workbook / sheet by just calling >>>> methods of a class, passing in parameters. >>>> 3) It allows me to set up Excel operations and click a >> button in access to do those things. >>>> I have an Excel spreadsheet with 16 tabs which I populate >> with numbers from 16 views out in SQL >>>> Server. I can then attach that spreadsheet to an email and >> send it off to a client. I created a >>>> macro in the spreadsheet to fill in the pages, but the >> macro needs the name of the server and the >>>> name of the database in that server. >>>> >>>> Every time I do this I have to open the spreadsheet, click >> tools / Macro / vbEditor, find the macro >>>> that I want, call it from the debug window passing the >> name of the server and database etc. It is >>>> already way better than the cut and paste each sheet from >> the view over in SQL, which is what I used >>>> to do, but it would be even better if I could simply press >> an "excel" button in my Access form and >>>> the spreadsheet opens and the macro runs. >>>> >>>> In fact I have done what I need by pulling the code out of >> my excel class wrapper and calling the >>>> workbook object inside of my access function, but that is >> ugly, and I have to do the same thing any >>>> time (in any code) that I run into a macro with parameters. >>>> >>>> I have run into other places where I want to pass a >> paramarray off to another function that expects >>>> a paramarray. Unfortunately what happens is that the >> paramarray gets passed into the destination as >>>> an array, not a lit of items in that array, and the >> receiving function does not know what to do with >>>> the array. Sigh. >>>> >>>> John W. Colby >>>> www.ColbyConsulting.com >>>> >>>> >>>> Hewson, Jim wrote: >>>>> If the Excel macro is always the same one, why not pull >> the code into >>>>> Access and wrap it into a function? >>>>> Call the function each time you want to change the parameters. >>>>> >>>>> Jim >>>>> >>>>> >>>>> -----Original Message----- >>>>> From: accessd-bounces at databaseadvisors.com >>>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>>>> Sent: Friday, February 27, 2009 8:51 AM >>>>> To: Access Developers discussion and problem solving >>>>> Subject: [AccessD] Automate Excel macro with parameters >>>>> >>>>> I am trying to figure out how to automate an excel macro >> with an unknown >>>>> number of parameters. I >>>>> doubt it is possible but I thought I would ask. >>>>> >>>>> If you want to run a macro in Excel you have to get a >> pointer to the >>>>> workbook. You then use the syntax: >>>>> >>>>> xlBook.Application.Run "MacroName", "string parameter 1", >>>>> intParameter2, etc >>>>> >>>>> In other words, you can pass as many parameters as the >> macro needs. >>>>> So... >>>>> >>>>> I have long ago written a class (of course) that wraps Excel >>>>> functionality. It can open, modify, >>>>> close etc an Excel workbook. An excellent example BTW of >> where it is >>>>> useful to create a class that >>>>> does not inherit anything. To my knowledge even .Net >> cannot inherit an >>>>> Excel application. >>>>> >>>>> So one of the methods of this class can run a macro in >> the workbook. >>>>> However to this point it can >>>>> only automate a macro that does not take parameters. I >> want to add a >>>>> ParamArray to my method to >>>>> feed in parameters to be sent to the macro. >>>>> >>>>> The only way I can see to do this (and it is UGLY) is to >> build a case >>>>> statement that looks at how >>>>> many variables are in the paramarray and just select a different >>>>> xlbook.Application.Run statement: >>>>> >>>>> (pseudocode) >>>>> >>>>> select case ubound(MyParamArray) >>>>> case 1 >>>>> xlBook.Application.Run "MacroName", MyParamArray(0) >>>>> case 2 >>>>> xlBook.Application.Run "MacroName", MyParamArray(0), >>>>> MyParamArray(1) >>>>> case 3 >>>>> xlBook.Application.Run "MacroName", MyParamArray(0), >>>>> MyParamArray(1), MyParamArray(3) >>>>> end select >>>>> >>>>> Do that for a number that would meet most cases and punt. >>>>> >>>>> I HATE punting! >>>>> >>>>> Has anyone ever solved the problem of passing the contents of a >>>>> ParamArray to another object that >>>>> accepts a paramarray? >>>>> >>>> -- >>>> AccessD mailing list >>>> AccessD at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>> Website: http://www.databaseadvisors.com >>> _________________________________________________________________ >>> Windows LiveT HotmailR.more than just e-mail. >>> >> http://windowslive.com/howitworks?ocid=TXT_TAGLM_WL_t2_hm_just > gotbetter_howitworks_022009 >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > > From jwcolby at colbyconsulting.com Fri Feb 27 13:07:08 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 27 Feb 2009 14:07:08 -0500 Subject: [AccessD] Automate Excel macro with parameters In-Reply-To: References: <49A82479.5050802@colbyconsulting.com> Message-ID: <49A839DC.5030902@colbyconsulting.com> I tried to do named ranges and couldn't get it figured out in time so I just went the brute force method. I will go back and revisit that. If I can get that working then I can pop it in the Excel class wrapper and it will be there the next time. Thanks! John W. Colby www.ColbyConsulting.com Salakhetdinov Shamil wrote: > John, > > You can also try to use XML serialization/deserialization using MS XML Core Services (MSXMLxx.dll it's installed with IE/MS Office 2003/2007 or you can get it installed manually). But if your static Select Case solution is already written and works OK I'd not change anything. > > As for formatting your excel output - if the output format is of fixed width and height then you can just copy and paste the whole template in XL macro VBA code... > > As for getting data from MS SQL and putting them into XL speardsheet - you can use ADO recordset to put its data into all adjacent cells almost instantly by one VBA code line using > > CopyFromRecordSet method of XL Range object > > http://msdn.microsoft.com/de-de/library/microsoft.office.interop.excel.range.copyfromrecordset.aspx > > Well, you might be doing that already. > > BTW, that could be another option to pass variable qty of params using disconnected/manually built ADO recordsets: I mean you can just create ADO recordset instance in VBA code and define as many fields as you need set their values as params - then you can pass this ADO recordset instance to MS Excel instance as parameter.... > > Thank you. > > -- > Shamil > > > -----Original Message----- > From: jwcolby > To: Access Developers discussion and problem solving > Date: Fri, 27 Feb 2009 12:35:53 -0500 > Subject: Re: [AccessD] Automate Excel macro with parameters > >> Shamil, >> >> Thanks for the response. The parameters in a text file sounds almost as ugly as case statement. >> >> My Excel class is expecting to be able to do things with an Excel application, open a worksheet, >> poke values out to cells and so forth. That syntax I quoted appears to pick up the existing and >> already open Excel application instance, it is not opening a new Excel application (AFAICT). >> >> In my own code if I need to process a param array passed in I can do that but in this case it is a >> method of a class in Excel and that method simply doesn't know what to do with an array passed in. >> The case sounds like the answer. >> >> I hate ugly almost as much as I hate punting. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Salakhetdinov Shamil wrote: >>> Hi John, >>> >>> Why not: >>> >>> 1. a) Write parameterrs into a simple text file with each parameters on a separate line in MS Access VBA... >>> b) Read parameters from text file in MS Excel VBA(?) macro? >>> >>> If you run many instances of MS Excel then you can make different text files with parameters for different instances, and pass the name/fullpath of this file as the only parameter in your xlBook.Application.Run call >>> >>> OR >>> >>> 2. Start MS Excel instance using Shell(...) and command line then you can pass as many custom params as you wish I suppose (needs checking) >>> >>> BTW, for the case when ParamArray should be passed through as another ParamArray I always used static Select Case as in your below sample - and I had I believe up to 30 params to pass this way - never had any issues with that - that coding style is looking ugly - yes - but it works well :) >>> >>> Thank you. >>> >>> -- >>> Shamil >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > From davidmcafee at gmail.com Fri Feb 27 13:27:33 2009 From: davidmcafee at gmail.com (David McAfee) Date: Fri, 27 Feb 2009 11:27:33 -0800 Subject: [AccessD] Should I use an adp or an mdb In-Reply-To: <49A286ABF515E94A8505CD14DEB721700367E214@CPIEMAIL-EVS1.CPIQPC.NET> References: <49A286ABF515E94A8505CD14DEB721700367E214@CPIEMAIL-EVS1.CPIQPC.NET> Message-ID: <8786a4c00902271127h4ba667e3hc7a44b866f0d02@mail.gmail.com> Yes, its definitely planned. :( I prefer ADPs to MDBs, not only for the ability to change the connection to the BE so easily, but also the ease of assigning a store procedure to the row source of a listbox. me.lstMyListBox.rowsource = Exec stpSomeStoredProcedure " & intSomeIntAsMyInputParameter I never liked using temp tables in my MDBs because of bloat issues. You can handle temp tables in two ways: 1. Upon opening a form, create a ##tempTable in SQL via a stored procedure, be sure to drop it on FormClose 2. Another choice is to create a temp db on the user's PC, use preferred method to communicate with that mdb, discard when finished. I have used both, and both methods work well. I know I'm one of the very few that likes/still uses ADPs. David On Fri, Feb 20, 2009 at 12:16 PM, wrote: > Thanks for the reply. ?Since the SQL server is 2005 I have to use SQL Server > Management Studio anyway. > > >From the search you used it sounds like most people prefer to go with the > mdb and with the release of SQL 2008, an Access 2007 adp can't make changes > to the SQL objects either so you really can't count on being able to use > that feature consistently as time goes on. > > I really like the ability to change the connection from a test back end to > production very easily from an adp, but there's code out there to work > around that issue in an mdb. ?Seems like the advantages of an adp are going > away. ?You think that's planned? > > > Thanks, > > Rusty > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters > Sent: Friday, February 20, 2009 10:58 AM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Should I use an adp or an mdb > > Use an mdb! ?The primary goal of using an adp was that it gave you the > ability to manage objects in the SQL Server database you are using from > within Access - an mdb can't do that. > > But, since SQL Server 2005 Express (free) was released, you can easily > manage those objects with SQL Server Express Management Studio (also free). > This wasn't easily possible with MSDE. > > So, by using an Access mdb and SQL Server Express Management Studio you can > get all the benefits of both. > > With an mdb, you can use either table links for use on a LAN, or you can > connect using OLEDB (like an adp would) for use on a WAN. ?Also in an mdb, > you can have temp tables in the FE. > > I did a search on 'Access mdb vs adp' and got many good sites. > > Dan > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of > rusty.hammond at cpiqpc.com > Sent: Friday, February 20, 2009 10:34 AM > To: accessd at databaseadvisors.com > Subject: [AccessD] Should I use an adp or an mdb > > I'm getting ready to create a new application with a SQL server backend. > I'm familiar enough with using SQL server but my question is, do I use an > Access Data Project or a regular mdb with links to the tables as a front > end. > > I've used both and would like to use the adp but I've heard rumblings that > they will be going away and don't want to rewrite this app in the near > future. ?I'm currently using Access 2003. > > Any suggestions? > > Rusty Hammond > IT Dept. - B-20 > CPI Qualified Plan Consultants, Inc. > (620) 793-8473 ext. 416 > rusty.hammond at cpiqpc.com > > > ********************************************************************** > WARNING: All e-mail sent to and from this address will be received, scanned > or otherwise recorded by the CPI Qualified Plan Consultants, Inc. > corporate e-mail system and is subject to archival, monitoring or review by, > and/or disclosure to, someone other than the recipient. > ********************************************************************** > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > ********************************************************************** > WARNING: All e-mail sent to and from this address will be received, > scanned or otherwise recorded by the CPI Qualified Plan Consultants, Inc. > corporate e-mail system and is subject to archival, monitoring or review > by, and/or disclosure to, someone other than the recipient. > ********************************************************************** > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From stuart at lexacorp.com.pg Fri Feb 27 14:35:10 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Sat, 28 Feb 2009 06:35:10 +1000 Subject: [AccessD] Automate Excel macro with parameters In-Reply-To: <49A7FDCA.7080603@colbyconsulting.com> References: <49A7FDCA.7080603@colbyconsulting.com> Message-ID: <49A8DB1E.24464.361FC0B@stuart.lexacorp.com.pg> How about xlBook.Application.Run "MacroName", Join(MyParamArray()",") -- Stuart On 27 Feb 2009 at 9:50, jwcolby wrote: > I am trying to figure out how to automate an excel macro with an unknown number of parameters. I > doubt it is possible but I thought I would ask. > > If you want to run a macro in Excel you have to get a pointer to the workbook. You then use the syntax: > > xlBook.Application.Run "MacroName", "string parameter 1", intParameter2, etc > > In other words, you can pass as many parameters as the macro needs. So... > > I have long ago written a class (of course) that wraps Excel functionality. It can open, modify, > close etc an Excel workbook. An excellent example BTW of where it is useful to create a class that > does not inherit anything. To my knowledge even .Net cannot inherit an Excel application. > > So one of the methods of this class can run a macro in the workbook. However to this point it can > only automate a macro that does not take parameters. I want to add a ParamArray to my method to > feed in parameters to be sent to the macro. > > The only way I can see to do this (and it is UGLY) is to build a case statement that looks at how > many variables are in the paramarray and just select a different xlbook.Application.Run statement: > > (pseudocode) > > select case ubound(MyParamArray) > case 1 > xlBook.Application.Run "MacroName", MyParamArray(0) > case 2 > xlBook.Application.Run "MacroName", MyParamArray(0), MyParamArray(1) > case 3 > xlBook.Application.Run "MacroName", MyParamArray(0), MyParamArray(1), MyParamArray(3) > end select > > Do that for a number that would meet most cases and punt. > > I HATE punting! > > Has anyone ever solved the problem of passing the contents of a ParamArray to another object that > accepts a paramarray? > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Fri Feb 27 14:42:15 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 27 Feb 2009 15:42:15 -0500 Subject: [AccessD] Automate Excel macro with parameters In-Reply-To: <49A8DB1E.24464.361FC0B@stuart.lexacorp.com.pg> References: <49A7FDCA.7080603@colbyconsulting.com> <49A8DB1E.24464.361FC0B@stuart.lexacorp.com.pg> Message-ID: <49A85027.2060709@colbyconsulting.com> Wow. I will test and see. I have a test harness that I was using to try this stuff. BRB. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > How about > > xlBook.Application.Run "MacroName", Join(MyParamArray()",") > From jwcolby at colbyconsulting.com Fri Feb 27 14:50:18 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 27 Feb 2009 15:50:18 -0500 Subject: [AccessD] Automate Excel macro with parameters In-Reply-To: <49A8DB1E.24464.361FC0B@stuart.lexacorp.com.pg> References: <49A7FDCA.7080603@colbyconsulting.com> <49A8DB1E.24464.361FC0B@stuart.lexacorp.com.pg> Message-ID: <49A8520A.5020607@colbyconsulting.com> Bows low before the Access God. That worked just fine, at least in my simple test of passing a paramarray into a simple function that calls another function with a paramarray. the only issue I see is that it turns the source parameters from whatever data type they might be into strings. Next to test the actual Excel function. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > How about > > xlBook.Application.Run "MacroName", Join(MyParamArray()",") > From jwcolby at colbyconsulting.com Fri Feb 27 15:24:21 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 27 Feb 2009 16:24:21 -0500 Subject: [AccessD] Automate Excel macro with parameters In-Reply-To: <49A8DB1E.24464.361FC0B@stuart.lexacorp.com.pg> References: <49A7FDCA.7080603@colbyconsulting.com> <49A8DB1E.24464.361FC0B@stuart.lexacorp.com.pg> Message-ID: <49A85A05.8020901@colbyconsulting.com> Nope, didn't work with the spreadsheet. As near as I can tell what happens is that the param array gets turned into a single string, with two items separated by commas. Since the macro expects two parameters, the join() provides a single string as the first parameter. The call to run the macro returns an error "parameter not optional" when it finds nothing in the second parameter. This does immediately provide a workaround however for this instance. In my macro I can EXPECT an array()! I was of course using the normal MyMacro(strServer as string, strDB as string) which is of course what you would use to manually call this thing passing in the parameters from the immediate window. However if I just rewrite the macro definition to: MyMacro(varParams() as variant) I can then parse out the varParams() array and recover the server and db name. Of course that does not solve the big picture. I regret to inform you that your Access God title awarded for this solution has been rescinded. John W. Colby www.ColbyConsulting.com Stuart McLachlan wrote: > How about > > xlBook.Application.Run "MacroName", Join(MyParamArray()",") > From tinanfields at torchlake.com Fri Feb 27 15:41:47 2009 From: tinanfields at torchlake.com (Tina Norris Fields) Date: Fri, 27 Feb 2009 16:41:47 -0500 Subject: [AccessD] Make Multiple Selections on a Form and Create aRecord for Each In-Reply-To: <9EB89FFF93F8418C902338BF8C92C59D@danwaters> References: <62522b507df940af8dbf9822546dcb52.tinanfields@torchlake.com> <9EB89FFF93F8418C902338BF8C92C59D@danwaters> Message-ID: <49A85E1B.1070906@torchlake.com> Hi Dan, Thanks for your response. I don't think I did a good job explaining the matter. The three tables exist already - they have horrid names, so I will use your table names to explain :) I want to make a form with the 32 skills all listed - each one followed by a yes/no checkbox and a 1 to 3 droplist. Each skill marked with the checkbox should generate one record to go in the tblVolunteerSkills - this way I can generate all the needed records for one volunteer and his/her skills with one click. This is only to be used at the initial data entry for the volunteer. After that, the usual form w/subform that already exists will be used - there, the skills are in a combo based on the tblSkills. I had already put together the form and subform system, and to me it looked like a good way to enter the data. The data-entry volunteer pointed out that there were many more clicks or keystrokes needed on his part to do the data-entry with the form and subform method. He liked having a list he could simply click his way down, even though that left bunches of records for skills not used. So, I am trying to simulate the earlier situation for him by putting up a form he can click his way through, then click an action button that will generate the individual records of skills for the new volunteer and place them in the tblVolunteerSkills. That's the piece I'm struggling with. Any thoughts on that one? Tina Dan Waters wrote: > Hi Tina, > > You will want three tables: tblVolunteers, tblVolunteerSkills, and > tblSkills. > > tblSkills will be a lookup table. > > tblVolunteers will be a primary table and tblVolunteerSkills will be a > subtable with a one-to-may relationship. > > In your form, I would recommend using a dropdown list to select a Skill, and > radio buttons for the Skill Level. The reason for this is that it's likely > that you'll want to add/change/remove the Skills, and it's less likely that > you'll want to increase or decrease the number of skill levels that you'll > want to record. To change the Skills, you just need to get into the > tblSkills table, and not make any form or code changes. > > You'll also want to have a form for Volunteers (bound to tblVolunteers), and > a subform for the Skills and Levels (bound to tblVolunteerSkills). > > Hope this helps! > Dan > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of > tinanfields at torchlake.com > Sent: Friday, February 27, 2009 12:22 PM > To: AccessD at databaseadvisors.com > Subject: [AccessD] Make Multiple Selections on a Form and Create a Record > for Each > > I hope the subject line isn't too confusing :) > > Here's the situation: volunteers fill out a paper form indicating which > skills they have and at > what level (1 to 3, with 1 being high). When this database was built > (1999), the developer crafted > a macro that added one record for every possible skill (32, so far) to the > table of volunteers and > skills. The data-entry person then went down the rows, clicking the ones > that were to be selected, > and entering the skill level number. This results in lots of empty records. > Since then, the > database crashed and the macro no longer works anyway. > > I want to craft a form with a checkbox for each skill and a drop-list of the > skill-levels, so the > data-entry person can click the checkbox and select the skill level - then > click a button that will > place one record for each skill selected into the table of volunteers and > skills. This gives the > data entry person the same ease of entry, but does not create lots of empty > records. I saw > something in the ADH that captures the number of selections made, and I'm > guessing I need to start > there, but I could sure use some inspiration on this. If three skills are > checked, I want three > records entered for that volunteer in the volunteers and skills table - each > one referencing one of > the selected skills. > > Thanks for any ideas. > > Tina > > > From jwcolby at colbyconsulting.com Fri Feb 27 16:06:24 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 27 Feb 2009 17:06:24 -0500 Subject: [AccessD] Make Multiple Selections on a Form and Create aRecord for Each In-Reply-To: <49A85E1B.1070906@torchlake.com> References: <62522b507df940af8dbf9822546dcb52.tinanfields@torchlake.com> <9EB89FFF93F8418C902338BF8C92C59D@danwaters> <49A85E1B.1070906@torchlake.com> Message-ID: <49A863E0.4090500@colbyconsulting.com> Tina, Load the check boxes from code that looks at all of the records in the table for the volunteer selected. Only create records in the table for boxes checked. Delete records (if any) for boxes left unchecked. You could even create and delete the records in real time as they check and uncheck boxes. John W. Colby www.ColbyConsulting.com Tina Norris Fields wrote: > Hi Dan, > > Thanks for your response. I don't think I did a good job explaining the > matter. The three tables exist already - they have horrid names, so I > will use your table names to explain :) > > I want to make a form with the 32 skills all listed - each one followed > by a yes/no checkbox and a 1 to 3 droplist. Each skill marked with the > checkbox should generate one record to go in the tblVolunteerSkills - > this way I can generate all the needed records for one volunteer and > his/her skills with one click. This is only to be used at the initial > data entry for the volunteer. After that, the usual form w/subform that > already exists will be used - there, the skills are in a combo based on > the tblSkills. > > I had already put together the form and subform system, and to me it > looked like a good way to enter the data. The data-entry volunteer > pointed out that there were many more clicks or keystrokes needed on his > part to do the data-entry with the form and subform method. He liked > having a list he could simply click his way down, even though that left > bunches of records for skills not used. So, I am trying to simulate the > earlier situation for him by putting up a form he can click his way > through, then click an action button that will generate the individual > records of skills for the new volunteer and place them in the > tblVolunteerSkills. That's the piece I'm struggling with. Any thoughts > on that one? > > Tina > > Dan Waters wrote: >> Hi Tina, >> >> You will want three tables: tblVolunteers, tblVolunteerSkills, and >> tblSkills. >> >> tblSkills will be a lookup table. >> >> tblVolunteers will be a primary table and tblVolunteerSkills will be a >> subtable with a one-to-may relationship. >> >> In your form, I would recommend using a dropdown list to select a Skill, and >> radio buttons for the Skill Level. The reason for this is that it's likely >> that you'll want to add/change/remove the Skills, and it's less likely that >> you'll want to increase or decrease the number of skill levels that you'll >> want to record. To change the Skills, you just need to get into the >> tblSkills table, and not make any form or code changes. >> >> You'll also want to have a form for Volunteers (bound to tblVolunteers), and >> a subform for the Skills and Levels (bound to tblVolunteerSkills). >> >> Hope this helps! >> Dan >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of >> tinanfields at torchlake.com >> Sent: Friday, February 27, 2009 12:22 PM >> To: AccessD at databaseadvisors.com >> Subject: [AccessD] Make Multiple Selections on a Form and Create a Record >> for Each >> >> I hope the subject line isn't too confusing :) >> >> Here's the situation: volunteers fill out a paper form indicating which >> skills they have and at >> what level (1 to 3, with 1 being high). When this database was built >> (1999), the developer crafted >> a macro that added one record for every possible skill (32, so far) to the >> table of volunteers and >> skills. The data-entry person then went down the rows, clicking the ones >> that were to be selected, >> and entering the skill level number. This results in lots of empty records. >> Since then, the >> database crashed and the macro no longer works anyway. >> >> I want to craft a form with a checkbox for each skill and a drop-list of the >> skill-levels, so the >> data-entry person can click the checkbox and select the skill level - then >> click a button that will >> place one record for each skill selected into the table of volunteers and >> skills. This gives the >> data entry person the same ease of entry, but does not create lots of empty >> records. I saw >> something in the ADH that captures the number of selections made, and I'm >> guessing I need to start >> there, but I could sure use some inspiration on this. If three skills are >> checked, I want three >> records entered for that volunteer in the volunteers and skills table - each >> one referencing one of >> the selected skills. >> >> Thanks for any ideas. >> >> Tina >> >> >> From tinanfields at torchlake.com Fri Feb 27 16:23:09 2009 From: tinanfields at torchlake.com (Tina Norris Fields) Date: Fri, 27 Feb 2009 17:23:09 -0500 Subject: [AccessD] Make Multiple Selections on a Form and Create aRecordfor Each In-Reply-To: <49A863E0.4090500@colbyconsulting.com> References: <62522b507df940af8dbf9822546dcb52.tinanfields@torchlake.com> <9EB89FFF93F8418C902338BF8C92C59D@danwaters><49A85E1B.1070906@torchlake.com> <49A863E0.4090500@colbyconsulting.com> Message-ID: <49A867CD.9020703@torchlake.com> John, Yes, that's what I want to do. How? Tina jwcolby wrote: > Tina, > > Load the check boxes from code that looks at all of the records in the table for the volunteer selected. > > Only create records in the table for boxes checked. > Delete records (if any) for boxes left unchecked. > > You could even create and delete the records in real time as they check and uncheck boxes. > > John W. Colby > www.ColbyConsulting.com > > > Tina Norris Fields wrote: > >> Hi Dan, >> >> Thanks for your response. I don't think I did a good job explaining the >> matter. The three tables exist already - they have horrid names, so I >> will use your table names to explain :) >> >> I want to make a form with the 32 skills all listed - each one followed >> by a yes/no checkbox and a 1 to 3 droplist. Each skill marked with the >> checkbox should generate one record to go in the tblVolunteerSkills - >> this way I can generate all the needed records for one volunteer and >> his/her skills with one click. This is only to be used at the initial >> data entry for the volunteer. After that, the usual form w/subform that >> already exists will be used - there, the skills are in a combo based on >> the tblSkills. >> >> I had already put together the form and subform system, and to me it >> looked like a good way to enter the data. The data-entry volunteer >> pointed out that there were many more clicks or keystrokes needed on his >> part to do the data-entry with the form and subform method. He liked >> having a list he could simply click his way down, even though that left >> bunches of records for skills not used. So, I am trying to simulate the >> earlier situation for him by putting up a form he can click his way >> through, then click an action button that will generate the individual >> records of skills for the new volunteer and place them in the >> tblVolunteerSkills. That's the piece I'm struggling with. Any thoughts >> on that one? >> >> Tina >> >> Dan Waters wrote: >> >>> Hi Tina, >>> >>> You will want three tables: tblVolunteers, tblVolunteerSkills, and >>> tblSkills. >>> >>> tblSkills will be a lookup table. >>> >>> tblVolunteers will be a primary table and tblVolunteerSkills will be a >>> subtable with a one-to-may relationship. >>> >>> In your form, I would recommend using a dropdown list to select a Skill, and >>> radio buttons for the Skill Level. The reason for this is that it's likely >>> that you'll want to add/change/remove the Skills, and it's less likely that >>> you'll want to increase or decrease the number of skill levels that you'll >>> want to record. To change the Skills, you just need to get into the >>> tblSkills table, and not make any form or code changes. >>> >>> You'll also want to have a form for Volunteers (bound to tblVolunteers), and >>> a subform for the Skills and Levels (bound to tblVolunteerSkills). >>> >>> Hope this helps! >>> Dan >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of >>> tinanfields at torchlake.com >>> Sent: Friday, February 27, 2009 12:22 PM >>> To: AccessD at databaseadvisors.com >>> Subject: [AccessD] Make Multiple Selections on a Form and Create a Record >>> for Each >>> >>> I hope the subject line isn't too confusing :) >>> >>> Here's the situation: volunteers fill out a paper form indicating which >>> skills they have and at >>> what level (1 to 3, with 1 being high). When this database was built >>> (1999), the developer crafted >>> a macro that added one record for every possible skill (32, so far) to the >>> table of volunteers and >>> skills. The data-entry person then went down the rows, clicking the ones >>> that were to be selected, >>> and entering the skill level number. This results in lots of empty records. >>> Since then, the >>> database crashed and the macro no longer works anyway. >>> >>> I want to craft a form with a checkbox for each skill and a drop-list of the >>> skill-levels, so the >>> data-entry person can click the checkbox and select the skill level - then >>> click a button that will >>> place one record for each skill selected into the table of volunteers and >>> skills. This gives the >>> data entry person the same ease of entry, but does not create lots of empty >>> records. I saw >>> something in the ADH that captures the number of selections made, and I'm >>> guessing I need to start >>> there, but I could sure use some inspiration on this. If three skills are >>> checked, I want three >>> records entered for that volunteer in the volunteers and skills table - each >>> one referencing one of >>> the selected skills. >>> >>> Thanks for any ideas. >>> >>> Tina >>> >>> >>> >>> From DWUTKA at Marlow.com Fri Feb 27 16:41:31 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Fri, 27 Feb 2009 16:41:31 -0600 Subject: [AccessD] Make Multiple Selections on a Form and Create a Recordfor Each In-Reply-To: <62522b507df940af8dbf9822546dcb52.tinanfields@torchlake.com> References: <62522b507df940af8dbf9822546dcb52.tinanfields@torchlake.com> Message-ID: Tina, are you averse to using a treeview control? Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of tinanfields at torchlake.com Sent: Friday, February 27, 2009 12:22 PM To: AccessD at databaseadvisors.com Subject: [AccessD] Make Multiple Selections on a Form and Create a Recordfor Each I hope the subject line isn't too confusing :) Here's the situation: volunteers fill out a paper form indicating which skills they have and at what level (1 to 3, with 1 being high). When this database was built (1999), the developer crafted a macro that added one record for every possible skill (32, so far) to the table of volunteers and skills. The data-entry person then went down the rows, clicking the ones that were to be selected, and entering the skill level number. This results in lots of empty records. Since then, the database crashed and the macro no longer works anyway. I want to craft a form with a checkbox for each skill and a drop-list of the skill-levels, so the data-entry person can click the checkbox and select the skill level - then click a button that will place one record for each skill selected into the table of volunteers and skills. This gives the data entry person the same ease of entry, but does not create lots of empty records. I saw something in the ADH that captures the number of selections made, and I'm guessing I need to start there, but I could sure use some inspiration on this. If three skills are checked, I want three records entered for that volunteer in the volunteers and skills table - each one referencing one of the selected skills. Thanks for any ideas. Tina -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From dwaters at usinternet.com Fri Feb 27 16:29:09 2009 From: dwaters at usinternet.com (Dan Waters) Date: Fri, 27 Feb 2009 16:29:09 -0600 Subject: [AccessD] Make Multiple Selections on a Form and Create a Record for Each In-Reply-To: <49A85E1B.1070906@torchlake.com> References: <62522b507df940af8dbf9822546dcb52.tinanfields@torchlake.com><9EB89FFF93F8418C902338BF8C92C59D@danwaters> <49A85E1B.1070906@torchlake.com> Message-ID: <5264DCA61744419ABDAD8AC1D0F4F177@danwaters> Ah Hah! The classic picky data entry person problem! ;-) I would still use the form/subform scenario with a few adjustments. The main form still is used to select or add a Volunteer. The subform should show a blank record on first use - Allow Additions = Yes. In the subform you will have, from left to right, a Skill combobox and a Level textbox. The Skill combobox should show maybe 60 in the List Rows property (for future additions), and its AutoExpand property is set to Yes. Its row source is a query based on the Skills table. Here's what saves time: The tab index of the Skills combobox is 1 and the Level textbox is 2. Also, in the OnEnter event of the Skills combobox add the code 'cboSkills.Dropdown'. Now, for the form set the Cycle property to All Records. In the AfterUpdate event of the textbox modify the query for the Skills combobox so that any previously selected Skills are no longer listed. Once your data entry person selects a Volunteer, he pushes Tab and the list of Skills is displayed. He pushes just enough keys to make the selection, then pushes Tab again. Then he pushes 1, 2, or 3 on the keyboard. Now when he pushes Tab again, the cursor moves immediately to the Skills combobox, and he can start over. This is very fast because he's NOT using the mouse, which is slower than the keyboard because it requires a lot of hand-eye coordination, where using the keyboard only requires him to select the correct information, and quickly at that. You'll also want a Delete button on each row if the data entry person needs to use it. The Delete button's Tab Stop property must be = No. Hope this helps more! Dan -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Tina Norris Fields Sent: Friday, February 27, 2009 3:42 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Make Multiple Selections on a Form and Create aRecord for Each Hi Dan, Thanks for your response. I don't think I did a good job explaining the matter. The three tables exist already - they have horrid names, so I will use your table names to explain :) I want to make a form with the 32 skills all listed - each one followed by a yes/no checkbox and a 1 to 3 droplist. Each skill marked with the checkbox should generate one record to go in the tblVolunteerSkills - this way I can generate all the needed records for one volunteer and his/her skills with one click. This is only to be used at the initial data entry for the volunteer. After that, the usual form w/subform that already exists will be used - there, the skills are in a combo based on the tblSkills. I had already put together the form and subform system, and to me it looked like a good way to enter the data. The data-entry volunteer pointed out that there were many more clicks or keystrokes needed on his part to do the data-entry with the form and subform method. He liked having a list he could simply click his way down, even though that left bunches of records for skills not used. So, I am trying to simulate the earlier situation for him by putting up a form he can click his way through, then click an action button that will generate the individual records of skills for the new volunteer and place them in the tblVolunteerSkills. That's the piece I'm struggling with. Any thoughts on that one? Tina Dan Waters wrote: > Hi Tina, > > You will want three tables: tblVolunteers, tblVolunteerSkills, and > tblSkills. > > tblSkills will be a lookup table. > > tblVolunteers will be a primary table and tblVolunteerSkills will be a > subtable with a one-to-may relationship. > > In your form, I would recommend using a dropdown list to select a Skill, and > radio buttons for the Skill Level. The reason for this is that it's likely > that you'll want to add/change/remove the Skills, and it's less likely that > you'll want to increase or decrease the number of skill levels that you'll > want to record. To change the Skills, you just need to get into the > tblSkills table, and not make any form or code changes. > > You'll also want to have a form for Volunteers (bound to tblVolunteers), and > a subform for the Skills and Levels (bound to tblVolunteerSkills). > > Hope this helps! > Dan > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of > tinanfields at torchlake.com > Sent: Friday, February 27, 2009 12:22 PM > To: AccessD at databaseadvisors.com > Subject: [AccessD] Make Multiple Selections on a Form and Create a Record > for Each > > I hope the subject line isn't too confusing :) > > Here's the situation: volunteers fill out a paper form indicating which > skills they have and at > what level (1 to 3, with 1 being high). When this database was built > (1999), the developer crafted > a macro that added one record for every possible skill (32, so far) to the > table of volunteers and > skills. The data-entry person then went down the rows, clicking the ones > that were to be selected, > and entering the skill level number. This results in lots of empty records. > Since then, the > database crashed and the macro no longer works anyway. > > I want to craft a form with a checkbox for each skill and a drop-list of the > skill-levels, so the > data-entry person can click the checkbox and select the skill level - then > click a button that will > place one record for each skill selected into the table of volunteers and > skills. This gives the > data entry person the same ease of entry, but does not create lots of empty > records. I saw > something in the ADH that captures the number of selections made, and I'm > guessing I need to start > there, but I could sure use some inspiration on this. If three skills are > checked, I want three > records entered for that volunteer in the volunteers and skills table - each > one referencing one of > the selected skills. > > Thanks for any ideas. > > Tina > > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From tinanfields at torchlake.com Fri Feb 27 16:57:45 2009 From: tinanfields at torchlake.com (Tina Norris Fields) Date: Fri, 27 Feb 2009 17:57:45 -0500 Subject: [AccessD] Make Multiple Selections on a Form and Create a Recordfor Each In-Reply-To: References: <62522b507df940af8dbf9822546dcb52.tinanfields@torchlake.com> Message-ID: <49A86FE9.10209@torchlake.com> Hi Drew, No, I'm not at all averse to using it - I just don't know much about how to. Would you care to expand on the subject? Tina Drew Wutka wrote: > Tina, are you averse to using a treeview control? > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of > tinanfields at torchlake.com > Sent: Friday, February 27, 2009 12:22 PM > To: AccessD at databaseadvisors.com > Subject: [AccessD] Make Multiple Selections on a Form and Create a > Recordfor Each > > I hope the subject line isn't too confusing :) > > Here's the situation: volunteers fill out a paper form indicating which > skills they have and at > what level (1 to 3, with 1 being high). When this database was built > (1999), the developer crafted > a macro that added one record for every possible skill (32, so far) to > the table of volunteers and > skills. The data-entry person then went down the rows, clicking the > ones that were to be selected, > and entering the skill level number. This results in lots of empty > records. Since then, the > database crashed and the macro no longer works anyway. > > I want to craft a form with a checkbox for each skill and a drop-list of > the skill-levels, so the > data-entry person can click the checkbox and select the skill level - > then click a button that will > place one record for each skill selected into the table of volunteers > and skills. This gives the > data entry person the same ease of entry, but does not create lots of > empty records. I saw > something in the ADH that captures the number of selections made, and > I'm guessing I need to start > there, but I could sure use some inspiration on this. If three skills > are checked, I want three > records entered for that volunteer in the volunteers and skills table - > each one referencing one of > the selected skills. > > Thanks for any ideas. > > Tina > > > From tinanfields at torchlake.com Fri Feb 27 17:14:11 2009 From: tinanfields at torchlake.com (Tina Norris Fields) Date: Fri, 27 Feb 2009 18:14:11 -0500 Subject: [AccessD] Make Multiple Selections on a Form and Create aRecord for Each In-Reply-To: <5264DCA61744419ABDAD8AC1D0F4F177@danwaters> References: <62522b507df940af8dbf9822546dcb52.tinanfields@torchlake.com><9EB89FFF93F8418C902338BF8C92C59D@danwaters><49A85E1B.107 0906@torchlake.com> <5264DCA61744419ABDAD8AC1D0F4F177@danwaters> Message-ID: <49A873C3.7010505@torchlake.com> Dan, You pegged it - "the classic picky data entry person problem" - ROTFLMAO! I couldn't agree with you more about the form-subform data-entry method - in fact, that's pretty much what mine already does - and, yes, keystroking is ever so much faster than mouse-clicking. I'm still going to try to do this trick - there have been other occasions when such a solution would have been useful, too. Once I get this trick mastered I can have both methods available. This reminds me of an encounter I had with a lovely man who was a student in several of my adult education computer classes - I had a whole Computer Literacy series, followed by some MS Office Suite classes - and at that time I was writing my own materials. I always offered more than one way to accomplish a task, explaining that there were always about four or five different ways to do just about anything in Windows. This lovely man stopped me after one class and asked why I bothered to teach anything other than mouse, since that was all anybody was going to use anyway. Recognizing that he was telling me much more about himself than about others, I replied that I wouldn't be doing my job if I failed to mention the additional ways, and that mice sometimes died and it would be useful to know enough about keyboard shortcuts to at least get back out of the computer even if the mouse stopped working. The next class I added what I called "Frank's path" to my materials - after I taught two or three ways to do something, I invited my students to mark the way they thought they liked best (I had nice big diamond shapes next to each method, so they could just darken the one they chose), and from then on, when I called for whatever that task was they could use their own favorite method. It worked a treat! Best regards and thanks for the help, Tina Dan Waters wrote: > Ah Hah! The classic picky data entry person problem! ;-) > > I would still use the form/subform scenario with a few adjustments. > > The main form still is used to select or add a Volunteer. The subform > should show a blank record on first use - Allow Additions = Yes. > > In the subform you will have, from left to right, a Skill combobox and a > Level textbox. The Skill combobox should show maybe 60 in the List Rows > property (for future additions), and its AutoExpand property is set to Yes. > Its row source is a query based on the Skills table. > > Here's what saves time: The tab index of the Skills combobox is 1 and the > Level textbox is 2. Also, in the OnEnter event of the Skills combobox add > the code 'cboSkills.Dropdown'. Now, for the form set the Cycle property to > All Records. > > In the AfterUpdate event of the textbox modify the query for the Skills > combobox so that any previously selected Skills are no longer listed. > > Once your data entry person selects a Volunteer, he pushes Tab and the list > of Skills is displayed. He pushes just enough keys to make the selection, > then pushes Tab again. Then he pushes 1, 2, or 3 on the keyboard. Now when > he pushes Tab again, the cursor moves immediately to the Skills combobox, > and he can start over. > > This is very fast because he's NOT using the mouse, which is slower than the > keyboard because it requires a lot of hand-eye coordination, where using the > keyboard only requires him to select the correct information, and quickly at > that. > > You'll also want a Delete button on each row if the data entry person needs > to use it. The Delete button's Tab Stop property must be = No. > > Hope this helps more! > Dan > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Tina Norris > Fields > Sent: Friday, February 27, 2009 3:42 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Make Multiple Selections on a Form and Create aRecord > for Each > > Hi Dan, > > Thanks for your response. I don't think I did a good job explaining the > matter. The three tables exist already - they have horrid names, so I > will use your table names to explain :) > > I want to make a form with the 32 skills all listed - each one followed > by a yes/no checkbox and a 1 to 3 droplist. Each skill marked with the > checkbox should generate one record to go in the tblVolunteerSkills - > this way I can generate all the needed records for one volunteer and > his/her skills with one click. This is only to be used at the initial > data entry for the volunteer. After that, the usual form w/subform that > already exists will be used - there, the skills are in a combo based on > the tblSkills. > > I had already put together the form and subform system, and to me it > looked like a good way to enter the data. The data-entry volunteer > pointed out that there were many more clicks or keystrokes needed on his > part to do the data-entry with the form and subform method. He liked > having a list he could simply click his way down, even though that left > bunches of records for skills not used. So, I am trying to simulate the > earlier situation for him by putting up a form he can click his way > through, then click an action button that will generate the individual > records of skills for the new volunteer and place them in the > tblVolunteerSkills. That's the piece I'm struggling with. Any thoughts > on that one? > > Tina > > Dan Waters wrote: > >> Hi Tina, >> >> You will want three tables: tblVolunteers, tblVolunteerSkills, and >> tblSkills. >> >> tblSkills will be a lookup table. >> >> tblVolunteers will be a primary table and tblVolunteerSkills will be a >> subtable with a one-to-may relationship. >> >> In your form, I would recommend using a dropdown list to select a Skill, >> > and > >> radio buttons for the Skill Level. The reason for this is that it's >> > likely > >> that you'll want to add/change/remove the Skills, and it's less likely >> > that > >> you'll want to increase or decrease the number of skill levels that you'll >> want to record. To change the Skills, you just need to get into the >> tblSkills table, and not make any form or code changes. >> >> You'll also want to have a form for Volunteers (bound to tblVolunteers), >> > and > >> a subform for the Skills and Levels (bound to tblVolunteerSkills). >> >> Hope this helps! >> Dan >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of >> tinanfields at torchlake.com >> Sent: Friday, February 27, 2009 12:22 PM >> To: AccessD at databaseadvisors.com >> Subject: [AccessD] Make Multiple Selections on a Form and Create a Record >> for Each >> >> I hope the subject line isn't too confusing :) >> >> Here's the situation: volunteers fill out a paper form indicating which >> skills they have and at >> what level (1 to 3, with 1 being high). When this database was built >> (1999), the developer crafted >> a macro that added one record for every possible skill (32, so far) to the >> table of volunteers and >> skills. The data-entry person then went down the rows, clicking the ones >> that were to be selected, >> and entering the skill level number. This results in lots of empty >> > records. > >> Since then, the >> database crashed and the macro no longer works anyway. >> >> I want to craft a form with a checkbox for each skill and a drop-list of >> > the > >> skill-levels, so the >> data-entry person can click the checkbox and select the skill level - then >> click a button that will >> place one record for each skill selected into the table of volunteers and >> skills. This gives the >> data entry person the same ease of entry, but does not create lots of >> > empty > >> records. I saw >> something in the ADH that captures the number of selections made, and I'm >> guessing I need to start >> there, but I could sure use some inspiration on this. If three skills are >> checked, I want three >> records entered for that volunteer in the volunteers and skills table - >> > each > >> one referencing one of >> the selected skills. >> >> Thanks for any ideas. >> >> Tina >> >> >> >> From DWUTKA at Marlow.com Fri Feb 27 17:15:06 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Fri, 27 Feb 2009 17:15:06 -0600 Subject: [AccessD] Make Multiple Selections on a Form and Create a Recordfor Each In-Reply-To: <49A86FE9.10209@torchlake.com> References: <62522b507df940af8dbf9822546dcb52.tinanfields@torchlake.com> <49A86FE9.10209@torchlake.com> Message-ID: I can do better then that. Just started whipping up an example. Give me a few more minutes... Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Tina Norris Fields Sent: Friday, February 27, 2009 4:58 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Make Multiple Selections on a Form and Create a Recordfor Each Hi Drew, No, I'm not at all averse to using it - I just don't know much about how to. Would you care to expand on the subject? Tina Drew Wutka wrote: > Tina, are you averse to using a treeview control? > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of > tinanfields at torchlake.com > Sent: Friday, February 27, 2009 12:22 PM > To: AccessD at databaseadvisors.com > Subject: [AccessD] Make Multiple Selections on a Form and Create a > Recordfor Each > > I hope the subject line isn't too confusing :) > > Here's the situation: volunteers fill out a paper form indicating which > skills they have and at > what level (1 to 3, with 1 being high). When this database was built > (1999), the developer crafted > a macro that added one record for every possible skill (32, so far) to > the table of volunteers and > skills. The data-entry person then went down the rows, clicking the > ones that were to be selected, > and entering the skill level number. This results in lots of empty > records. Since then, the > database crashed and the macro no longer works anyway. > > I want to craft a form with a checkbox for each skill and a drop-list of > the skill-levels, so the > data-entry person can click the checkbox and select the skill level - > then click a button that will > place one record for each skill selected into the table of volunteers > and skills. This gives the > data entry person the same ease of entry, but does not create lots of > empty records. I saw > something in the ADH that captures the number of selections made, and > I'm guessing I need to start > there, but I could sure use some inspiration on this. If three skills > are checked, I want three > records entered for that volunteer in the volunteers and skills table - > each one referencing one of > the selected skills. > > Thanks for any ideas. > > Tina > > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwelz at hotmail.com Fri Feb 27 17:16:34 2009 From: jwelz at hotmail.com (Jurgen Welz) Date: Fri, 27 Feb 2009 16:16:34 -0700 Subject: [AccessD] Automate Excel macro with parameters In-Reply-To: <49A83958.4010700@colbyconsulting.com> References: <49A7FDCA.7080603@colbyconsulting.com> <7E02B06E41E5404589EDDDA2BAA1C5A86BD75D@sanex101.nciinc.com> <49A8100B.3000201@colbyconsulting.com> <49A82F81.4010502@colbyconsulting.com> <005c01c9990c$7b07dd20$0301a8c0@MSIMMSWS> <49A83958.4010700@colbyconsulting.com> Message-ID: Write the parameters to cells on a sheet named something like 'Parameters' in a workbook based on the template. Iterate the parameters until you encounter a blank cell. The workbook macro can delete the sheet when it's done. Ciao J?rgen Welz Edmonton, Alberta jwelz at hotmail.com > >>>>> Sent: Friday, February 27, 2009 8:51 AM > >>>>> To: Access Developers discussion and problem solving > >>>>> Subject: [AccessD] Automate Excel macro with parameters > >>>>> > >>>>> I am trying to figure out how to automate an excel macro > >> with an unknown > >>>>> number of parameters. I > >>>>> doubt it is possible but I thought I would ask. > >>>>> > >>>>> If you want to run a macro in Excel you have to get a > >> pointer to the > >>>>> workbook. You then use the syntax: > >>>>> > >>>>> xlBook.Application.Run "MacroName", "string parameter 1", > >>>>> intParameter2, etc > >>>>> > >>>>> In other words, you can pass as many parameters as the > >> macro needs. > >>>>> So... > >>>>> > >>>>> I have long ago written a class (of course) that wraps Excel > >>>>> functionality. It can open, modify, > >>>>> close etc an Excel workbook. An excellent example BTW of > >> where it is > >>>>> useful to create a class that > >>>>> does not inherit anything. To my knowledge even .Net > >> cannot inherit an > >>>>> Excel application. > >>>>> > >>>>> So one of the methods of this class can run a macro in > >> the workbook. > >>>>> However to this point it can > >>>>> only automate a macro that does not take parameters. I > >> want to add a > >>>>> ParamArray to my method to > >>>>> feed in parameters to be sent to the macro. > >>>>> > >>>>> The only way I can see to do this (and it is UGLY) is to > >> build a case > >>>>> statement that looks at how > >>>>> many variables are in the paramarray and just select a different > >>>>> xlbook.Application.Run statement: > >>>>> > >>>>> (pseudocode) > >>>>> > >>>>> select case ubound(MyParamArray) > >>>>> case 1 > >>>>> xlBook.Application.Run "MacroName", MyParamArray(0) > >>>>> case 2 > >>>>> xlBook.Application.Run "MacroName", MyParamArray(0), > >>>>> MyParamArray(1) > >>>>> case 3 > >>>>> xlBook.Application.Run "MacroName", MyParamArray(0), > >>>>> MyParamArray(1), MyParamArray(3) > >>>>> end select > >>>>> > >>>>> Do that for a number that would meet most cases and punt. > >>>>> > >>>>> I HATE punting! > >>>>> > >>>>> Has anyone ever solved the problem of passing the contents of a > >>>>> ParamArray to another object that > >>>>> accepts a paramarray? > >>>>> > >>>> -- > >>>> AccessD mailing list > >>>> AccessD at databaseadvisors.com > >>>> http://databaseadvisors.com/mailman/listinfo/accessd > >>>> Website: http://www.databaseadvisors.com _________________________________________________________________ The new Windows Live Messenger. You don?t want to miss this. http://www.microsoft.com/windows/windowslive/products/messenger.aspx From DWUTKA at Marlow.com Fri Feb 27 17:42:35 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Fri, 27 Feb 2009 17:42:35 -0600 Subject: [AccessD] Make Multiple Selections on a Form and Create a Recordfor Each In-Reply-To: <49A86FE9.10209@torchlake.com> References: <62522b507df940af8dbf9822546dcb52.tinanfields@torchlake.com> <49A86FE9.10209@torchlake.com> Message-ID: Ok Tina, I put the sample at http://www.marlow.com/treeview.zip Going to take a break for a minute, and I'll come back and post an explanation of how it works. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Tina Norris Fields Sent: Friday, February 27, 2009 4:58 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Make Multiple Selections on a Form and Create a Recordfor Each Hi Drew, No, I'm not at all averse to using it - I just don't know much about how to. Would you care to expand on the subject? Tina Drew Wutka wrote: > Tina, are you averse to using a treeview control? > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of > tinanfields at torchlake.com > Sent: Friday, February 27, 2009 12:22 PM > To: AccessD at databaseadvisors.com > Subject: [AccessD] Make Multiple Selections on a Form and Create a > Recordfor Each > > I hope the subject line isn't too confusing :) > > Here's the situation: volunteers fill out a paper form indicating which > skills they have and at > what level (1 to 3, with 1 being high). When this database was built > (1999), the developer crafted > a macro that added one record for every possible skill (32, so far) to > the table of volunteers and > skills. The data-entry person then went down the rows, clicking the > ones that were to be selected, > and entering the skill level number. This results in lots of empty > records. Since then, the > database crashed and the macro no longer works anyway. > > I want to craft a form with a checkbox for each skill and a drop-list of > the skill-levels, so the > data-entry person can click the checkbox and select the skill level - > then click a button that will > place one record for each skill selected into the table of volunteers > and skills. This gives the > data entry person the same ease of entry, but does not create lots of > empty records. I saw > something in the ADH that captures the number of selections made, and > I'm guessing I need to start > there, but I could sure use some inspiration on this. If three skills > are checked, I want three > records entered for that volunteer in the volunteers and skills table - > each one referencing one of > the selected skills. > > Thanks for any ideas. > > Tina > > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From dbdoug at gmail.com Fri Feb 27 17:50:15 2009 From: dbdoug at gmail.com (Doug Steele) Date: Fri, 27 Feb 2009 15:50:15 -0800 Subject: [AccessD] How about lbdView In-Reply-To: <5FCCF63D7BEA4A9582878F8BAFC41D9F@SusanOne> References: <5FCCF63D7BEA4A9582878F8BAFC41D9F@SusanOne> Message-ID: <4dd71a0c0902271550g5e478db4oc628d34da9749797@mail.gmail.com> I always install it on my clients' server, so I can tell quickly who hasn't logged out of the BE database. Doug Steele On Thu, Feb 26, 2009 at 8:01 AM, Susan Harkins wrote: > Any of you still using the ldbView utility with 2003? Just wondering if > it's > still relevant of if its been replaced by something newer and better. > > Susan H. > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From john at winhaven.net Fri Feb 27 18:02:54 2009 From: john at winhaven.net (John Bartow) Date: Fri, 27 Feb 2009 18:02:54 -0600 Subject: [AccessD] Humor In-Reply-To: <49A8066D.4090705@colbyconsulting.com> References: <49A8066D.4090705@colbyconsulting.com> Message-ID: <010f01c99937$e7ca36d0$b75ea470$@net> >5. Red Rover, Red Rover, the nurse says Bend Over. LOL! I LOVED THAT ONE Also, can I repeat this to a woman and survive? >1. Going bra-less pulls all the wrinkles out of your face. From DWUTKA at Marlow.com Fri Feb 27 18:10:16 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Fri, 27 Feb 2009 18:10:16 -0600 Subject: [AccessD] Tina's Treeview example Message-ID: Ok, the sample is at http://www.marlow.com/treeview.zip In the database, there are three tables (to keep it simple). tblSkills, tblVolunteers and tblVolunteerSkills. The first two tables are ID and Name (SkillID and VolunteerID). The third table has both id's and SkillLevel. I put a few skills and two volunteers, Bob and Larry. There is one form, frmVolunteerSkills. It has a Combobox (Combo2...sorry, should have renamed it, but was in a rush). It displays the volunteers (with the bound column being the ID). On the Onclick event, it runs a function 'BuildTreeView' and put's it's value (the volunteer ID) in the intVolunteerID argument. That function opens a recordset from the skills table and creates the Nodes. Ok, Before I continue, a few things to know about treeviews. Treeviews are a control based around nodes. Nodes can either be Root Nodes or Child Nodes. You can also display check boxes or even pictures for each node. On top of that, node 'labels' can also be edited (if you want), so you can even allow someone to change the text of something. If you want an example of how you could allow your user to edit the name of a skill from the treeview, let me know. It takes a little bit of playing around with a treeview and it's node objects to get used to them, but once you do, it is a very powerful interface tool. Back to BuildTreeView. It builds a root node for each skill, and sets it's key to "ID:x" (x being whatever ID the Skill is). It then builds three child nodes with the key of "ID:x:y" where y is 1 through 3 (the skill level). It then opens another recordset from the tblVolunteerSkills, based on the VolunteerID. It runs through that recordset 'checking' the nodes that are applicable (the root node (skill) and the child node (skill level), and as you can see in the code, it does this by using the values from the table being put in the ID:x and ID:x:y format. (It also expands any skill 'root node' that is selected already) Now, the treeview itself is handling the data entry, it's doing this in tvwSkills_NodeCheck (so it does stuff whenever you 'check' a node). Kind of hard to write out what the logic is doing, but here's the gist, when you click on a root node (a skill), if you don't have a skill level selected, it really does nothing (I have commented out code where I was trying to uncheck the node then....wasn't working, and again, this was a quick and dirty example, there should be a way to uncheck the node, the problem is, stepping through the code, it would uncheck it, but when the code finished, the node rechecked itself....odd....). But if it IS checked, so the user is 'unchecking' a skill, it unchecks it's child nodes (the skill levels), and deletes the appropriate record in tblVolunteerSkills. If you check a skill level, it unchecks any other skill level (so if skill level 1 for Cooking is checked, and the user checks skill Level 2 for cooking, Skill Level 1 for cooking unchecks itself, so it gives the illusion of only being able to check one skill level....like a radio button option box would...), it then tries to 'update' tblVolunteerSkills and if no records return from that, it 'inserts' the appropriate record. It also 'checks' it's parent root node. If you uncheck a skill level, it unchecks it's parent, and deletes the appropriate record from tblVolunteerSkills. Like I said, this is a quick and dirty example, but it should show what you can do with a treeview, and should also satisfy your 'click happy' end user! ;) Drew The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From jwcolby at colbyconsulting.com Fri Feb 27 18:13:21 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 27 Feb 2009 19:13:21 -0500 Subject: [AccessD] Automate Excel macro with parameters In-Reply-To: <005c01c9990c$7b07dd20$0301a8c0@MSIMMSWS> References: <49A7FDCA.7080603@colbyconsulting.com> <7E02B06E41E5404589EDDDA2BAA1C5A86BD75D@sanex101.nciinc.com> <49A8100B.3000201@colbyconsulting.com> <49A82F81.4010502@colbyconsulting.com> <005c01c9990c$7b07dd20$0301a8c0@MSIMMSWS> Message-ID: <49A881A1.5060500@colbyconsulting.com> I haven't yet, unfortunately work gets in the way. But I will. Thanks for the example. John W. Colby www.ColbyConsulting.com Mark Simms wrote: > Hey John - did you try Application.Evalute ? > Here's a quick and dirty example... > > Private Sub testevS(ParamArray parms() As Variant) > > Dim i As Long > Dim strMsg As String > For i = LBound(parms) To UBound(parms) - 1 > strMsg = strMsg & parms(i) & "," > Next > strMsg = strMsg & parms(i) > MsgBox "sub parms=" & strMsg > End Sub > > Sub testeval() > Application.Evaluate ("testevS(" & """x""" & ",123" & ")") > End Sub > >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Friday, February 27, 2009 1:23 PM >> To: Access Developers discussion and problem solving >> Subject: Re: [AccessD] Automate Excel macro with parameters >> >> Mark, >> >> > Just curious...is there a benefit to having excel get the >> data and format vs. Access getting the data, exporting, and >> formatting the sheets? >> >> >> Well... >> >> That is a quasi-philosophical argument with touches of realism. >> >> In general (given I am not an Excel kinda guy) I have found >> it easiest to use the macro recorder to >> record a macro doing whatever I wanted done, apply >> formatting, bold, back color, whatever. Cleanup >> the code (the macro code is ugly) and save that as a macro. >> Now call the macro from Access and you >> are done. Create a template spreadsheet with all of the code. >> >> I wrote code in the spreadsheet to open an ado connection to >> SQL Server given a server name and >> database name. Then I open a recordset right in Excel. >> Iterating the recordset I pull the data and >> stuff it into cells. Not spectacularly fast, and perhaps >> even entirely inefficient, however it >> works. When I do not know what I am doing, I am all about >> getting it working, then make it better. >> >> Now that I can open the recordset and populate a single >> spreadsheet, I call that same code over and >> over, changing the name of the sheet and the view back in SQL Server. >> >> When I am done I have a spreadsheet with about 17 sheets >> filled out, and formatted the way I like. >> >> Doing it inside of Excel allows me to instantly look back at >> the sheet and SEE what I just did or >> didn't do. Just click on the tabs. I don't even need Access >> open to get the spreadsheet working. >> >> If you do it in Access, you are writing / correcting your >> code in Access, and playing with Excel to >> see it. >> >> This spreadsheet tells the client the details about the order >> I just processed. I used to actually >> go run the views in SQL Server, then cut and paste the result >> sets into the pages of the workbook. >> I got the spreadsheet automatically importing the data into >> the sheets and have been using it for a >> couple of months. I just had to copy / rename / open the >> template, then manually execute the code >> that fills the pages. MUCH better than having to manually >> execute views back in SQL Server and >> cut/paste the results into the sheets. >> >> I finally got the time to automate copy / renaming the >> template, and then opening the spreadsheet >> from a form I already use as part of my order process for the client. >> >> One more piece automated. >> >> Filling an order used to take me most of a day. It now takes >> me about two to four hours, depending >> on complexity. Someday it will get down to as little as an >> hour. It will probably never fall below >> that because the rest is configuring views out in SQL Server. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Mark A Matte wrote: >>> John, >>> >>> >>> >>> I had an MDB that pulled some data from different >> sources...exported to several different tabs in an Excel >> document...and then formatted each sheet. >>> >>> >>> Just curious...is there a benefit to having excel get the >> data and format vs. Access getting the data, exporting, and >> formatting the sheets? >>> >>> >>> Thanks, >>> >>> >>> >>> Mark >>> >>> >>> >>> >>> >>>> Date: Fri, 27 Feb 2009 11:08:43 -0500 >>>> From: jwcolby at colbyconsulting.com >>>> To: accessd at databaseadvisors.com >>>> Subject: Re: [AccessD] Automate Excel macro with parameters >>>> >>>> Well, that works but of course that is another manual >> labor task. Even more importantly the >>>> spreadsheet is a template. I just found a need to modify >> the template and add yet another piece. >>>> If the code lives in the template then I modify the >> template, not my access database. >>>> The whole point of an Excel Wrapper class is: >>>> >>>> 1) The syntax is arcane if you do not use Excel >>>> 2) It allows the Access developer (me) to do things with >> an Excel workbook / sheet by just calling >>>> methods of a class, passing in parameters. >>>> 3) It allows me to set up Excel operations and click a >> button in access to do those things. >>>> I have an Excel spreadsheet with 16 tabs which I populate >> with numbers from 16 views out in SQL >>>> Server. I can then attach that spreadsheet to an email and >> send it off to a client. I created a >>>> macro in the spreadsheet to fill in the pages, but the >> macro needs the name of the server and the >>>> name of the database in that server. >>>> >>>> Every time I do this I have to open the spreadsheet, click >> tools / Macro / vbEditor, find the macro >>>> that I want, call it from the debug window passing the >> name of the server and database etc. It is >>>> already way better than the cut and paste each sheet from >> the view over in SQL, which is what I used >>>> to do, but it would be even better if I could simply press >> an "excel" button in my Access form and >>>> the spreadsheet opens and the macro runs. >>>> >>>> In fact I have done what I need by pulling the code out of >> my excel class wrapper and calling the >>>> workbook object inside of my access function, but that is >> ugly, and I have to do the same thing any >>>> time (in any code) that I run into a macro with parameters. >>>> >>>> I have run into other places where I want to pass a >> paramarray off to another function that expects >>>> a paramarray. Unfortunately what happens is that the >> paramarray gets passed into the destination as >>>> an array, not a lit of items in that array, and the >> receiving function does not know what to do with >>>> the array. Sigh. >>>> >>>> John W. Colby >>>> www.ColbyConsulting.com >>>> >>>> >>>> Hewson, Jim wrote: >>>>> If the Excel macro is always the same one, why not pull >> the code into >>>>> Access and wrap it into a function? >>>>> Call the function each time you want to change the parameters. >>>>> >>>>> Jim >>>>> >>>>> >>>>> -----Original Message----- >>>>> From: accessd-bounces at databaseadvisors.com >>>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >>>>> Sent: Friday, February 27, 2009 8:51 AM >>>>> To: Access Developers discussion and problem solving >>>>> Subject: [AccessD] Automate Excel macro with parameters >>>>> >>>>> I am trying to figure out how to automate an excel macro >> with an unknown >>>>> number of parameters. I >>>>> doubt it is possible but I thought I would ask. >>>>> >>>>> If you want to run a macro in Excel you have to get a >> pointer to the >>>>> workbook. You then use the syntax: >>>>> >>>>> xlBook.Application.Run "MacroName", "string parameter 1", >>>>> intParameter2, etc >>>>> >>>>> In other words, you can pass as many parameters as the >> macro needs. >>>>> So... >>>>> >>>>> I have long ago written a class (of course) that wraps Excel >>>>> functionality. It can open, modify, >>>>> close etc an Excel workbook. An excellent example BTW of >> where it is >>>>> useful to create a class that >>>>> does not inherit anything. To my knowledge even .Net >> cannot inherit an >>>>> Excel application. >>>>> >>>>> So one of the methods of this class can run a macro in >> the workbook. >>>>> However to this point it can >>>>> only automate a macro that does not take parameters. I >> want to add a >>>>> ParamArray to my method to >>>>> feed in parameters to be sent to the macro. >>>>> >>>>> The only way I can see to do this (and it is UGLY) is to >> build a case >>>>> statement that looks at how >>>>> many variables are in the paramarray and just select a different >>>>> xlbook.Application.Run statement: >>>>> >>>>> (pseudocode) >>>>> >>>>> select case ubound(MyParamArray) >>>>> case 1 >>>>> xlBook.Application.Run "MacroName", MyParamArray(0) >>>>> case 2 >>>>> xlBook.Application.Run "MacroName", MyParamArray(0), >>>>> MyParamArray(1) >>>>> case 3 >>>>> xlBook.Application.Run "MacroName", MyParamArray(0), >>>>> MyParamArray(1), MyParamArray(3) >>>>> end select >>>>> >>>>> Do that for a number that would meet most cases and punt. >>>>> >>>>> I HATE punting! >>>>> >>>>> Has anyone ever solved the problem of passing the contents of a >>>>> ParamArray to another object that >>>>> accepts a paramarray? >>>>> >>>> -- >>>> AccessD mailing list >>>> AccessD at databaseadvisors.com >>>> http://databaseadvisors.com/mailman/listinfo/accessd >>>> Website: http://www.databaseadvisors.com >>> _________________________________________________________________ >>> Windows LiveT HotmailR.more than just e-mail. >>> >> http://windowslive.com/howitworks?ocid=TXT_TAGLM_WL_t2_hm_just > gotbetter_howitworks_022009 >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > > From jwcolby at colbyconsulting.com Fri Feb 27 18:14:37 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 27 Feb 2009 19:14:37 -0500 Subject: [AccessD] Make Multiple Selections on a Form and Create a Recordfor Each In-Reply-To: References: <62522b507df940af8dbf9822546dcb52.tinanfields@torchlake.com> <49A86FE9.10209@torchlake.com> Message-ID: <49A881ED.2010301@colbyconsulting.com> I always wished I could "whip up" a treeview example. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > Ok Tina, I put the sample at http://www.marlow.com/treeview.zip > > Going to take a break for a minute, and I'll come back and post an > explanation of how it works. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Tina Norris > Fields > Sent: Friday, February 27, 2009 4:58 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Make Multiple Selections on a Form and Create a > Recordfor Each > > Hi Drew, > No, I'm not at all averse to using it - I just don't know much about how > > to. Would you care to expand on the subject? > Tina > > Drew Wutka wrote: >> Tina, are you averse to using a treeview control? >> >> Drew >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of >> tinanfields at torchlake.com >> Sent: Friday, February 27, 2009 12:22 PM >> To: AccessD at databaseadvisors.com >> Subject: [AccessD] Make Multiple Selections on a Form and Create a >> Recordfor Each >> >> I hope the subject line isn't too confusing :) >> >> Here's the situation: volunteers fill out a paper form indicating > which >> skills they have and at >> what level (1 to 3, with 1 being high). When this database was built >> (1999), the developer crafted >> a macro that added one record for every possible skill (32, so far) to >> the table of volunteers and >> skills. The data-entry person then went down the rows, clicking the >> ones that were to be selected, >> and entering the skill level number. This results in lots of empty >> records. Since then, the >> database crashed and the macro no longer works anyway. >> >> I want to craft a form with a checkbox for each skill and a drop-list > of >> the skill-levels, so the >> data-entry person can click the checkbox and select the skill level - >> then click a button that will >> place one record for each skill selected into the table of volunteers >> and skills. This gives the >> data entry person the same ease of entry, but does not create lots of >> empty records. I saw >> something in the ADH that captures the number of selections made, and >> I'm guessing I need to start >> there, but I could sure use some inspiration on this. If three skills >> are checked, I want three >> records entered for that volunteer in the volunteers and skills table > - >> each one referencing one of >> the selected skills. >> >> Thanks for any ideas. >> >> Tina >> >> >> From jwcolby at colbyconsulting.com Fri Feb 27 18:18:08 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 27 Feb 2009 19:18:08 -0500 Subject: [AccessD] Tina's Treeview example In-Reply-To: References: Message-ID: <49A882C0.9090306@colbyconsulting.com> OMG, combo2? COMBO2??? I will NEVER look at your code again!!! ;) John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > Ok, the sample is at http://www.marlow.com/treeview.zip > > > > In the database, there are three tables (to keep it simple). tblSkills, > tblVolunteers and tblVolunteerSkills. > > > > The first two tables are ID and Name (SkillID and VolunteerID). The > third table has both id's and SkillLevel. > > > > I put a few skills and two volunteers, Bob and Larry. > > > > There is one form, frmVolunteerSkills. > > > > It has a Combobox (Combo2...sorry, should have renamed it, but was in a > rush). It displays the volunteers (with the bound column being the ID). > > > > On the Onclick event, it runs a function 'BuildTreeView' and put's it's > value (the volunteer ID) in the intVolunteerID argument. > > > > That function opens a recordset from the skills table and creates the > Nodes. > > > > Ok, Before I continue, a few things to know about treeviews. Treeviews > are a control based around nodes. Nodes can either be Root Nodes or > Child Nodes. You can also display check boxes or even pictures for each > node. On top of that, node 'labels' can also be edited (if you want), > so you can even allow someone to change the text of something. If you > want an example of how you could allow your user to edit the name of a > skill from the treeview, let me know. It takes a little bit of playing > around with a treeview and it's node objects to get used to them, but > once you do, it is a very powerful interface tool. > > > > Back to BuildTreeView. It builds a root node for each skill, and sets > it's key to "ID:x" (x being whatever ID the Skill is). It then builds > three child nodes with the key of "ID:x:y" where y is 1 through 3 (the > skill level). > > > > It then opens another recordset from the tblVolunteerSkills, based on > the VolunteerID. It runs through that recordset 'checking' the nodes > that are applicable (the root node (skill) and the child node (skill > level), and as you can see in the code, it does this by using the values > from the table being put in the ID:x and ID:x:y format. (It also expands > any skill 'root node' that is selected already) > > > > Now, the treeview itself is handling the data entry, it's doing this in > tvwSkills_NodeCheck (so it does stuff whenever you 'check' a node). > Kind of hard to write out what the logic is doing, but here's the gist, > when you click on a root node (a skill), if you don't have a skill level > selected, it really does nothing (I have commented out code where I was > trying to uncheck the node then....wasn't working, and again, this was a > quick and dirty example, there should be a way to uncheck the node, the > problem is, stepping through the code, it would uncheck it, but when the > code finished, the node rechecked itself....odd....). But if it IS > checked, so the user is 'unchecking' a skill, it unchecks it's child > nodes (the skill levels), and deletes the appropriate record in > tblVolunteerSkills. > > > > If you check a skill level, it unchecks any other skill level (so if > skill level 1 for Cooking is checked, and the user checks skill Level 2 > for cooking, Skill Level 1 for cooking unchecks itself, so it gives the > illusion of only being able to check one skill level....like a radio > button option box would...), it then tries to 'update' > tblVolunteerSkills and if no records return from that, it 'inserts' the > appropriate record. It also 'checks' it's parent root node. > > > > If you uncheck a skill level, it unchecks it's parent, and deletes the > appropriate record from tblVolunteerSkills. > > > > Like I said, this is a quick and dirty example, but it should show what > you can do with a treeview, and should also satisfy your 'click happy' > end user! ;) > > > > Drew > > > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > From jwcolby at colbyconsulting.com Fri Feb 27 18:56:50 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 27 Feb 2009 19:56:50 -0500 Subject: [AccessD] SQL - Copy * to another table Message-ID: <49A88BD2.6010505@colbyconsulting.com> Is there a way to get the SQL error statement back from a stored procedure into Access? Or even better is there a way to log the error statement inside of SQL Server? I could read that table from Access if I can log the errors. ATM I am just catching them in a catch statement and PRINGing them to a window in the query window. -- John W. Colby www.ColbyConsulting.com From jwcolby at colbyconsulting.com Fri Feb 27 19:06:41 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Fri, 27 Feb 2009 20:06:41 -0500 Subject: [AccessD] Make Multiple Selections on a Form and Create aRecordfor Each In-Reply-To: <49A867CD.9020703@torchlake.com> References: <62522b507df940af8dbf9822546dcb52.tinanfields@torchlake.com> <9EB89FFF93F8418C902338BF8C92C59D@danwaters><49A85E1B.1070906@torchlake.com> <49A863E0.4090500@colbyconsulting.com> <49A867CD.9020703@torchlake.com> Message-ID: <49A88E21.3090301@colbyconsulting.com> The first part is to write the code to create and delete the records in the table. Once you have that... it is simple to call the function from the afterupdate of the checkbox. Once you have that, code to read the records and set up the checkboxes as the form loads. Once you have that I would most likely write a class to encapsulate all of that code, along with an event handler for the checkbox. A simple function that can be passed the checkboxes into a paramarray, which instantiates the classes and stores them in a collection. But then I am a class kinda guy. Others here would do it without the class and embed the event handler right in the form's class. The class pulls a ton of event stubs out of the form's class and embeds that code into the checkbox class. It is just cleaner to read the form class. I have to say that check boxes don't need a mouse. The user can tab through the check boxes tapping the space bar. That is waaaaay fast. John W. Colby www.ColbyConsulting.com Tina Norris Fields wrote: > John, > Yes, that's what I want to do. How? > Tina > > jwcolby wrote: >> Tina, >> >> Load the check boxes from code that looks at all of the records in the table for the volunteer selected. >> >> Only create records in the table for boxes checked. >> Delete records (if any) for boxes left unchecked. >> >> You could even create and delete the records in real time as they check and uncheck boxes. >> >> John W. Colby >> www.ColbyConsulting.com >> >> >> Tina Norris Fields wrote: >> >>> Hi Dan, >>> >>> Thanks for your response. I don't think I did a good job explaining the >>> matter. The three tables exist already - they have horrid names, so I >>> will use your table names to explain :) >>> >>> I want to make a form with the 32 skills all listed - each one followed >>> by a yes/no checkbox and a 1 to 3 droplist. Each skill marked with the >>> checkbox should generate one record to go in the tblVolunteerSkills - >>> this way I can generate all the needed records for one volunteer and >>> his/her skills with one click. This is only to be used at the initial >>> data entry for the volunteer. After that, the usual form w/subform that >>> already exists will be used - there, the skills are in a combo based on >>> the tblSkills. >>> >>> I had already put together the form and subform system, and to me it >>> looked like a good way to enter the data. The data-entry volunteer >>> pointed out that there were many more clicks or keystrokes needed on his >>> part to do the data-entry with the form and subform method. He liked >>> having a list he could simply click his way down, even though that left >>> bunches of records for skills not used. So, I am trying to simulate the >>> earlier situation for him by putting up a form he can click his way >>> through, then click an action button that will generate the individual >>> records of skills for the new volunteer and place them in the >>> tblVolunteerSkills. That's the piece I'm struggling with. Any thoughts >>> on that one? >>> >>> Tina >>> >>> Dan Waters wrote: >>> >>>> Hi Tina, >>>> >>>> You will want three tables: tblVolunteers, tblVolunteerSkills, and >>>> tblSkills. >>>> >>>> tblSkills will be a lookup table. >>>> >>>> tblVolunteers will be a primary table and tblVolunteerSkills will be a >>>> subtable with a one-to-may relationship. >>>> >>>> In your form, I would recommend using a dropdown list to select a Skill, and >>>> radio buttons for the Skill Level. The reason for this is that it's likely >>>> that you'll want to add/change/remove the Skills, and it's less likely that >>>> you'll want to increase or decrease the number of skill levels that you'll >>>> want to record. To change the Skills, you just need to get into the >>>> tblSkills table, and not make any form or code changes. >>>> >>>> You'll also want to have a form for Volunteers (bound to tblVolunteers), and >>>> a subform for the Skills and Levels (bound to tblVolunteerSkills). >>>> >>>> Hope this helps! >>>> Dan >>>> >>>> -----Original Message----- >>>> From: accessd-bounces at databaseadvisors.com >>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of >>>> tinanfields at torchlake.com >>>> Sent: Friday, February 27, 2009 12:22 PM >>>> To: AccessD at databaseadvisors.com >>>> Subject: [AccessD] Make Multiple Selections on a Form and Create a Record >>>> for Each >>>> >>>> I hope the subject line isn't too confusing :) >>>> >>>> Here's the situation: volunteers fill out a paper form indicating which >>>> skills they have and at >>>> what level (1 to 3, with 1 being high). When this database was built >>>> (1999), the developer crafted >>>> a macro that added one record for every possible skill (32, so far) to the >>>> table of volunteers and >>>> skills. The data-entry person then went down the rows, clicking the ones >>>> that were to be selected, >>>> and entering the skill level number. This results in lots of empty records. >>>> Since then, the >>>> database crashed and the macro no longer works anyway. >>>> >>>> I want to craft a form with a checkbox for each skill and a drop-list of the >>>> skill-levels, so the >>>> data-entry person can click the checkbox and select the skill level - then >>>> click a button that will >>>> place one record for each skill selected into the table of volunteers and >>>> skills. This gives the >>>> data entry person the same ease of entry, but does not create lots of empty >>>> records. I saw >>>> something in the ADH that captures the number of selections made, and I'm >>>> guessing I need to start >>>> there, but I could sure use some inspiration on this. If three skills are >>>> checked, I want three >>>> records entered for that volunteer in the volunteers and skills table - each >>>> one referencing one of >>>> the selected skills. >>>> >>>> Thanks for any ideas. >>>> >>>> Tina >>>> >>>> >>>> >>>> From DWUTKA at Marlow.com Fri Feb 27 21:16:46 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Fri, 27 Feb 2009 21:16:46 -0600 Subject: [AccessD] Make Multiple Selections on a Form and Create a Recordfor Each In-Reply-To: <49A881ED.2010301@colbyconsulting.com> Message-ID: I use them a lot in VB. They are very handy. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 27, 2009 6:15 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Make Multiple Selections on a Form and Create a Recordfor Each I always wished I could "whip up" a treeview example. John W. Colby www.ColbyConsulting.com Drew Wutka wrote: > Ok Tina, I put the sample at http://www.marlow.com/treeview.zip > > Going to take a break for a minute, and I'll come back and post an > explanation of how it works. > > Drew > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Tina Norris > Fields > Sent: Friday, February 27, 2009 4:58 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Make Multiple Selections on a Form and Create a > Recordfor Each > > Hi Drew, > No, I'm not at all averse to using it - I just don't know much about how > > to. Would you care to expand on the subject? > Tina > > Drew Wutka wrote: >> Tina, are you averse to using a treeview control? >> >> Drew >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of >> tinanfields at torchlake.com >> Sent: Friday, February 27, 2009 12:22 PM >> To: AccessD at databaseadvisors.com >> Subject: [AccessD] Make Multiple Selections on a Form and Create a >> Recordfor Each >> >> I hope the subject line isn't too confusing :) >> >> Here's the situation: volunteers fill out a paper form indicating > which >> skills they have and at >> what level (1 to 3, with 1 being high). When this database was built >> (1999), the developer crafted >> a macro that added one record for every possible skill (32, so far) to >> the table of volunteers and >> skills. The data-entry person then went down the rows, clicking the >> ones that were to be selected, >> and entering the skill level number. This results in lots of empty >> records. Since then, the >> database crashed and the macro no longer works anyway. >> >> I want to craft a form with a checkbox for each skill and a drop-list > of >> the skill-levels, so the >> data-entry person can click the checkbox and select the skill level - >> then click a button that will >> place one record for each skill selected into the table of volunteers >> and skills. This gives the >> data entry person the same ease of entry, but does not create lots of >> empty records. I saw >> something in the ADH that captures the number of selections made, and >> I'm guessing I need to start >> there, but I could sure use some inspiration on this. If three skills >> are checked, I want three >> records entered for that volunteer in the volunteers and skills table > - >> each one referencing one of >> the selected skills. >> >> Thanks for any ideas. >> >> Tina >> >> >> -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From bheid at sc.rr.com Fri Feb 27 23:18:49 2009 From: bheid at sc.rr.com (Bobby Heid) Date: Sat, 28 Feb 2009 00:18:49 -0500 Subject: [AccessD] SQL - Copy * to another table In-Reply-To: <49A88BD2.6010505@colbyconsulting.com> References: <49A88BD2.6010505@colbyconsulting.com> Message-ID: <000601c99964$09d604d0$1d820e70$@rr.com> John, I'd look at @@ERROR and see what all information you can get from that. There may be related items. I use SQL from .Net and just catch any exceptions. Thanks, Bobby -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Friday, February 27, 2009 7:57 PM To: Access Developers discussion and problem solving Subject: [AccessD] SQL - Copy * to another table Is there a way to get the SQL error statement back from a stored procedure into Access? Or even better is there a way to log the error statement inside of SQL Server? I could read that table from Access if I can log the errors. ATM I am just catching them in a catch statement and PRINGing them to a window in the query window. -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From gustav at cactus.dk Sat Feb 28 00:36:53 2009 From: gustav at cactus.dk (Gustav Brock) Date: Sat, 28 Feb 2009 07:36:53 +0100 Subject: [AccessD] Automate Excel macro with parameters Message-ID: Hi John "Tried to do"? What does that mean? How could you forget? Named Range is one of the gems of Excel and should be mastered by anyone to avoid typing cell coordinates. /gustav >>> jwcolby at colbyconsulting.com 27-02-09 20:07 >>> I tried to do named ranges and couldn't get it figured out in time so I just went the brute force method. I will go back and revisit that. If I can get that working then I can pop it in the Excel class wrapper and it will be there the next time. Thanks! John W. Colby www.ColbyConsulting.com From gustav at cactus.dk Sat Feb 28 01:10:00 2009 From: gustav at cactus.dk (Gustav Brock) Date: Sat, 28 Feb 2009 08:10:00 +0100 Subject: [AccessD] Scrum (was: Find First in an Array? ...) Message-ID: Hi Shamil Not much response to your proposal ... I guess our fellow listers are too busy or just don't feel the need to experience how to work in a group. To be honest, neither do I have currently that need but as "you never know" I am prepared to allocate the time you suggest. That makes two. But two? Doesn't it require three "to make a crowd"? Your adjusted description of the project fits me very well. /gustav >>> mcp2004 at mail.ru 26-02-09 10:30 >>> Hi Gustav, Answering your question first: I do not have experience working with ADO.NET Entity Model. But I do have development/deployment experience of making large ASP.NET and .NET applications with thoruzands of C# classes etc.etc. Those applications do use my own light ORM (BLL <-> DAL) framework etc.etc. I have plans (if time/resources allow) to substitute this my custom ORM framework's BLL <-> DAL layer with ADO.NET Entity Model. IOW I'm quite interested to get working experience with ADO.NET Entity Framework... Proposal: get a SCRUM team of seven people to first make as simple as possible MS Access Northwind -> .NET WinForms Northwind with MS SQL 2005 backend conversion. As the second SCRUM project introduce ADO.NET Entity model in converted NorthWind .NET WinForms application. As you have seen in my previous message I first wanted to make MS Access Northwind to .NET WinForms with MS Access backend conversion, then make double/switchable MS Access/MS SQL ORM layer and only then probably make switchable triple backend solution with MS Access/simple custom MS SQL ORM mapper/ADO.NET ORM mapper layer but it looks like this idea doesn't enroll any volunteers to make such SCRUM projects together and to get them pablished on AccessD... Let's try to make transition/conversion of MS Access Northwind to .NET WinForms Northwind with MS SQL 2005 backebd and ADO.NET Entiry Model ORM mapping in two distributed SCRUM projects? I mean doing all that investigation/self-education work alone is rather boring, and time consuming - I'd expect if we try to make it SCRUM-way that would be some fun, and when we get in flow mode that would go much faster than one can imagine fighting with all that new technologies alone... But it's important to note that every SCRUM team member should make a commitment to invest up to five hours within working week into this "joint investigation public project" otherwise it will not work... Anybody to join? Or at least to start talking here about other options to make such a SCRUM project reality? Are five hours investment looking too much? Is SCRUM looking something like is not needed at all in such a context? All and every comments are very welcome... Thank you. -- Shamil P.S. I do think that with nowadays mainstream trend of computing power getting moved into "skies" ("clouds" :) ) and boradband wireless Internet connections getting routine infrastructure everywhere in this World, it would soon become an affrodable for every even small, even one man software development shop to promptly unite with other shops when needed into "virtual" teams to develop an urgent to be released project using agile and SCRUM distributed way - small non-profit/investigation projects could be done that way right now - doing them that way would be much more effective than just discussing the ways and posting short samples how this or that feature/technology coudl be used in real life projects... You can call me a naive deamer... Please remeber I started to promote DEEP-object concept/WithEvents in 1998: http://smsconsulting.spb.ru/shamil_s/articles/deep4sa.htm http://www.4tops.com/ms_access_tips/secwtrk.htm That were rather naive tries as far as I see them now but anyway one article was promptly published in Smart Access: http://smsconsulting.spb.ru/shamil_s/articles/deepcnpt.htm Another was prepared to publication but didn't get published because of my being inexperienced with publishing editors: http://smsconsulting.spb.ru/shamil_s/articles/wew.htm As you can see from what happens here in Access-D nowadays my naive tries were made in proper direction, maybe too early for mainstream VB/VBA development... I call them naive tries because that were a kind of sub-case of Observer/MVC Object Pattern (http://en.wikipedia.org/wiki/Design_pattern_(computer_science)) which was already known that times but which I was unware about (BTW nowadays well-known implementations of Observer/MVC object pattern are ASP.NET MVC (http://www.asp.net/mvc/) and partially, I believe/guess, but I do not know for sure - Ruby on Rails (http://rubyonrails.org/)... I think that one of nowadays's trends is distributed agile/SCRUM projects development - I'm not the only one who thinks so (google it!), and this trend will soon become one of mainstream development practices with the developers being experienced/skilled to work this way getting more competetive than the others... I still can be wrong, I do not pretend on overgeneralizations - please tell me if my current tries to make a trial investigation SCRUM team enrolling AccessD members into it look naive and too ambitious... You're all busy developers I know, I also am... :) Thank you. -----Original Message----- From: "Gustav Brock" <~!B*+R^&>To: <~!B*+R^&>Date: Thu, 26 Feb 2009 09:08:35 +0100 Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > Hi Charlotte > > Yes, even though datatables are strongly typed, I would like to move further and the ADO.NET Entity Model offers that. However, wether this represents _the_ solution or if one should go with "my own" datasets or something else, there are many opinions about. > > So to find out, I'm working on a small project now where I use the ADO.NET Entity Model. > Do you - or anyone else here - have experience with this? > > /gustav > > > >>> cfoust at infostatsystems.com 25-02-2009 23:37 >>> > Gustav, > > You really need to get familiar with strongly typed datasets in .Net. > You can build data entity classes that inherit the typed datasets and > then program against the data entity instead of directly against > tableadapters and datatables. > > Charlotte Foust > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Wednesday, February 25, 2009 2:24 PM > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > > Hi Shamil > > That could be an interesting exercise - all these tools would be new to > me, and converting an Access app to .NET WinForms will probably be a > task we all will face sooner or later (William is all about it, so he > says). I have only done WinForms from scratch. > > One discussion will be how to perform data binding. Having used only > datatableadapters and datatables, I find all the SqlClient and > SqlCommand stuff for totally waste of time while I on the other hand > currently is struggling with the ADO.NET Entity Model as it looks > promising to me for many purposes. A bit like the tag/class discussion > ... which I stayed off as I've never used a Tag for anything. > > /gustav > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Sat Feb 28 06:31:05 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 28 Feb 2009 07:31:05 -0500 Subject: [AccessD] Automate Excel macro with parameters In-Reply-To: References: Message-ID: <49A92E89.3040404@colbyconsulting.com> Gustav Unfortunately i do not have ongoing Excel development, so I do things as the need comes up over the years. In this case I was trying to set named ranges in the template, then later (at run time) to find the named ranges in code. That was what failed. The named ranges were there, you could see that they existed in the tools inside of Access, but when I would say to put something into the range it wouldn't go. As it happened I just had to get something out, and being well capable of doing it the crude way using code, I did that. I am absolutely certain that using the named range is the right way, and I will be revisiting my code. John W. Colby www.ColbyConsulting.com Gustav Brock wrote: > Hi John > > "Tried to do"? What does that mean? How could you forget? > > Named Range is one of the gems of Excel and should be mastered by anyone to avoid typing cell coordinates. > > /gustav > > >>>> jwcolby at colbyconsulting.com 27-02-09 20:07 >>> > I tried to do named ranges and couldn't get it figured out in time so I just went the brute force > method. I will go back and revisit that. If I can get that working then I can pop it in the Excel > class wrapper and it will be there the next time. > > Thanks! > > John W. Colby > www.ColbyConsulting.com > > From jwcolby at colbyconsulting.com Sat Feb 28 07:17:05 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 28 Feb 2009 08:17:05 -0500 Subject: [AccessD] Automate Excel macro with parameters In-Reply-To: <49A92E89.3040404@colbyconsulting.com> References: <49A92E89.3040404@colbyconsulting.com> Message-ID: <49A93951.4000700@colbyconsulting.com> >The named ranges were there, you could see that they existed in the tools inside of Access, Uhh... inside of EXCEL... John W. Colby www.ColbyConsulting.com jwcolby wrote: > Gustav > > Unfortunately i do not have ongoing Excel development, so I do things as the need comes up over the > years. In this case I was trying to set named ranges in the template, then later (at run time) to > find the named ranges in code. That was what failed. The named ranges were there, you could see > that they existed in the tools inside of Access, but when I would say to put something into the > range it wouldn't go. > > As it happened I just had to get something out, and being well capable of doing it the crude way > using code, I did that. > > I am absolutely certain that using the named range is the right way, and I will be revisiting my code. > > John W. Colby > www.ColbyConsulting.com > > > Gustav Brock wrote: >> Hi John >> >> "Tried to do"? What does that mean? How could you forget? >> >> Named Range is one of the gems of Excel and should be mastered by anyone to avoid typing cell coordinates. >> >> /gustav >> >> >>>>> jwcolby at colbyconsulting.com 27-02-09 20:07 >>> >> I tried to do named ranges and couldn't get it figured out in time so I just went the brute force >> method. I will go back and revisit that. If I can get that working then I can pop it in the Excel >> class wrapper and it will be there the next time. >> >> Thanks! >> >> John W. Colby >> www.ColbyConsulting.com >> >> From jwcolby at colbyconsulting.com Sat Feb 28 07:19:19 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 28 Feb 2009 08:19:19 -0500 Subject: [AccessD] SQL - Copy * to another table In-Reply-To: <000601c99964$09d604d0$1d820e70$@rr.com> References: <49A88BD2.6010505@colbyconsulting.com> <000601c99964$09d604d0$1d820e70$@rr.com> Message-ID: <49A939D7.9080404@colbyconsulting.com> I am kinda dense sometimes. Charlotte's code pops up an error message when something goes wrong. Duuhhhh. All I have to do is to return that to my calling code, log that to a table inside of Access - whatever. John W. Colby www.ColbyConsulting.com Bobby Heid wrote: > John, > > I'd look at @@ERROR and see what all information you can get from that. > There may be related items. I use SQL from .Net and just catch any > exceptions. > > Thanks, > Bobby > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 27, 2009 7:57 PM > To: Access Developers discussion and problem solving > Subject: [AccessD] SQL - Copy * to another table > > Is there a way to get the SQL error statement back from a stored procedure > into Access? Or even > better is there a way to log the error statement inside of SQL Server? I > could read that table from > Access if I can log the errors. ATM I am just catching them in a catch > statement and PRINGing them > to a window in the query window. > From mcp2004 at mail.ru Sat Feb 28 08:43:15 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Sat, 28 Feb 2009 17:43:15 +0300 Subject: [AccessD] =?koi8-r?b?U2NydW0gKHdhczogRmluZCBGaXJzdCBpbiBhbiBBcnJh?= =?koi8-r?b?eT8gLi4uKQ==?= In-Reply-To: References: Message-ID: Hi Gustav and Fellow Listers, Yes, the response on my proposal is a bit discouraging but I'm continuing preparation here for the conversion project of MS Access NorthWind sample app to .NET WinForms. Yes, Gustav, we can try to do it just with you but SCRUM/agile process needs a little bit more team members - at least 4-5: if doing this project by using just your and mine efforts it can be done agile way but not SCRUM, and it will take more time, and what is most important it will not show advantages of working as a team - and the advantages in this case is not only joining the efforts and skills - the main advantage is to experience how teamwork influences one's own views and insights - and it does influence then very effectively - I mean that - I have just experienced that during CSM course in Helsinki. Even participating for years in great dicussion lists as this AccessD one do not change one's stereotypes and (conservative) ways of thinking as SCRUM/agile teamwork does... I plan to keep preparing SCRUM/agile infrastructure for the Northwind conversion project within the next week - in my plans is to setup DNN site - first step is done: http://shamils-4.hosting.parking.ru/dnn49 nothing except registration there yet but it's up&running - I "just" need to add some DNN modules - do not know how to do that yet - plan to do that within the next week - I can keep posting SCRUM related info on this site as well as we can have wiki board on it to have "daily stand-up meetings" as well as I can setup newlist on it to have everybody registered and subscribed to this newlist informed on what is happening. Of course it will be forwarded here - the best woudl be to have separate SCRUM%Access-D list but it's probably too early? I'm also evaluating this software http://www.targetprocess.com/Product.aspx to have our project tasks and their completion progress status easily manageable and viewvable by every team member. I also expect (they talk about integration with CVS but I haven't yet evaluated how it's done) this software will allow to keep distributed source control for the team. This software seems to have a free community edition and if that is true then I can install it on my ASP.NET hosting web site. Please everybody interested help me to evaluate how useful it is for our purposes. If you can find any better ASP.NET alternatives that woull be very useful. I persoally like a lot this Team Taskboard of SCRUMWorks software: http://danube.com/sw_flash/feature/features-team_taskboard.html but this software is JAVA based and a "black-box" for me - I'd not use it because of that. I'm currently spending considerably more than one hour here to prepare all that - I can't ask to spend that much time you or other AcceessD members but when everything ready I'd propose to strickly keep the context of spending not more than one hour (5 hours total per week) for this project. Well, maybe some more time discussing here how it will be proceeding... I'd set 9th of Macrh 2009 as the start date for this project - OK? - if nobody will join us by that date we will try to do it together with you. Everybody are welcome! If to not participate in this project by doing some simple .NET forms design/program then at least to help us to evaluate how much this or that feature/task will take to get implemented. This is so called "estimation using planning poker cards" - http://www.crisp.se/planningpoker - doing such an estimation by two people could result in not so good results as when it's done by 5 or more people. Here are some links on SCRUM/agile and related issues - I will keep posting links like that to get convinced some more AccessD members to join our project: Tobias Mayer - my facilitator during SCRUM course there in Helsinki: http://www.danube.com/blog/tobias_mayer/ Agile software development info: http://en.wikipedia.org/wiki/Agile_software_development Scale Back: Small is Beautiful - how group evaluation/planning results in simple but very good results: http://agilethinking.net/blog/2008/08/18/scale-back-small-is-beautiful Extreme Scrum (154KB) https://www-927.ibm.com/ibm/cas/archives/2007/data/Agile/Extreme_Scrum.pdf What happens when we are all connected - Future Views http://www.youtube.com/watch?v=HqPs0xuG39Q (~6 min) "Only 3% of the world is on broadband today, and it's neither cheap, fast or mobile enough. This will change in the next 2-3 years, and the implications are huge: everyone shares, everyone networks with strangers-like-me, everyone co-creates, everything is connected. A video by Futurist and Author Gerd Leonhard" Working on SCRUM/Agile infrastructure here/expecting for more AccessD to connect this project... Please comment on this my posting - all and every comments and contributions are very welcome! Thank you. -- Shamil -----Original Message----- From: "Gustav Brock" To: Date: Sat, 28 Feb 2009 08:10:00 +0100 Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > Hi Shamil > > Not much response to your proposal ... I guess our fellow listers are too busy or just don't feel the need to experience how to work in a group. > To be honest, neither do I have currently that need but as "you never know" I am prepared to allocate the time you suggest. That makes two. But two? Doesn't it require three "to make a crowd"? > > Your adjusted description of the project fits me very well. > > /gustav > <<< tail trimmed >>> From Gustav at cactus.dk Sat Feb 28 09:03:21 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Sat, 28 Feb 2009 16:03:21 +0100 Subject: [AccessD] Automate Excel macro with parameters Message-ID: Hi John Now, I don't quite know what you are trying to do, but it sounds as what you were dealing with in Jan. 2006 ... Please look up the threads: "Syntax for seeing named range in excel" for the dates 19, 20, and 21 and indeed: "Setting data into and getting data from Named Range" for the date 23 and 24 ... I have it WORKING!!! Yea!!! What a learning experience this has been. /gustav >>> jwcolby at colbyconsulting.com 28-02-2009 14:17 >>> >The named ranges were there, you could see that they existed in the tools inside of Access, Uhh... inside of EXCEL... John W. Colby www.ColbyConsulting.com jwcolby wrote: > Gustav > > Unfortunately i do not have ongoing Excel development, so I do things as the need comes up over the > years. In this case I was trying to set named ranges in the template, then later (at run time) to > find the named ranges in code. That was what failed. The named ranges were there, you could see > that they existed in the tools inside of Access, but when I would say to put something into the > range it wouldn't go. > > As it happened I just had to get something out, and being well capable of doing it the crude way > using code, I did that. > > I am absolutely certain that using the named range is the right way, and I will be revisiting my code. > > John W. Colby > www.ColbyConsulting.com > > > Gustav Brock wrote: >> Hi John >> >> "Tried to do"? What does that mean? How could you forget? >> >> Named Range is one of the gems of Excel and should be mastered by anyone to avoid typing cell coordinates. >> >> /gustav >> >> >>>>> jwcolby at colbyconsulting.com 27-02-09 20:07 >>> >> I tried to do named ranges and couldn't get it figured out in time so I just went the brute force >> method. I will go back and revisit that. If I can get that working then I can pop it in the Excel >> class wrapper and it will be there the next time. >> >> Thanks! >> >> John W. Colby >> www.ColbyConsulting.com From tinanfields at torchlake.com Sat Feb 28 09:25:54 2009 From: tinanfields at torchlake.com (Tina Norris Fields) Date: Sat, 28 Feb 2009 10:25:54 -0500 Subject: [AccessD] Make Multiple Selections on a Form and CreateaRecordfor Each In-Reply-To: <49A88E21.3090301@colbyconsulting.com> References: <62522b507df940af8dbf9822546dcb52.tinanfields@torchlake.com> <9EB89FFF93F8418C902338BF8C92C59D@danwaters><49A85E1B.1070906@torchlake.com> <49A863E0.4090500@colbyconsulting.com><49A867CD.9020703@torchlake.com> <49A88E21.3090301@colbyconsulting.com> Message-ID: <49A95782.3020508@torchlake.com> Thanks John. I'll start working my way through the code to make and delete the records. We'll see how I do. I agree, you are a "class" guy - in both senses. And, yes, I know, tabbing and spacing are fast - but that requires knowing and loving the keyboard, and clearly the man I am dealing with does not. Tina jwcolby wrote: > The first part is to write the code to create and delete the records in the table. Once you have > that... it is simple to call the function from the afterupdate of the checkbox. Once you have that, > code to read the records and set up the checkboxes as the form loads. > > Once you have that I would most likely write a class to encapsulate all of that code, along with an > event handler for the checkbox. A simple function that can be passed the checkboxes into a > paramarray, which instantiates the classes and stores them in a collection. > > But then I am a class kinda guy. Others here would do it without the class and embed the event > handler right in the form's class. The class pulls a ton of event stubs out of the form's class and > embeds that code into the checkbox class. It is just cleaner to read the form class. > > I have to say that check boxes don't need a mouse. The user can tab through the check boxes tapping > the space bar. That is waaaaay fast. > > John W. Colby > www.ColbyConsulting.com > > > Tina Norris Fields wrote: > >> John, >> Yes, that's what I want to do. How? >> Tina >> >> jwcolby wrote: >> >>> Tina, >>> >>> Load the check boxes from code that looks at all of the records in the table for the volunteer selected. >>> >>> Only create records in the table for boxes checked. >>> Delete records (if any) for boxes left unchecked. >>> >>> You could even create and delete the records in real time as they check and uncheck boxes. >>> >>> John W. Colby >>> www.ColbyConsulting.com >>> >>> >>> Tina Norris Fields wrote: >>> >>> >>>> Hi Dan, >>>> >>>> Thanks for your response. I don't think I did a good job explaining the >>>> matter. The three tables exist already - they have horrid names, so I >>>> will use your table names to explain :) >>>> >>>> I want to make a form with the 32 skills all listed - each one followed >>>> by a yes/no checkbox and a 1 to 3 droplist. Each skill marked with the >>>> checkbox should generate one record to go in the tblVolunteerSkills - >>>> this way I can generate all the needed records for one volunteer and >>>> his/her skills with one click. This is only to be used at the initial >>>> data entry for the volunteer. After that, the usual form w/subform that >>>> already exists will be used - there, the skills are in a combo based on >>>> the tblSkills. >>>> >>>> I had already put together the form and subform system, and to me it >>>> looked like a good way to enter the data. The data-entry volunteer >>>> pointed out that there were many more clicks or keystrokes needed on his >>>> part to do the data-entry with the form and subform method. He liked >>>> having a list he could simply click his way down, even though that left >>>> bunches of records for skills not used. So, I am trying to simulate the >>>> earlier situation for him by putting up a form he can click his way >>>> through, then click an action button that will generate the individual >>>> records of skills for the new volunteer and place them in the >>>> tblVolunteerSkills. That's the piece I'm struggling with. Any thoughts >>>> on that one? >>>> >>>> Tina >>>> >>>> Dan Waters wrote: >>>> >>>> >>>>> Hi Tina, >>>>> >>>>> You will want three tables: tblVolunteers, tblVolunteerSkills, and >>>>> tblSkills. >>>>> >>>>> tblSkills will be a lookup table. >>>>> >>>>> tblVolunteers will be a primary table and tblVolunteerSkills will be a >>>>> subtable with a one-to-may relationship. >>>>> >>>>> In your form, I would recommend using a dropdown list to select a Skill, and >>>>> radio buttons for the Skill Level. The reason for this is that it's likely >>>>> that you'll want to add/change/remove the Skills, and it's less likely that >>>>> you'll want to increase or decrease the number of skill levels that you'll >>>>> want to record. To change the Skills, you just need to get into the >>>>> tblSkills table, and not make any form or code changes. >>>>> >>>>> You'll also want to have a form for Volunteers (bound to tblVolunteers), and >>>>> a subform for the Skills and Levels (bound to tblVolunteerSkills). >>>>> >>>>> Hope this helps! >>>>> Dan >>>>> >>>>> -----Original Message----- >>>>> From: accessd-bounces at databaseadvisors.com >>>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of >>>>> tinanfields at torchlake.com >>>>> Sent: Friday, February 27, 2009 12:22 PM >>>>> To: AccessD at databaseadvisors.com >>>>> Subject: [AccessD] Make Multiple Selections on a Form and Create a Record >>>>> for Each >>>>> >>>>> I hope the subject line isn't too confusing :) >>>>> >>>>> Here's the situation: volunteers fill out a paper form indicating which >>>>> skills they have and at >>>>> what level (1 to 3, with 1 being high). When this database was built >>>>> (1999), the developer crafted >>>>> a macro that added one record for every possible skill (32, so far) to the >>>>> table of volunteers and >>>>> skills. The data-entry person then went down the rows, clicking the ones >>>>> that were to be selected, >>>>> and entering the skill level number. This results in lots of empty records. >>>>> Since then, the >>>>> database crashed and the macro no longer works anyway. >>>>> >>>>> I want to craft a form with a checkbox for each skill and a drop-list of the >>>>> skill-levels, so the >>>>> data-entry person can click the checkbox and select the skill level - then >>>>> click a button that will >>>>> place one record for each skill selected into the table of volunteers and >>>>> skills. This gives the >>>>> data entry person the same ease of entry, but does not create lots of empty >>>>> records. I saw >>>>> something in the ADH that captures the number of selections made, and I'm >>>>> guessing I need to start >>>>> there, but I could sure use some inspiration on this. If three skills are >>>>> checked, I want three >>>>> records entered for that volunteer in the volunteers and skills table - each >>>>> one referencing one of >>>>> the selected skills. >>>>> >>>>> Thanks for any ideas. >>>>> >>>>> Tina >>>>> >>>>> >>>>> >>>>> >>>>> From tinanfields at torchlake.com Sat Feb 28 09:35:48 2009 From: tinanfields at torchlake.com (Tina Norris Fields) Date: Sat, 28 Feb 2009 10:35:48 -0500 Subject: [AccessD] Tina's Treeview example In-Reply-To: References: Message-ID: <49A959D4.3080103@torchlake.com> Wow, Drew! Okay, I think I love it. Now, I need to walk my way through all the code to make sure I understand it. Thanks a bunch! Tina Drew Wutka wrote: > Ok, the sample is at http://www.marlow.com/treeview.zip > > > > In the database, there are three tables (to keep it simple). tblSkills, > tblVolunteers and tblVolunteerSkills. > > > > The first two tables are ID and Name (SkillID and VolunteerID). The > third table has both id's and SkillLevel. > > > > I put a few skills and two volunteers, Bob and Larry. > > > > There is one form, frmVolunteerSkills. > > > > It has a Combobox (Combo2...sorry, should have renamed it, but was in a > rush). It displays the volunteers (with the bound column being the ID). > > > > On the Onclick event, it runs a function 'BuildTreeView' and put's it's > value (the volunteer ID) in the intVolunteerID argument. > > > > That function opens a recordset from the skills table and creates the > Nodes. > > > > Ok, Before I continue, a few things to know about treeviews. Treeviews > are a control based around nodes. Nodes can either be Root Nodes or > Child Nodes. You can also display check boxes or even pictures for each > node. On top of that, node 'labels' can also be edited (if you want), > so you can even allow someone to change the text of something. If you > want an example of how you could allow your user to edit the name of a > skill from the treeview, let me know. It takes a little bit of playing > around with a treeview and it's node objects to get used to them, but > once you do, it is a very powerful interface tool. > > > > Back to BuildTreeView. It builds a root node for each skill, and sets > it's key to "ID:x" (x being whatever ID the Skill is). It then builds > three child nodes with the key of "ID:x:y" where y is 1 through 3 (the > skill level). > > > > It then opens another recordset from the tblVolunteerSkills, based on > the VolunteerID. It runs through that recordset 'checking' the nodes > that are applicable (the root node (skill) and the child node (skill > level), and as you can see in the code, it does this by using the values > from the table being put in the ID:x and ID:x:y format. (It also expands > any skill 'root node' that is selected already) > > > > Now, the treeview itself is handling the data entry, it's doing this in > tvwSkills_NodeCheck (so it does stuff whenever you 'check' a node). > Kind of hard to write out what the logic is doing, but here's the gist, > when you click on a root node (a skill), if you don't have a skill level > selected, it really does nothing (I have commented out code where I was > trying to uncheck the node then....wasn't working, and again, this was a > quick and dirty example, there should be a way to uncheck the node, the > problem is, stepping through the code, it would uncheck it, but when the > code finished, the node rechecked itself....odd....). But if it IS > checked, so the user is 'unchecking' a skill, it unchecks it's child > nodes (the skill levels), and deletes the appropriate record in > tblVolunteerSkills. > > > > If you check a skill level, it unchecks any other skill level (so if > skill level 1 for Cooking is checked, and the user checks skill Level 2 > for cooking, Skill Level 1 for cooking unchecks itself, so it gives the > illusion of only being able to check one skill level....like a radio > button option box would...), it then tries to 'update' > tblVolunteerSkills and if no records return from that, it 'inserts' the > appropriate record. It also 'checks' it's parent root node. > > > > If you uncheck a skill level, it unchecks it's parent, and deletes the > appropriate record from tblVolunteerSkills. > > > > Like I said, this is a quick and dirty example, but it should show what > you can do with a treeview, and should also satisfy your 'click happy' > end user! ;) > > > > Drew > > > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > > From tinanfields at torchlake.com Sat Feb 28 09:37:45 2009 From: tinanfields at torchlake.com (Tina Norris Fields) Date: Sat, 28 Feb 2009 10:37:45 -0500 Subject: [AccessD] Humor In-Reply-To: <010f01c99937$e7ca36d0$b75ea470$@net> References: <49A8066D.4090705@colbyconsulting.com> <010f01c99937$e7ca36d0$b75ea470$@net> Message-ID: <49A95A49.90508@torchlake.com> Depends on the woman - but I'd be very careful with that one if I were you. T John Bartow wrote: >> 5. Red Rover, Red Rover, the nurse says Bend Over. >> > > LOL! I LOVED THAT ONE > > > > Also, can I repeat this to a woman and survive? > > >> 1. Going bra-less pulls all the wrinkles out of your face. >> > > > From adtp at airtelmail.in Sat Feb 28 11:25:44 2009 From: adtp at airtelmail.in (A.D.Tejpal) Date: Sat, 28 Feb 2009 22:55:44 +0530 Subject: [AccessD] Make Multiple Selections on a Form and Create a Recordfor Each References: <62522b507df940af8dbf9822546dcb52.tinanfields@torchlake.com> Message-ID: <00d901c999c9$d5a24eb0$185ea27a@personald6374f> Tina, There is an interesting way that does not involve generation of any redundant records needing subsequent deletion. The user is presented with the full set of shadow records, covering all available options. These shadow records, generated by using left join, do not impose any overhead on the source table. Only those rows where the user makes explicit entries, get transformed into real records. One could say that it gets you the best of both worlds. My sample db named MedicineIntakeMonitor demonstrates the approach outlined above. It is available at Rogers Access Library. Link - http://www.rogersaccesslibrary.com/forum/forum_topics.asp?FID=45 The sample is in Access 2000 file format and brief description is given below. Best wishes, A.D. Tejpal ------------ MedicineIntakeMonitor - (Sample Db) Brief Description =========================== This sample db demonstrates monitoring of actual intake by patients against the course of various medicines prescribed by respective doctors. For a given patient, the subform at top displays the medicine courses as prescribed by the doctors. It includes the name of medicine, name of doctor, date of prescription, duration (days) and doses (number of times per day). There is a field for doctor's notes as well. The other subform displays a grid of shadow new records for each dose on each day of the prescribed course for each medicine. To confirm intake of a particular dose of given medicine, the user clicks in a check box named Done. The date and time for such confirmation gets automatically inserted in field named DtStamp. As soon as the user clicks the Done check box, the current shadow record gets converted into an actual record in table T_MedTrack. This way, there is no redundant addition to records, till confirmatory action is actually implemented. Also, if the user attempts to click the check box for any of the future dates (i.e. beyond today's date), a friendly message preventing such an entry comes up. As added convenience, highlighting has been provided as follows: (a) When the user is on any record in the compliance subform (the lower one), corresponding record in prescription subform (the upper one) gets highlighted in yellow. This way, the user can readily see the doctor's and other particulars relevant to the current dose of current medicine. (b) When compliance for a given dose is confirmed and the date stamp matches due date, the record gets highlighted in light blue if the due date is same as today's date. Later, when this due date becomes older than current day's date, the highlight color for such a record changes to orange. (c) Records where compliance date stamp does not match the due date, are highlighted in pink. (d) Records older than current day's date, where compliance has not been confirmed (via selection of check box), are also highlighted in pink. The sample includes report generation for the selected settings, providing compliance status for various prescriptions. Records where compliance is missing or delayed beyond due date, are highlighted in color. Summary of the incidence of missed or delayed compliance is given in the group footer. Version: Access 2000 File Format References: DAO 3.6 =========================== ----- Original Message ----- From: tinanfields at torchlake.com To: AccessD at databaseadvisors.com Sent: Friday, February 27, 2009 23:52 Subject: [AccessD] Make Multiple Selections on a Form and Create a Recordfor Each I hope the subject line isn't too confusing :) Here's the situation: volunteers fill out a paper form indicating which skills they have and at what level (1 to 3, with 1 being high). When this database was built (1999), the developer crafted a macro that added one record for every possible skill (32, so far) to the table of volunteers and skills. The data-entry person then went down the rows, clicking the ones that were to be selected, and entering the skill level number. This results in lots of empty records. Since then, the database crashed and the macro no longer works anyway. I want to craft a form with a checkbox for each skill and a drop-list of the skill-levels, so the data-entry person can click the checkbox and select the skill level - then click a button that will place one record for each skill selected into the table of volunteers and skills. This gives the data entry person the same ease of entry, but does not create lots of empty records. I saw something in the ADH that captures the number of selections made, and I'm guessing I need to start there, but I could sure use some inspiration on this. If three skills are checked, I want three records entered for that volunteer in the volunteers and skills table - each one referencing one of the selected skills. Thanks for any ideas. Tina From Gustav at cactus.dk Sat Feb 28 12:43:11 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Sat, 28 Feb 2009 19:43:11 +0100 Subject: [AccessD] Scrum (was: Find First in an Array? ...) Message-ID: Hi Shamil OK, I signed up. As for the software, the TargetProcess "community edition" will only do be free for 5 licenses. If more users, it is USD 249 for each and every user: Q. What if I need 6 users pack? In this case it will be required to purchase 6 full licenses. Community Edition allows to have 5 licenses, if you need more, you have to migrate to On-Site or On-Demand Full Edition. However, at this moment this limitation seems of no importance. /gustav >>> mcp2004 at mail.ru 28-02-2009 15:43 >>> Hi Gustav and Fellow Listers, Yes, the response on my proposal is a bit discouraging but I'm continuing preparation here for the conversion project of MS Access NorthWind sample app to .NET WinForms. Yes, Gustav, we can try to do it just with you but SCRUM/agile process needs a little bit more team members - at least 4-5: if doing this project by using just your and mine efforts it can be done agile way but not SCRUM, and it will take more time, and what is most important it will not show advantages of working as a team - and the advantages in this case is not only joining the efforts and skills - the main advantage is to experience how teamwork influences one's own views and insights - and it does influence then very effectively - I mean that - I have just experienced that during CSM course in Helsinki. Even participating for years in great dicussion lists as this AccessD one do not change one's stereotypes and (conservative) ways of thinking as SCRUM/agile teamwork does... I plan to keep preparing SCRUM/agile infrastructure for the Northwind conversion project within the next week - in my plans is to setup DNN site - first step is done: http://shamils-4.hosting.parking.ru/dnn49 nothing except registration there yet but it's up&running - I "just" need to add some DNN modules - do not know how to do that yet - plan to do that within the next week - I can keep posting SCRUM related info on this site as well as we can have wiki board on it to have "daily stand-up meetings" as well as I can setup newlist on it to have everybody registered and subscribed to this newlist informed on what is happening. Of course it will be forwarded here - the best woudl be to have separate SCRUM%Access-D list but it's probably too early? I'm also evaluating this software http://www.targetprocess.com/Product.aspx to have our project tasks and their completion progress status easily manageable and viewvable by every team member. I also expect (they talk about integration with CVS but I haven't yet evaluated how it's done) this software will allow to keep distributed source control for the team. This software seems to have a free community edition and if that is true then I can install it on my ASP.NET hosting web site. Please everybody interested help me to evaluate how useful it is for our purposes. If you can find any better ASP.NET alternatives that woull be very useful. I persoally like a lot this Team Taskboard of SCRUMWorks software: http://danube.com/sw_flash/feature/features-team_taskboard.html but this software is JAVA based and a "black-box" for me - I'd not use it because of that. I'm currently spending considerably more than one hour here to prepare all that - I can't ask to spend that much time you or other AcceessD members but when everything ready I'd propose to strickly keep the context of spending not more than one hour (5 hours total per week) for this project. Well, maybe some more time discussing here how it will be proceeding... I'd set 9th of Macrh 2009 as the start date for this project - OK? - if nobody will join us by that date we will try to do it together with you. Everybody are welcome! If to not participate in this project by doing some simple .NET forms design/program then at least to help us to evaluate how much this or that feature/task will take to get implemented. This is so called "estimation using planning poker cards" - http://www.crisp.se/planningpoker - doing such an estimation by two people could result in not so good results as when it's done by 5 or more people. Here are some links on SCRUM/agile and related issues - I will keep posting links like that to get convinced some more AccessD members to join our project: Tobias Mayer - my facilitator during SCRUM course there in Helsinki: http://www.danube.com/blog/tobias_mayer/ Agile software development info: http://en.wikipedia.org/wiki/Agile_software_development Scale Back: Small is Beautiful - how group evaluation/planning results in simple but very good results: http://agilethinking.net/blog/2008/08/18/scale-back-small-is-beautiful Extreme Scrum (154KB) https://www-927.ibm.com/ibm/cas/archives/2007/data/Agile/Extreme_Scrum.pdf What happens when we are all connected - Future Views http://www.youtube.com/watch?v=HqPs0xuG39Q (~6 min) "Only 3% of the world is on broadband today, and it's neither cheap, fast or mobile enough. This will change in the next 2-3 years, and the implications are huge: everyone shares, everyone networks with strangers-like-me, everyone co-creates, everything is connected. A video by Futurist and Author Gerd Leonhard" Working on SCRUM/Agile infrastructure here/expecting for more AccessD to connect this project... Please comment on this my posting - all and every comments and contributions are very welcome! Thank you. -- Shamil -----Original Message----- From: "Gustav Brock" To: Date: Sat, 28 Feb 2009 08:10:00 +0100 Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > Hi Shamil > > Not much response to your proposal ... I guess our fellow listers are too busy or just don't feel the need to experience how to work in a group. > To be honest, neither do I have currently that need but as "you never know" I am prepared to allocate the time you suggest. That makes two. But two? Doesn't it require three "to make a crowd"? > > Your adjusted description of the project fits me very well. > > /gustav From adtp at airtelmail.in Sat Feb 28 12:58:06 2009 From: adtp at airtelmail.in (A.D.Tejpal) Date: Sun, 1 Mar 2009 00:28:06 +0530 Subject: [AccessD] FW: Translation DB References: <49A56610.50105@colbyconsulting.com> Message-ID: <01a301c999d6$f7c629a0$185ea27a@personald6374f> John, It seems feasible to evolve a solution combining the best features of various alternatives put forth so far by you, Drew and Stuart. Just to recapitulate, the salient points emanating so far have been: (a) JWC - Minimize the size of collection to that for a single language for a single form. Existing data table (de-normalized) is used. (b) Drew - Load the complete collection for all forms, all languages on application start, using a specially created normalized table. This collection remains available throughout the session. (c) Stuart - Load the complete collection for all forms, all languages on application start, using the existing de-normalized table. I have sent a copy of my sample db named Form_ControlCapTranslation.zip to you and Rocky. On opening the start-up form F_SwitchBoard, a master collection gets generated through a persistent instance of class C_Captions via general module M_CaptionsInit. It is a one time operation and uses the existing de-normalized table. The master collection is composed of collection objects, one element per form featuring in CurrentProject.AllForms. In turn, each element of this master collection (representing one form), is composed of collection objects language-wise - for that form. With the above arrangement, the size of collection to be referred while updating the captions, is the barest minimum, confined to the single form in question, and restricted to the currently selected language, at the same time avoiding any need for rebuilding of collections. The master collection, once loaded at start, remains available for duration of the session and is finally cleared up on closing the start-up form. Class C_CaptionsMaster is used in modules of various forms for integrating the persistent instance of class C_Captions. As soon as language selection is carried out via the combo box located on the start-up form, captions on all currently open forms get updated immediately. Any form opened subsequently, will also conform to the currently selected language. John - I would like to add that you are doing a great job with your lecture series on classes. These have been of immense help in putting together this sample. Best wishes, A.D. Tejpal ------------ ----- Original Message ----- From: jwcolby To: Access Developers discussion and problem solving Sent: Wednesday, February 25, 2009 21:08 Subject: Re: [AccessD] FW: Translation DB Rocky, > I just got another great solution from Jim Dettman, which you should take a look at. I am collecting solutions in a directory under the Classes documents I am writing. Attach it to an email to me and I will definitely take a look. Anyone else who wants can also send me their solution which uses Rocky's DB to actually perform translations. Can I make a request though, that everyone try to standardize the solution so that there is a translation form with combos that allows the user to select a language and a form and the form opens with translation applied. That would make it easier to evaluate the various solutions. Please also note that for Rocky's use, an "on-the-fly" translation is required, i.e. translating the forms in design view and storing them won't work (for him) so to make it apples to apples, your code needs to translate as the form opens. I will add timer code to time the form's opening and post results so that everyone can see how the various solutions work in terms of speed. In fact I will build a test harness to time opening the forms repeatedly, so that we get a "total time to open 100 times" or something similar. I already have solutions for Drew and Max. John W. Colby www.ColbyConsulting.com From mcp2004 at mail.ru Sat Feb 28 13:48:50 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Sat, 28 Feb 2009 22:48:50 +0300 Subject: [AccessD] =?koi8-r?b?U2NydW0gKHdhczogRmluZCBGaXJzdCBpbiBhbiBBcnJh?= =?koi8-r?b?eT8gLi4uKQ==?= In-Reply-To: References: Message-ID: Hi Gustav, Thank you for registering. Yes, I agree that at this moment 5 users limitations seems of no importance. Anybody else wanted to join me and Gustav to try MS Access Northwind to .NET Winforms Northwind conversion project? Project is currently planned to be started at 9th of March 2009, and is expected to be finished in max 1 man month of common efforts. Conversion is planned to be done using SCRUM/agile development methology. It will be public open source project with project progress information and final converted application published on AccessD. This is planned to be as simple as possible project - the only knowledge of VS2008 that would be needed at the beginning is how to design .NET WinForms by dragginbg and dropping controls and settings some properties. And this development activity is simple - my seven years old kid started to "design" WinForms after 2 minutes of my introduction, and he even "programmed" buttons' click events reaction etc. Really easy and very much alike to the usual MS Access forms development. .NET ReportViewer Control reports' design experience would be a plus but not necessary as it's also rather straightforward to get acquanted with for experienced developers whatever else Report Designer they used before... Folks, if you can't join this project because you're very busy maybe you can at least participate in the "planning poker game"? There is a free online tool to play it: http://www.planningpoker.com/ May I ask yuu all why Gustav and myself can't get a group of 5 team members? If you do not want to answer on this question here please send me private e-mails with your reasons - just one most important reason or several, and I will collect them and publish here anonymously. And I can make an anonymous online poll based on that reasons to vote and see what are main reasons, which stop such projects. Please write and send ANY reasons which stop you from participating in this discussion/project. I will wait for your votes/e-mails till next Wednesday as it's weekend now and not all listers work over weekend. I do hope somebody will join us during the next week. In the meantime I will be preparing infrastructure, and some simple tools to patially automate this conversion, and I will have also to work for my customers of course... Thank you. -- Shamil -----Original Message----- From: "Gustav Brock" To: Date: Sat, 28 Feb 2009 19:43:11 +0100 Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > Hi Shamil > > OK, I signed up. > > As for the software, the TargetProcess "community edition" will only do be free for 5 licenses. If more users, it is USD 249 for each and every user: > > Q. What if I need 6 users pack? > In this case it will be required to purchase 6 full licenses. Community Edition allows to have 5 licenses, if you need more, you have to migrate to On-Site or On-Demand Full Edition. > > However, at this moment this limitation seems of no importance. > > /gustav > > > >>> mcp2004 at mail.ru 28-02-2009 15:43 >>> > > Hi Gustav and Fellow Listers, > > Yes, the response on my proposal is a bit discouraging but I'm continuing preparation here for the conversion project of MS Access NorthWind sample app to .NET WinForms. > > Yes, Gustav, we can try to do it just with you but SCRUM/agile process needs a little bit more team members - at least 4-5: if doing this project by using just your and mine efforts it can be done agile way but not SCRUM, and it will take more time, and what is most important it will not show advantages of working as a team - and the advantages in this case is not only joining the efforts and skills - the main advantage is to experience how teamwork influences one's own views and insights - and it does influence then very effectively - I mean that - I have just experienced that during CSM course in Helsinki. Even participating for years in great dicussion lists as this AccessD one do not change one's stereotypes and (conservative) ways of thinking as SCRUM/agile teamwork does... > > I plan to keep preparing SCRUM/agile infrastructure for the Northwind conversion project within the next week - in my plans is to setup DNN site - first step is done: > > http://shamils-4.hosting.parking.ru/dnn49 > > nothing except registration there yet but it's up&running - I "just" need to add some DNN modules - do not know how to do that yet - plan to do that within the next week - I can keep posting SCRUM related info on this site as well as we can have wiki board on it to have "daily stand-up meetings" as well as I can setup newlist on it to have everybody registered and subscribed to this newlist informed on what is happening. Of course it will be forwarded here - the best woudl be to have separate SCRUM%Access-D list but it's probably too early? > > I'm also evaluating this software > > http://www.targetprocess.com/Product.aspx > > to have our project tasks and their completion progress status easily manageable and viewvable by every team member. I also expect (they talk about integration with CVS but I haven't yet evaluated how it's done) this software will allow to keep distributed source control for the team. This software seems to have a free community edition and if that is true then I can install it on my ASP.NET hosting web site. > > Please everybody interested help me to evaluate how useful it is for our purposes. > If you can find any better ASP.NET alternatives that woull be very useful. > > I persoally like a lot this Team Taskboard of SCRUMWorks software: > > http://danube.com/sw_flash/feature/features-team_taskboard.html > > but this software is JAVA based and a "black-box" for me - I'd not use it because of that. > > I'm currently spending considerably more than one hour here to prepare all that - I can't ask to spend that much time you or other AcceessD members but when everything ready I'd propose to strickly keep the context of spending not more than one hour (5 hours total per week) for this project. Well, maybe some more time discussing here how it will be proceeding... > > I'd set 9th of Macrh 2009 as the start date for this project - OK? - if nobody will join us by that date we will try to do it together with you. Everybody are welcome! If to not participate in this project by doing some simple .NET forms design/program then at least to help us to evaluate how much this or that feature/task will take to get implemented. This is so called "estimation using planning poker cards" - http://www.crisp.se/planningpoker - doing such an estimation by two people could result in not so good results as when it's done by 5 or more people. > > Here are some links on SCRUM/agile and related issues - I will keep posting links like that to get convinced some more AccessD members to join our project: > > Tobias Mayer - my facilitator during SCRUM course there in Helsinki: > http://www.danube.com/blog/tobias_mayer/ > > Agile software development info: > http://en.wikipedia.org/wiki/Agile_software_development > > Scale Back: Small is Beautiful - how group evaluation/planning results in simple but very good results: > http://agilethinking.net/blog/2008/08/18/scale-back-small-is-beautiful > > Extreme Scrum (154KB) > https://www-927.ibm.com/ibm/cas/archives/2007/data/Agile/Extreme_Scrum.pdf > > What happens when we are all connected - Future Views > http://www.youtube.com/watch?v=HqPs0xuG39Q (~6 min) > > "Only 3% of the world is on broadband today, and it's neither cheap, fast or mobile enough. This will change in the next 2-3 years, and the implications are huge: everyone shares, everyone networks with strangers-like-me, everyone co-creates, everything is connected. A video by Futurist and Author Gerd Leonhard" > > Working on SCRUM/Agile infrastructure here/expecting for more AccessD to connect this project... > > Please comment on this my posting - all and every comments and contributions are very welcome! > > Thank you. > > -- > Shamil > > > -----Original Message----- > From: "Gustav Brock" > To: > Date: Sat, 28 Feb 2009 08:10:00 +0100 > Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > > > Hi Shamil > > > > Not much response to your proposal ... I guess our fellow listers are too busy or just don't feel the need to experience how to work in a group. > > To be honest, neither do I have currently that need but as "you never know" I am prepared to allocate the time you suggest. That makes two. But two? Doesn't it require three "to make a crowd"? > > > > Your adjusted description of the project fits me very well. > > > > /gustav > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Sat Feb 28 14:05:26 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 28 Feb 2009 15:05:26 -0500 Subject: [AccessD] FW: Translation DB In-Reply-To: <01a301c999d6$f7c629a0$185ea27a@personald6374f> References: <49A56610.50105@colbyconsulting.com> <01a301c999d6$f7c629a0$185ea27a@personald6374f> Message-ID: <49A99906.8080203@colbyconsulting.com> > John - I would like to add that you are doing a great job with your lecture series on classes. These have been of immense help in putting together this sample. A.D., coming from you that is high praise indeed. Thanks! I am collection solutions and will build up a document comparing the solutions, both code and results. John W. Colby www.ColbyConsulting.com A.D.Tejpal wrote: > John, > > It seems feasible to evolve a solution combining the best features of various alternatives put forth so far by you, Drew and Stuart. > > Just to recapitulate, the salient points emanating so far have been: > > (a) JWC - Minimize the size of collection to that for a single language for a single form. Existing data table (de-normalized) is used. > > (b) Drew - Load the complete collection for all forms, all languages on application start, using a specially created normalized table. This collection remains available throughout the session. > > (c) Stuart - Load the complete collection for all forms, all languages on application start, using the existing de-normalized table. > > I have sent a copy of my sample db named Form_ControlCapTranslation.zip to you and Rocky. On opening the start-up form F_SwitchBoard, a master collection gets generated through a persistent instance of class C_Captions via general module M_CaptionsInit. It is a one time operation and uses the existing de-normalized table. > > The master collection is composed of collection objects, one element per form featuring in CurrentProject.AllForms. In turn, each element of this master collection (representing one form), is composed of collection objects language-wise - for that form. > > With the above arrangement, the size of collection to be referred while updating the captions, is the barest minimum, confined to the single form in question, and restricted to the currently selected language, at the same time avoiding any need for rebuilding of collections. > > The master collection, once loaded at start, remains available for duration of the session and is finally cleared up on closing the start-up form. Class C_CaptionsMaster is used in modules of various forms for integrating the persistent instance of class C_Captions. > > As soon as language selection is carried out via the combo box located on the start-up form, captions on all currently open forms get updated immediately. Any form opened subsequently, will also conform to the currently selected language. > > John - I would like to add that you are doing a great job with your lecture series on classes. These have been of immense help in putting together this sample. > > Best wishes, > A.D. Tejpal > ------------ From wdhindman at dejpolsystems.com Sat Feb 28 14:25:09 2009 From: wdhindman at dejpolsystems.com (William Hindman) Date: Sat, 28 Feb 2009 15:25:09 -0500 Subject: [AccessD] Scrum (was: Find First in an Array? ...) References: Message-ID: Shamil "May I ask you all why Gustav and myself can't get a group of 5 team members?" ...I'm 62 yo and have worked as a single developer for the past 15 years ...SCRUM is focused on something I'm very unlikely to ever use ...and fortunately, I'm still so loaded down between development work and building our home that I simply have no time available for anything that I don't foresee using myself ...I do wish I was 20 years younger and could find the time and energy to learn something new from people like you and gustav just for the hell of it ...but I'm not and that's the long and short of it. William -------------------------------------------------- From: "Salakhetdinov Shamil" Sent: Saturday, February 28, 2009 2:48 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD]Scrum (was: Find First in an Array? ...) > > Hi Gustav, > > Thank you for registering. > > Yes, I agree that at this moment 5 users limitations seems of no > importance. > > Anybody else wanted to join me and Gustav to try MS Access Northwind to > .NET Winforms Northwind conversion project? > Project is currently planned to be started at 9th of March 2009, and is > expected to be finished in max 1 man month of common efforts. > Conversion is planned to be done using SCRUM/agile development methology. > It will be public open source project with project progress information > and final converted application published on AccessD. > This is planned to be as simple as possible project - the only knowledge > of VS2008 that would be needed at the beginning is how to design .NET > WinForms by dragginbg and dropping controls and settings some properties. > And this development activity is simple - my seven years old kid started > to "design" WinForms after 2 minutes of my introduction, and he even > "programmed" buttons' click events reaction etc. Really easy and very much > alike to the usual MS Access forms development. > > .NET ReportViewer Control reports' design experience would be a plus but > not necessary as it's also rather straightforward to get acquanted with > for experienced developers whatever else Report Designer they used > before... > > Folks, if you can't join this project because you're very busy maybe you > can at least participate in the "planning poker game"? There is a free > online tool to play it: http://www.planningpoker.com/ > > May I ask yuu all why Gustav and myself can't get a group of 5 team > members? > > If you do not want to answer on this question here please send me private > e-mails with your reasons - just one most important reason or several, and > I will collect them and publish here anonymously. And I can make an > anonymous online poll based on that reasons to vote and see what are main > reasons, which stop such projects. Please write and send ANY reasons which > stop you from participating in this discussion/project. > > I will wait for your votes/e-mails till next Wednesday as it's weekend now > and not all listers work over weekend. I do hope somebody will join us > during the next week. > > In the meantime I will be preparing infrastructure, and some simple tools > to patially automate this conversion, and I will have also to work for my > customers of course... > > Thank you. > > -- > Shamil > > > > -----Original Message----- > From: "Gustav Brock" > To: > Date: Sat, 28 Feb 2009 19:43:11 +0100 > Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > >> Hi Shamil >> >> OK, I signed up. >> >> As for the software, the TargetProcess "community edition" will only do >> be free for 5 licenses. If more users, it is USD 249 for each and every >> user: >> >> Q. What if I need 6 users pack? >> In this case it will be required to purchase 6 full licenses. Community >> Edition allows to have 5 licenses, if you need more, you have to migrate >> to On-Site or On-Demand Full Edition. >> >> However, at this moment this limitation seems of no importance. >> >> /gustav >> >> >> >>> mcp2004 at mail.ru 28-02-2009 15:43 >>> >> >> Hi Gustav and Fellow Listers, >> >> Yes, the response on my proposal is a bit discouraging but I'm continuing >> preparation here for the conversion project of MS Access NorthWind sample >> app to .NET WinForms. >> >> Yes, Gustav, we can try to do it just with you but SCRUM/agile process >> needs a little bit more team members - at least 4-5: if doing this >> project by using just your and mine efforts it can be done agile way but >> not SCRUM, and it will take more time, and what is most important it will >> not show advantages of working as a team - and the advantages in this >> case is not only joining the efforts and skills - the main advantage is >> to experience how teamwork influences one's own views and insights - and >> it does influence then very effectively - I mean that - I have just >> experienced that during CSM course in Helsinki. Even participating for >> years in great dicussion lists as this AccessD one do not change one's >> stereotypes and (conservative) ways of thinking as SCRUM/agile teamwork >> does... >> >> I plan to keep preparing SCRUM/agile infrastructure for the Northwind >> conversion project within the next week - in my plans is to setup DNN >> site - first step is done: >> >> http://shamils-4.hosting.parking.ru/dnn49 >> >> nothing except registration there yet but it's up&running - I "just" need >> to add some DNN modules - do not know how to do that yet - plan to do >> that within the next week - I can keep posting SCRUM related info on this >> site as well as we can have wiki board on it to have "daily stand-up >> meetings" as well as I can setup newlist on it to have everybody >> registered and subscribed to this newlist informed on what is happening. >> Of course it will be forwarded here - the best woudl be to have separate >> SCRUM%Access-D list but it's probably too early? >> >> I'm also evaluating this software >> >> http://www.targetprocess.com/Product.aspx >> >> to have our project tasks and their completion progress status easily >> manageable and viewvable by every team member. I also expect (they talk >> about integration with CVS but I haven't yet evaluated how it's done) >> this software will allow to keep distributed source control for the team. >> This software seems to have a free community edition and if that is true >> then I can install it on my ASP.NET hosting web site. >> >> Please everybody interested help me to evaluate how useful it is for our >> purposes. >> If you can find any better ASP.NET alternatives that woull be very >> useful. >> >> I persoally like a lot this Team Taskboard of SCRUMWorks software: >> >> http://danube.com/sw_flash/feature/features-team_taskboard.html >> >> but this software is JAVA based and a "black-box" for me - I'd not use it >> because of that. >> >> I'm currently spending considerably more than one hour here to prepare >> all that - I can't ask to spend that much time you or other AcceessD >> members but when everything ready I'd propose to strickly keep the >> context of spending not more than one hour (5 hours total per week) for >> this project. Well, maybe some more time discussing here how it will be >> proceeding... >> >> I'd set 9th of Macrh 2009 as the start date for this project - OK? - if >> nobody will join us by that date we will try to do it together with you. >> Everybody are welcome! If to not participate in this project by doing >> some simple .NET forms design/program then at least to help us to >> evaluate how much this or that feature/task will take to get implemented. >> This is so called "estimation using planning poker cards" - >> http://www.crisp.se/planningpoker - doing such an estimation by two >> people could result in not so good results as when it's done by 5 or more >> people. >> >> Here are some links on SCRUM/agile and related issues - I will keep >> posting links like that to get convinced some more AccessD members to >> join our project: >> >> Tobias Mayer - my facilitator during SCRUM course there in Helsinki: >> http://www.danube.com/blog/tobias_mayer/ >> >> Agile software development info: >> http://en.wikipedia.org/wiki/Agile_software_development >> >> Scale Back: Small is Beautiful - how group evaluation/planning results in >> simple but very good results: >> http://agilethinking.net/blog/2008/08/18/scale-back-small-is-beautiful >> >> Extreme Scrum (154KB) >> https://www-927.ibm.com/ibm/cas/archives/2007/data/Agile/Extreme_Scrum.pdf >> >> What happens when we are all connected - Future Views >> http://www.youtube.com/watch?v=HqPs0xuG39Q (~6 min) >> >> "Only 3% of the world is on broadband today, and it's neither cheap, fast >> or mobile enough. This will change in the next 2-3 years, and the >> implications are huge: everyone shares, everyone networks with >> strangers-like-me, everyone co-creates, everything is connected. A video >> by Futurist and Author Gerd Leonhard" >> >> Working on SCRUM/Agile infrastructure here/expecting for more AccessD to >> connect this project... >> >> Please comment on this my posting - all and every comments and >> contributions are very welcome! >> >> Thank you. >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: "Gustav Brock" >> To: >> Date: Sat, 28 Feb 2009 08:10:00 +0100 >> Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) >> >> > Hi Shamil >> > >> > Not much response to your proposal ... I guess our fellow listers are >> > too busy or just don't feel the need to experience how to work in a >> > group. >> > To be honest, neither do I have currently that need but as "you never >> > know" I am prepared to allocate the time you suggest. That makes two. >> > But two? Doesn't it require three "to make a crowd"? >> > >> > Your adjusted description of the project fits me very well. >> > >> > /gustav >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From mcp2004 at mail.ru Sat Feb 28 14:47:52 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Sat, 28 Feb 2009 23:47:52 +0300 Subject: [AccessD] =?koi8-r?b?U2NydW0gKHdhczogRmluZCBGaXJzdCBpbiBhbiBBcnJh?= =?koi8-r?b?eT8gLi4uKQ==?= In-Reply-To: References: Message-ID: Thank you, William, Yes, I can understand that. At least I can expect your participating in some project planning/evaluation, which would take something like half an hour - hour within a month? - such experience would help you I think in your own work... BTW, I have just got online evidence I have been there in Helsinki :) http://danube.com/blog/tobias_mayer/ambling_madly_5_helsinki_scrum_dining Have nice weekend. -- Shamil -----Original Message----- From: "William Hindman" To: "Access Developers discussion and problem solving" Date: Sat, 28 Feb 2009 15:25:09 -0500 Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > Shamil > > "May I ask you all why Gustav and myself can't get a group of 5 team > members?" > > ...I'm 62 yo and have worked as a single developer for the past 15 years > ...SCRUM is focused on something I'm very unlikely to ever use ...and > fortunately, I'm still so loaded down between development work and building > our home that I simply have no time available for anything that I don't > foresee using myself ...I do wish I was 20 years younger and could find the > time and energy to learn something new from people like you and gustav just > for the hell of it ...but I'm not and that's the long and short of it. > > William > > -------------------------------------------------- > From: "Salakhetdinov Shamil" > Sent: Saturday, February 28, 2009 2:48 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD]Scrum (was: Find First in an Array? ...) > > > > > Hi Gustav, > > > > Thank you for registering. > > > > Yes, I agree that at this moment 5 users limitations seems of no > > importance. > > > > Anybody else wanted to join me and Gustav to try MS Access Northwind to > > .NET Winforms Northwind conversion project? > > Project is currently planned to be started at 9th of March 2009, and is > > expected to be finished in max 1 man month of common efforts. > > Conversion is planned to be done using SCRUM/agile development methology. > > It will be public open source project with project progress information > > and final converted application published on AccessD. > > This is planned to be as simple as possible project - the only knowledge > > of VS2008 that would be needed at the beginning is how to design .NET > > WinForms by dragginbg and dropping controls and settings some properties. > > And this development activity is simple - my seven years old kid started > > to "design" WinForms after 2 minutes of my introduction, and he even > > "programmed" buttons' click events reaction etc. Really easy and very much > > alike to the usual MS Access forms development. > > > > .NET ReportViewer Control reports' design experience would be a plus but > > not necessary as it's also rather straightforward to get acquanted with > > for experienced developers whatever else Report Designer they used > > before... > > > > Folks, if you can't join this project because you're very busy maybe you > > can at least participate in the "planning poker game"? There is a free > > online tool to play it: http://www.planningpoker.com/ > > > > May I ask yuu all why Gustav and myself can't get a group of 5 team > > members? > > > > If you do not want to answer on this question here please send me private > > e-mails with your reasons - just one most important reason or several, and > > I will collect them and publish here anonymously. And I can make an > > anonymous online poll based on that reasons to vote and see what are main > > reasons, which stop such projects. Please write and send ANY reasons which > > stop you from participating in this discussion/project. > > > > I will wait for your votes/e-mails till next Wednesday as it's weekend now > > and not all listers work over weekend. I do hope somebody will join us > > during the next week. > > > > In the meantime I will be preparing infrastructure, and some simple tools > > to patially automate this conversion, and I will have also to work for my > > customers of course... > > > > Thank you. > > > > -- > > Shamil > > > > > > > > -----Original Message----- > > From: "Gustav Brock" > > To: > > Date: Sat, 28 Feb 2009 19:43:11 +0100 > > Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > > > >> Hi Shamil > >> > >> OK, I signed up. > >> > >> As for the software, the TargetProcess "community edition" will only do > >> be free for 5 licenses. If more users, it is USD 249 for each and every > >> user: > >> > >> Q. What if I need 6 users pack? > >> In this case it will be required to purchase 6 full licenses. Community > >> Edition allows to have 5 licenses, if you need more, you have to migrate > >> to On-Site or On-Demand Full Edition. > >> > >> However, at this moment this limitation seems of no importance. > >> > >> /gustav > >> > >> > >> >>> mcp2004 at mail.ru 28-02-2009 15:43 >>> > >> > >> Hi Gustav and Fellow Listers, > >> > >> Yes, the response on my proposal is a bit discouraging but I'm continuing > >> preparation here for the conversion project of MS Access NorthWind sample > >> app to .NET WinForms. > >> > >> Yes, Gustav, we can try to do it just with you but SCRUM/agile process > >> needs a little bit more team members - at least 4-5: if doing this > >> project by using just your and mine efforts it can be done agile way but > >> not SCRUM, and it will take more time, and what is most important it will > >> not show advantages of working as a team - and the advantages in this > >> case is not only joining the efforts and skills - the main advantage is > >> to experience how teamwork influences one's own views and insights - and > >> it does influence then very effectively - I mean that - I have just > >> experienced that during CSM course in Helsinki. Even participating for > >> years in great dicussion lists as this AccessD one do not change one's > >> stereotypes and (conservative) ways of thinking as SCRUM/agile teamwork > >> does... > >> > >> I plan to keep preparing SCRUM/agile infrastructure for the Northwind > >> conversion project within the next week - in my plans is to setup DNN > >> site - first step is done: > >> > >> http://shamils-4.hosting.parking.ru/dnn49 > >> > >> nothing except registration there yet but it's up&running - I "just" need > >> to add some DNN modules - do not know how to do that yet - plan to do > >> that within the next week - I can keep posting SCRUM related info on this > >> site as well as we can have wiki board on it to have "daily stand-up > >> meetings" as well as I can setup newlist on it to have everybody > >> registered and subscribed to this newlist informed on what is happening. > >> Of course it will be forwarded here - the best woudl be to have separate > >> SCRUM%Access-D list but it's probably too early? > >> > >> I'm also evaluating this software > >> > >> http://www.targetprocess.com/Product.aspx > >> > >> to have our project tasks and their completion progress status easily > >> manageable and viewvable by every team member. I also expect (they talk > >> about integration with CVS but I haven't yet evaluated how it's done) > >> this software will allow to keep distributed source control for the team. > >> This software seems to have a free community edition and if that is true > >> then I can install it on my ASP.NET hosting web site. > >> > >> Please everybody interested help me to evaluate how useful it is for our > >> purposes. > >> If you can find any better ASP.NET alternatives that woull be very > >> useful. > >> > >> I persoally like a lot this Team Taskboard of SCRUMWorks software: > >> > >> http://danube.com/sw_flash/feature/features-team_taskboard.html > >> > >> but this software is JAVA based and a "black-box" for me - I'd not use it > >> because of that. > >> > >> I'm currently spending considerably more than one hour here to prepare > >> all that - I can't ask to spend that much time you or other AcceessD > >> members but when everything ready I'd propose to strickly keep the > >> context of spending not more than one hour (5 hours total per week) for > >> this project. Well, maybe some more time discussing here how it will be > >> proceeding... > >> > >> I'd set 9th of Macrh 2009 as the start date for this project - OK? - if > >> nobody will join us by that date we will try to do it together with you. > >> Everybody are welcome! If to not participate in this project by doing > >> some simple .NET forms design/program then at least to help us to > >> evaluate how much this or that feature/task will take to get implemented. > >> This is so called "estimation using planning poker cards" - > >> http://www.crisp.se/planningpoker - doing such an estimation by two > >> people could result in not so good results as when it's done by 5 or more > >> people. > >> > >> Here are some links on SCRUM/agile and related issues - I will keep > >> posting links like that to get convinced some more AccessD members to > >> join our project: > >> > >> Tobias Mayer - my facilitator during SCRUM course there in Helsinki: > >> http://www.danube.com/blog/tobias_mayer/ > >> > >> Agile software development info: > >> http://en.wikipedia.org/wiki/Agile_software_development > >> > >> Scale Back: Small is Beautiful - how group evaluation/planning results in > >> simple but very good results: > >> http://agilethinking.net/blog/2008/08/18/scale-back-small-is-beautiful > >> > >> Extreme Scrum (154KB) > >> https://www-927.ibm.com/ibm/cas/archives/2007/data/Agile/Extreme_Scrum.pdf > >> > >> What happens when we are all connected - Future Views > >> http://www.youtube.com/watch?v=HqPs0xuG39Q (~6 min) > >> > >> "Only 3% of the world is on broadband today, and it's neither cheap, fast > >> or mobile enough. This will change in the next 2-3 years, and the > >> implications are huge: everyone shares, everyone networks with > >> strangers-like-me, everyone co-creates, everything is connected. A video > >> by Futurist and Author Gerd Leonhard" > >> > >> Working on SCRUM/Agile infrastructure here/expecting for more AccessD to > >> connect this project... > >> > >> Please comment on this my posting - all and every comments and > >> contributions are very welcome! > >> > >> Thank you. > >> > >> -- > >> Shamil > >> > >> > >> -----Original Message----- > >> From: "Gustav Brock" > >> To: > >> Date: Sat, 28 Feb 2009 08:10:00 +0100 > >> Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > >> > >> > Hi Shamil > >> > > >> > Not much response to your proposal ... I guess our fellow listers are > >> > too busy or just don't feel the need to experience how to work in a > >> > group. > >> > To be honest, neither do I have currently that need but as "you never > >> > know" I am prepared to allocate the time you suggest. That makes two. > >> > But two? Doesn't it require three "to make a crowd"? > >> > > >> > Your adjusted description of the project fits me very well. > >> > > >> > /gustav > >> > >> > >> -- > >> AccessD mailing list > >> AccessD at databaseadvisors.com > >> http://databaseadvisors.com/mailman/listinfo/accessd > >> Website: http://www.databaseadvisors.com > >> > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From DWUTKA at Marlow.com Sat Feb 28 14:51:31 2009 From: DWUTKA at Marlow.com (Drew Wutka) Date: Sat, 28 Feb 2009 14:51:31 -0600 Subject: [AccessD] Tina's Treeview example In-Reply-To: <49A959D4.3080103@torchlake.com> Message-ID: Glad you like it Tina. I will warn you that the demo I posted for you is just the tip of the iceberg when it comes to what you can do with a treeview. A great example is 'HitTest'. It's a method of the Treeview control, where you give it x,y coordinates, and it returns the node at the coordinates. This allows you to create custom behaviors for left and right clicks (Mouse Up event gives you the x,y coordinates). Where you could use that in your system, you could actually start the root nodes as the Volunteers. And then have the child nodes be the skills and levels. The normal left click could have you 'check' if the skill nodes are built (and if not, build them, so you don't building thousands of nodes from the get go...), and the right click could display a popup menu such as 'edit volunteer information' or 'create a new skill', etc. Here's a visual example of one of the most highly used treeviews I have built: http://www.marlow.com/PhoneList.jpg That screen shot (I blurred the phone numbers...) shows what you can do with the image capabilities of a treeview. I've right clicked my name, showing the custom popup menu that displays (based on the node that was clicked). One of the expanded nodes is Currently logged on computers, if I expand one of those nodes, it gives me Remote Administrator (clicking on that node opens a remote admin session to that machine), computer management (clicking on that node opens a computer management session to that computer), local drives (expanding that node gives me a list of the local drives on that machine, which I can click to open a Windows Explorer session to that drive). All from one treeview! Good luck with your project (feel free to holler if you have any questions about what I did...)! Next to classes and collections, I've found Treeviews to be one of the most powerful tools in a developer's arsenal! Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Tina Norris Fields Sent: Saturday, February 28, 2009 9:36 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Tina's Treeview example Wow, Drew! Okay, I think I love it. Now, I need to walk my way through all the code to make sure I understand it. Thanks a bunch! Tina Drew Wutka wrote: > Ok, the sample is at http://www.marlow.com/treeview.zip > > > > In the database, there are three tables (to keep it simple). tblSkills, > tblVolunteers and tblVolunteerSkills. > > > > The first two tables are ID and Name (SkillID and VolunteerID). The > third table has both id's and SkillLevel. > > > > I put a few skills and two volunteers, Bob and Larry. > > > > There is one form, frmVolunteerSkills. > > > > It has a Combobox (Combo2...sorry, should have renamed it, but was in a > rush). It displays the volunteers (with the bound column being the ID). > > > > On the Onclick event, it runs a function 'BuildTreeView' and put's it's > value (the volunteer ID) in the intVolunteerID argument. > > > > That function opens a recordset from the skills table and creates the > Nodes. > > > > Ok, Before I continue, a few things to know about treeviews. Treeviews > are a control based around nodes. Nodes can either be Root Nodes or > Child Nodes. You can also display check boxes or even pictures for each > node. On top of that, node 'labels' can also be edited (if you want), > so you can even allow someone to change the text of something. If you > want an example of how you could allow your user to edit the name of a > skill from the treeview, let me know. It takes a little bit of playing > around with a treeview and it's node objects to get used to them, but > once you do, it is a very powerful interface tool. > > > > Back to BuildTreeView. It builds a root node for each skill, and sets > it's key to "ID:x" (x being whatever ID the Skill is). It then builds > three child nodes with the key of "ID:x:y" where y is 1 through 3 (the > skill level). > > > > It then opens another recordset from the tblVolunteerSkills, based on > the VolunteerID. It runs through that recordset 'checking' the nodes > that are applicable (the root node (skill) and the child node (skill > level), and as you can see in the code, it does this by using the values > from the table being put in the ID:x and ID:x:y format. (It also expands > any skill 'root node' that is selected already) > > > > Now, the treeview itself is handling the data entry, it's doing this in > tvwSkills_NodeCheck (so it does stuff whenever you 'check' a node). > Kind of hard to write out what the logic is doing, but here's the gist, > when you click on a root node (a skill), if you don't have a skill level > selected, it really does nothing (I have commented out code where I was > trying to uncheck the node then....wasn't working, and again, this was a > quick and dirty example, there should be a way to uncheck the node, the > problem is, stepping through the code, it would uncheck it, but when the > code finished, the node rechecked itself....odd....). But if it IS > checked, so the user is 'unchecking' a skill, it unchecks it's child > nodes (the skill levels), and deletes the appropriate record in > tblVolunteerSkills. > > > > If you check a skill level, it unchecks any other skill level (so if > skill level 1 for Cooking is checked, and the user checks skill Level 2 > for cooking, Skill Level 1 for cooking unchecks itself, so it gives the > illusion of only being able to check one skill level....like a radio > button option box would...), it then tries to 'update' > tblVolunteerSkills and if no records return from that, it 'inserts' the > appropriate record. It also 'checks' it's parent root node. > > > > If you uncheck a skill level, it unchecks it's parent, and deletes the > appropriate record from tblVolunteerSkills. > > > > Like I said, this is a quick and dirty example, but it should show what > you can do with a treeview, and should also satisfy your 'click happy' > end user! ;) > > > > Drew > > > The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. > > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. From max.wanadoo at gmail.com Sat Feb 28 15:06:55 2009 From: max.wanadoo at gmail.com (Max Wanadoo) Date: Sat, 28 Feb 2009 21:06:55 -0000 Subject: [AccessD] Scrum (was: Find First in an Array? ...) In-Reply-To: References: Message-ID: <49a9a770.0a1ad00a.5d0e.ffffaa03@mx.google.com> Yes, Shamil and Gustav. William's reason is the same as mine (although I am 65) and the age is against us (unlikely to get to payback time v investment time). I will watch with interest though. Max Laugh more than cry. Smile more than frown. Be generous in spirit. And always stand your round in the pub! -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman Sent: 28 February 2009 20:25 To: Access Developers discussion and problem solving Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) Shamil "May I ask you all why Gustav and myself can't get a group of 5 team members?" ...I'm 62 yo and have worked as a single developer for the past 15 years ...SCRUM is focused on something I'm very unlikely to ever use ...and fortunately, I'm still so loaded down between development work and building our home that I simply have no time available for anything that I don't foresee using myself ...I do wish I was 20 years younger and could find the time and energy to learn something new from people like you and gustav just for the hell of it ...but I'm not and that's the long and short of it. William -------------------------------------------------- From: "Salakhetdinov Shamil" Sent: Saturday, February 28, 2009 2:48 PM To: "Access Developers discussion and problem solving" Subject: Re: [AccessD]Scrum (was: Find First in an Array? ...) > > Hi Gustav, > > Thank you for registering. > > Yes, I agree that at this moment 5 users limitations seems of no > importance. > > Anybody else wanted to join me and Gustav to try MS Access Northwind to > .NET Winforms Northwind conversion project? > Project is currently planned to be started at 9th of March 2009, and is > expected to be finished in max 1 man month of common efforts. > Conversion is planned to be done using SCRUM/agile development methology. > It will be public open source project with project progress information > and final converted application published on AccessD. > This is planned to be as simple as possible project - the only knowledge > of VS2008 that would be needed at the beginning is how to design .NET > WinForms by dragginbg and dropping controls and settings some properties. > And this development activity is simple - my seven years old kid started > to "design" WinForms after 2 minutes of my introduction, and he even > "programmed" buttons' click events reaction etc. Really easy and very much > alike to the usual MS Access forms development. > > .NET ReportViewer Control reports' design experience would be a plus but > not necessary as it's also rather straightforward to get acquanted with > for experienced developers whatever else Report Designer they used > before... > > Folks, if you can't join this project because you're very busy maybe you > can at least participate in the "planning poker game"? There is a free > online tool to play it: http://www.planningpoker.com/ > > May I ask yuu all why Gustav and myself can't get a group of 5 team > members? > > If you do not want to answer on this question here please send me private > e-mails with your reasons - just one most important reason or several, and > I will collect them and publish here anonymously. And I can make an > anonymous online poll based on that reasons to vote and see what are main > reasons, which stop such projects. Please write and send ANY reasons which > stop you from participating in this discussion/project. > > I will wait for your votes/e-mails till next Wednesday as it's weekend now > and not all listers work over weekend. I do hope somebody will join us > during the next week. > > In the meantime I will be preparing infrastructure, and some simple tools > to patially automate this conversion, and I will have also to work for my > customers of course... > > Thank you. > > -- > Shamil > > > > -----Original Message----- > From: "Gustav Brock" > To: > Date: Sat, 28 Feb 2009 19:43:11 +0100 > Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > >> Hi Shamil >> >> OK, I signed up. >> >> As for the software, the TargetProcess "community edition" will only do >> be free for 5 licenses. If more users, it is USD 249 for each and every >> user: >> >> Q. What if I need 6 users pack? >> In this case it will be required to purchase 6 full licenses. Community >> Edition allows to have 5 licenses, if you need more, you have to migrate >> to On-Site or On-Demand Full Edition. >> >> However, at this moment this limitation seems of no importance. >> >> /gustav >> >> >> >>> mcp2004 at mail.ru 28-02-2009 15:43 >>> >> >> Hi Gustav and Fellow Listers, >> >> Yes, the response on my proposal is a bit discouraging but I'm continuing >> preparation here for the conversion project of MS Access NorthWind sample >> app to .NET WinForms. >> >> Yes, Gustav, we can try to do it just with you but SCRUM/agile process >> needs a little bit more team members - at least 4-5: if doing this >> project by using just your and mine efforts it can be done agile way but >> not SCRUM, and it will take more time, and what is most important it will >> not show advantages of working as a team - and the advantages in this >> case is not only joining the efforts and skills - the main advantage is >> to experience how teamwork influences one's own views and insights - and >> it does influence then very effectively - I mean that - I have just >> experienced that during CSM course in Helsinki. Even participating for >> years in great dicussion lists as this AccessD one do not change one's >> stereotypes and (conservative) ways of thinking as SCRUM/agile teamwork >> does... >> >> I plan to keep preparing SCRUM/agile infrastructure for the Northwind >> conversion project within the next week - in my plans is to setup DNN >> site - first step is done: >> >> http://shamils-4.hosting.parking.ru/dnn49 >> >> nothing except registration there yet but it's up&running - I "just" need >> to add some DNN modules - do not know how to do that yet - plan to do >> that within the next week - I can keep posting SCRUM related info on this >> site as well as we can have wiki board on it to have "daily stand-up >> meetings" as well as I can setup newlist on it to have everybody >> registered and subscribed to this newlist informed on what is happening. >> Of course it will be forwarded here - the best woudl be to have separate >> SCRUM%Access-D list but it's probably too early? >> >> I'm also evaluating this software >> >> http://www.targetprocess.com/Product.aspx >> >> to have our project tasks and their completion progress status easily >> manageable and viewvable by every team member. I also expect (they talk >> about integration with CVS but I haven't yet evaluated how it's done) >> this software will allow to keep distributed source control for the team. >> This software seems to have a free community edition and if that is true >> then I can install it on my ASP.NET hosting web site. >> >> Please everybody interested help me to evaluate how useful it is for our >> purposes. >> If you can find any better ASP.NET alternatives that woull be very >> useful. >> >> I persoally like a lot this Team Taskboard of SCRUMWorks software: >> >> http://danube.com/sw_flash/feature/features-team_taskboard.html >> >> but this software is JAVA based and a "black-box" for me - I'd not use it >> because of that. >> >> I'm currently spending considerably more than one hour here to prepare >> all that - I can't ask to spend that much time you or other AcceessD >> members but when everything ready I'd propose to strickly keep the >> context of spending not more than one hour (5 hours total per week) for >> this project. Well, maybe some more time discussing here how it will be >> proceeding... >> >> I'd set 9th of Macrh 2009 as the start date for this project - OK? - if >> nobody will join us by that date we will try to do it together with you. >> Everybody are welcome! If to not participate in this project by doing >> some simple .NET forms design/program then at least to help us to >> evaluate how much this or that feature/task will take to get implemented. >> This is so called "estimation using planning poker cards" - >> http://www.crisp.se/planningpoker - doing such an estimation by two >> people could result in not so good results as when it's done by 5 or more >> people. >> >> Here are some links on SCRUM/agile and related issues - I will keep >> posting links like that to get convinced some more AccessD members to >> join our project: >> >> Tobias Mayer - my facilitator during SCRUM course there in Helsinki: >> http://www.danube.com/blog/tobias_mayer/ >> >> Agile software development info: >> http://en.wikipedia.org/wiki/Agile_software_development >> >> Scale Back: Small is Beautiful - how group evaluation/planning results in >> simple but very good results: >> http://agilethinking.net/blog/2008/08/18/scale-back-small-is-beautiful >> >> Extreme Scrum (154KB) >> https://www-927.ibm.com/ibm/cas/archives/2007/data/Agile/Extreme_Scrum.pdf >> >> What happens when we are all connected - Future Views >> http://www.youtube.com/watch?v=HqPs0xuG39Q (~6 min) >> >> "Only 3% of the world is on broadband today, and it's neither cheap, fast >> or mobile enough. This will change in the next 2-3 years, and the >> implications are huge: everyone shares, everyone networks with >> strangers-like-me, everyone co-creates, everything is connected. A video >> by Futurist and Author Gerd Leonhard" >> >> Working on SCRUM/Agile infrastructure here/expecting for more AccessD to >> connect this project... >> >> Please comment on this my posting - all and every comments and >> contributions are very welcome! >> >> Thank you. >> >> -- >> Shamil >> >> >> -----Original Message----- >> From: "Gustav Brock" >> To: >> Date: Sat, 28 Feb 2009 08:10:00 +0100 >> Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) >> >> > Hi Shamil >> > >> > Not much response to your proposal ... I guess our fellow listers are >> > too busy or just don't feel the need to experience how to work in a >> > group. >> > To be honest, neither do I have currently that need but as "you never >> > know" I am prepared to allocate the time you suggest. That makes two. >> > But two? Doesn't it require three "to make a crowd"? >> > >> > Your adjusted description of the project fits me very well. >> > >> > /gustav >> >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com >> > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From tinanfields at torchlake.com Sat Feb 28 15:11:19 2009 From: tinanfields at torchlake.com (Tina Norris Fields) Date: Sat, 28 Feb 2009 16:11:19 -0500 Subject: [AccessD] Tina's Treeview example In-Reply-To: References: Message-ID: <49A9A877.2070306@torchlake.com> Hi Drew, Is there a way to get a button for the Access toolbox to put a Treeview control onto a form? Or, is it done only through code? Tina Drew Wutka wrote: > Glad you like it Tina. I will warn you that the demo I posted for you > is just the tip of the iceberg when it comes to what you can do with a > treeview. > > A great example is 'HitTest'. It's a method of the Treeview control, > where you give it x,y coordinates, and it returns the node at the > coordinates. This allows you to create custom behaviors for left and > right clicks (Mouse Up event gives you the x,y coordinates). Where you > could use that in your system, you could actually start the root nodes > as the Volunteers. And then have the child nodes be the skills and > levels. The normal left click could have you 'check' if the skill nodes > are built (and if not, build them, so you don't building thousands of > nodes from the get go...), and the right click could display a popup > menu such as 'edit volunteer information' or 'create a new skill', etc. > > Here's a visual example of one of the most highly used treeviews I have > built: > > http://www.marlow.com/PhoneList.jpg > > That screen shot (I blurred the phone numbers...) shows what you can do > with the image capabilities of a treeview. I've right clicked my name, > showing the custom popup menu that displays (based on the node that was > clicked). One of the expanded nodes is Currently logged on computers, > if I expand one of those nodes, it gives me Remote Administrator > (clicking on that node opens a remote admin session to that machine), > computer management (clicking on that node opens a computer management > session to that computer), local drives (expanding that node gives me a > list of the local drives on that machine, which I can click to open a > Windows Explorer session to that drive). > > All from one treeview! > > Good luck with your project (feel free to holler if you have any > questions about what I did...)! Next to classes and collections, I've > found Treeviews to be one of the most powerful tools in a developer's > arsenal! > > Drew > > > From Gustav at cactus.dk Sat Feb 28 15:37:32 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Sat, 28 Feb 2009 22:37:32 +0100 Subject: [AccessD] Scrum (was: Find First in an Array? ...) Message-ID: Hi Shamil Scrum dining ... that was new! But your example describes quite good some of the general ideas behind scrum - as far as I can understand from reading your previously posted links. /gustav >>> mcp2004 at mail.ru 28-02-2009 21:47 >>> Thank you, William, Yes, I can understand that. At least I can expect your participating in some project planning/evaluation, which would take something like half an hour - hour within a month? - such experience would help you I think in your own work... BTW, I have just got online evidence I have been there in Helsinki :) http://danube.com/blog/tobias_mayer/ambling_madly_5_helsinki_scrum_dining Have nice weekend. -- Shamil From tinanfields at torchlake.com Sat Feb 28 15:54:31 2009 From: tinanfields at torchlake.com (Tina Norris Fields) Date: Sat, 28 Feb 2009 16:54:31 -0500 Subject: [AccessD] Tina's Treeview example In-Reply-To: <49A9A877.2070306@torchlake.com> References: <49A9A877.2070306@torchlake.com> Message-ID: <49A9B297.3030307@torchlake.com> I found it in the "more controls" list, although it didn't let me plunk it down on my toolbox, but I found it. T Tina Norris Fields wrote: > Hi Drew, > > Is there a way to get a button for the Access toolbox to put a Treeview > control onto a form? Or, is it done only through code? > > Tina > > Drew Wutka wrote: > >> Glad you like it Tina. I will warn you that the demo I posted for you >> is just the tip of the iceberg when it comes to what you can do with a >> treeview. >> >> A great example is 'HitTest'. It's a method of the Treeview control, >> where you give it x,y coordinates, and it returns the node at the >> coordinates. This allows you to create custom behaviors for left and >> right clicks (Mouse Up event gives you the x,y coordinates). Where you >> could use that in your system, you could actually start the root nodes >> as the Volunteers. And then have the child nodes be the skills and >> levels. The normal left click could have you 'check' if the skill nodes >> are built (and if not, build them, so you don't building thousands of >> nodes from the get go...), and the right click could display a popup >> menu such as 'edit volunteer information' or 'create a new skill', etc. >> >> Here's a visual example of one of the most highly used treeviews I have >> built: >> >> http://www.marlow.com/PhoneList.jpg >> >> That screen shot (I blurred the phone numbers...) shows what you can do >> with the image capabilities of a treeview. I've right clicked my name, >> showing the custom popup menu that displays (based on the node that was >> clicked). One of the expanded nodes is Currently logged on computers, >> if I expand one of those nodes, it gives me Remote Administrator >> (clicking on that node opens a remote admin session to that machine), >> computer management (clicking on that node opens a computer management >> session to that computer), local drives (expanding that node gives me a >> list of the local drives on that machine, which I can click to open a >> Windows Explorer session to that drive). >> >> All from one treeview! >> >> Good luck with your project (feel free to holler if you have any >> questions about what I did...)! Next to classes and collections, I've >> found Treeviews to be one of the most powerful tools in a developer's >> arsenal! >> >> Drew >> >> >> >> From Gustav at cactus.dk Sat Feb 28 15:59:57 2009 From: Gustav at cactus.dk (Gustav Brock) Date: Sat, 28 Feb 2009 22:59:57 +0100 Subject: [AccessD] Tina's Treeview example Message-ID: Hi Drew Quite impressive! I've noticed that quite a few apps now use treeview style menus. Thus - and because I really had no clue how the users would navigate - I used a treeview for my latest app (WinForms) ... somewhat unsure what the users' reaction would be. But they adopted it from day one, and it must have been well thought out because no change has been requested to it. The app has been in use for three months now. One method I used to "sell" the structure was, that it is very easy to modify and expand. For example, you can walk the tree from different entries with a final destination of nearly the same information - from customer or supplier via orders/supplies to products - while you have a visual indication so you don't loose track of "where you are". This, I've found, is a situation users fear in larger apps - to get lost. /gustav >>> DWUTKA at marlow.com 28-02-2009 21:51 >>> Glad you like it Tina. I will warn you that the demo I posted for you is just the tip of the iceberg when it comes to what you can do with a treeview. A great example is 'HitTest'. It's a method of the Treeview control, where you give it x,y coordinates, and it returns the node at the coordinates. This allows you to create custom behaviors for left and right clicks (Mouse Up event gives you the x,y coordinates). Where you could use that in your system, you could actually start the root nodes as the Volunteers. And then have the child nodes be the skills and levels. The normal left click could have you 'check' if the skill nodes are built (and if not, build them, so you don't building thousands of nodes from the get go...), and the right click could display a popup menu such as 'edit volunteer information' or 'create a new skill', etc. Here's a visual example of one of the most highly used treeviews I have built: http://www.marlow.com/PhoneList.jpg That screen shot (I blurred the phone numbers...) shows what you can do with the image capabilities of a treeview. I've right clicked my name, showing the custom popup menu that displays (based on the node that was clicked). One of the expanded nodes is Currently logged on computers, if I expand one of those nodes, it gives me Remote Administrator (clicking on that node opens a remote admin session to that machine), computer management (clicking on that node opens a computer management session to that computer), local drives (expanding that node gives me a list of the local drives on that machine, which I can click to open a Windows Explorer session to that drive). All from one treeview! Good luck with your project (feel free to holler if you have any questions about what I did...)! Next to classes and collections, I've found Treeviews to be one of the most powerful tools in a developer's arsenal! Drew From mcp2004 at mail.ru Sat Feb 28 16:46:36 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Sun, 01 Mar 2009 01:46:36 +0300 Subject: [AccessD] =?koi8-r?b?U2NydW0gKHdhczogRmluZCBGaXJzdCBpbiBhbiBBcnJh?= =?koi8-r?b?eT8gLi4uKQ==?= In-Reply-To: <49a9a770.0a1ad00a.5d0e.ffffaa03@mx.google.com> References: <49a9a770.0a1ad00a.5d0e.ffffaa03@mx.google.com> Message-ID: Thank you, Max. Yes, I think I can understand that. -- Shamil P.S. To everybody: let me note that I'm 50 years old you know? And everybody can check what is an average life duration for Russian men these days. Sorry for my mentioning that - just wanted to note that age shoudln't be the main reason of not investing a little time in the new knowledge, especially if this knowledge "acquisition" promise to be more fun than routine coding work. A man is a man until he is ready to fight :) And I use word "man" in a broad sense meaning a human being - all ladies here are welcome to participate in SCRUM/agile Access-D team project... Yes, I'm feeling some tiredness and apathy here too sometimes - I did live here in communistic state through periods of "melting" in the beginning of sixties, then stagnation of 70ies, then "perestroyka/glasnost" of 80-ies, then anarchy of 90-ies, and "back to USSR" now - all that experience is far from resulting in optimistic view on this country and this world... ...I like phylosophical foundations of SCRUM - that's my world and my community I think - and I will try to actively participate in this community life: during my two days of training I often thought: "My God, that's my World, which I'm looking for for so many years, why didn't you give me the opportunity to experience it 20-30 years ago?". Well, I wasn't probably ready/prepared for living in this world when I was younger - now I hope I realize/see many things very differently than even three years ago. And I must say that SCRUM training wasn't easy walk, but it was a real pleasure to participate even at times when I did see how wrong I am... -----Original Message----- From: "Max Wanadoo" To: "'Access Developers discussion and problem solving'" Date: Sat, 28 Feb 2009 21:06:55 -0000 Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > Yes, Shamil and Gustav. William's reason is the same as mine (although I am > 65) and the age is against us (unlikely to get to payback time v investment > time). > > I will watch with interest though. > > Max > Laugh more than cry. Smile more than frown. Be generous in spirit. And > always stand your round in the pub! > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman > Sent: 28 February 2009 20:25 > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > > Shamil > > "May I ask you all why Gustav and myself can't get a group of 5 team > members?" > > ...I'm 62 yo and have worked as a single developer for the past 15 years > ...SCRUM is focused on something I'm very unlikely to ever use ...and > fortunately, I'm still so loaded down between development work and building > our home that I simply have no time available for anything that I don't > foresee using myself ...I do wish I was 20 years younger and could find the > time and energy to learn something new from people like you and gustav just > for the hell of it ...but I'm not and that's the long and short of it. > > William > From stuart at lexacorp.com.pg Sat Feb 28 17:21:49 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Sun, 01 Mar 2009 09:21:49 +1000 Subject: [AccessD] Scrum (was: Find First in an Array? ...) In-Reply-To: References: , Message-ID: <49AA53AD.12643.920EC70@stuart.lexacorp.com.pg> On 28 Feb 2009 at 15:25, William Hindman wrote: > Shamil > > "May I ask you all why Gustav and myself can't get a group of 5 team > members?" > > ...I'm 62 yo and have worked as a single developer for the past 15 years > ...SCRUM is focused on something I'm very unlikely to ever use ...and > fortunately, I'm still so loaded down between development work and building > our home that I simply have no time available for anything that I don't > foresee using myself ...I do wish I was 20 years younger and could find the > time and energy to learn something new from people like you and gustav just > for the hell of it ...but I'm not and that's the long and short of it. > > William > > -------------------------------------------------- > From: "Salakhetdinov Shamil" > Sent: Saturday, February 28, 2009 2:48 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD]Scrum (was: Find First in an Array? ...) > > > > > Hi Gustav, > > > > Thank you for registering. > > > > Yes, I agree that at this moment 5 users limitations seems of no > > importance. > > > > Anybody else wanted to join me and Gustav to try MS Access Northwind to > > .NET Winforms Northwind conversion project? > > Project is currently planned to be started at 9th of March 2009, and is > > expected to be finished in max 1 man month of common efforts. > > Conversion is planned to be done using SCRUM/agile development methology. > > It will be public open source project with project progress information > > and final converted application published on AccessD. > > This is planned to be as simple as possible project - the only knowledge > > of VS2008 that would be needed at the beginning is how to design .NET > > WinForms by dragginbg and dropping controls and settings some properties. > > And this development activity is simple - my seven years old kid started > > to "design" WinForms after 2 minutes of my introduction, and he even > > "programmed" buttons' click events reaction etc. Really easy and very much > > alike to the usual MS Access forms development. > > > > .NET ReportViewer Control reports' design experience would be a plus but > > not necessary as it's also rather straightforward to get acquanted with > > for experienced developers whatever else Report Designer they used > > before... > > > > Folks, if you can't join this project because you're very busy maybe you > > can at least participate in the "planning poker game"? There is a free > > online tool to play it: http://www.planningpoker.com/ > > > > May I ask yuu all why Gustav and myself can't get a group of 5 team > > members? > > > > If you do not want to answer on this question here please send me private > > e-mails with your reasons - just one most important reason or several, and > > I will collect them and publish here anonymously. And I can make an > > anonymous online poll based on that reasons to vote and see what are main > > reasons, which stop such projects. Please write and send ANY reasons which > > stop you from participating in this discussion/project. > > > > I will wait for your votes/e-mails till next Wednesday as it's weekend now > > and not all listers work over weekend. I do hope somebody will join us > > during the next week. > > > > In the meantime I will be preparing infrastructure, and some simple tools > > to patially automate this conversion, and I will have also to work for my > > customers of course... > > > > Thank you. > > > > -- > > Shamil > > > > > > > > -----Original Message----- > > From: "Gustav Brock" > > To: > > Date: Sat, 28 Feb 2009 19:43:11 +0100 > > Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > > > >> Hi Shamil > >> > >> OK, I signed up. > >> > >> As for the software, the TargetProcess "community edition" will only do > >> be free for 5 licenses. If more users, it is USD 249 for each and every > >> user: > >> > >> Q. What if I need 6 users pack? > >> In this case it will be required to purchase 6 full licenses. Community > >> Edition allows to have 5 licenses, if you need more, you have to migrate > >> to On-Site or On-Demand Full Edition. > >> > >> However, at this moment this limitation seems of no importance. > >> > >> /gustav > >> > >> > >> >>> mcp2004 at mail.ru 28-02-2009 15:43 >>> > >> > >> Hi Gustav and Fellow Listers, > >> > >> Yes, the response on my proposal is a bit discouraging but I'm continuing > >> preparation here for the conversion project of MS Access NorthWind sample > >> app to .NET WinForms. > >> > >> Yes, Gustav, we can try to do it just with you but SCRUM/agile process > >> needs a little bit more team members - at least 4-5: if doing this > >> project by using just your and mine efforts it can be done agile way but > >> not SCRUM, and it will take more time, and what is most important it will > >> not show advantages of working as a team - and the advantages in this > >> case is not only joining the efforts and skills - the main advantage is > >> to experience how teamwork influences one's own views and insights - and > >> it does influence then very effectively - I mean that - I have just > >> experienced that during CSM course in Helsinki. Even participating for > >> years in great dicussion lists as this AccessD one do not change one's > >> stereotypes and (conservative) ways of thinking as SCRUM/agile teamwork > >> does... > >> > >> I plan to keep preparing SCRUM/agile infrastructure for the Northwind > >> conversion project within the next week - in my plans is to setup DNN > >> site - first step is done: > >> > >> http://shamils-4.hosting.parking.ru/dnn49 > >> > >> nothing except registration there yet but it's up&running - I "just" need > >> to add some DNN modules - do not know how to do that yet - plan to do > >> that within the next week - I can keep posting SCRUM related info on this > >> site as well as we can have wiki board on it to have "daily stand-up > >> meetings" as well as I can setup newlist on it to have everybody > >> registered and subscribed to this newlist informed on what is happening. > >> Of course it will be forwarded here - the best woudl be to have separate > >> SCRUM%Access-D list but it's probably too early? > >> > >> I'm also evaluating this software > >> > >> http://www.targetprocess.com/Product.aspx > >> > >> to have our project tasks and their completion progress status easily > >> manageable and viewvable by every team member. I also expect (they talk > >> about integration with CVS but I haven't yet evaluated how it's done) > >> this software will allow to keep distributed source control for the team. > >> This software seems to have a free community edition and if that is true > >> then I can install it on my ASP.NET hosting web site. > >> > >> Please everybody interested help me to evaluate how useful it is for our > >> purposes. > >> If you can find any better ASP.NET alternatives that woull be very > >> useful. > >> > >> I persoally like a lot this Team Taskboard of SCRUMWorks software: > >> > >> http://danube.com/sw_flash/feature/features-team_taskboard.html > >> > >> but this software is JAVA based and a "black-box" for me - I'd not use it > >> because of that. > >> > >> I'm currently spending considerably more than one hour here to prepare > >> all that - I can't ask to spend that much time you or other AcceessD > >> members but when everything ready I'd propose to strickly keep the > >> context of spending not more than one hour (5 hours total per week) for > >> this project. Well, maybe some more time discussing here how it will be > >> proceeding... > >> > >> I'd set 9th of Macrh 2009 as the start date for this project - OK? - if > >> nobody will join us by that date we will try to do it together with you. > >> Everybody are welcome! If to not participate in this project by doing > >> some simple .NET forms design/program then at least to help us to > >> evaluate how much this or that feature/task will take to get implemented. > >> This is so called "estimation using planning poker cards" - > >> http://www.crisp.se/planningpoker - doing such an estimation by two > >> people could result in not so good results as when it's done by 5 or more > >> people. > >> > >> Here are some links on SCRUM/agile and related issues - I will keep > >> posting links like that to get convinced some more AccessD members to > >> join our project: > >> > >> Tobias Mayer - my facilitator during SCRUM course there in Helsinki: > >> http://www.danube.com/blog/tobias_mayer/ > >> > >> Agile software development info: > >> http://en.wikipedia.org/wiki/Agile_software_development > >> > >> Scale Back: Small is Beautiful - how group evaluation/planning results in > >> simple but very good results: > >> http://agilethinking.net/blog/2008/08/18/scale-back-small-is-beautiful > >> > >> Extreme Scrum (154KB) > >> https://www-927.ibm.com/ibm/cas/archives/2007/data/Agile/Extreme_Scrum.pdf > >> > >> What happens when we are all connected - Future Views > >> http://www.youtube.com/watch?v=HqPs0xuG39Q (~6 min) > >> > >> "Only 3% of the world is on broadband today, and it's neither cheap, fast > >> or mobile enough. This will change in the next 2-3 years, and the > >> implications are huge: everyone shares, everyone networks with > >> strangers-like-me, everyone co-creates, everything is connected. A video > >> by Futurist and Author Gerd Leonhard" > >> > >> Working on SCRUM/Agile infrastructure here/expecting for more AccessD to > >> connect this project... > >> > >> Please comment on this my posting - all and every comments and > >> contributions are very welcome! > >> > >> Thank you. > >> > >> -- > >> Shamil > >> > >> > >> -----Original Message----- > >> From: "Gustav Brock" > >> To: > >> Date: Sat, 28 Feb 2009 08:10:00 +0100 > >> Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > >> > >> > Hi Shamil > >> > > >> > Not much response to your proposal ... I guess our fellow listers are > >> > too busy or just don't feel the need to experience how to work in a > >> > group. > >> > To be honest, neither do I have currently that need but as "you never > >> > know" I am prepared to allocate the time you suggest. That makes two. > >> > But two? Doesn't it require three "to make a crowd"? > >> > > >> > Your adjusted description of the project fits me very well. > >> > > >> > /gustav > >> > >> > >> -- > >> AccessD mailing list > >> AccessD at databaseadvisors.com > >> http://databaseadvisors.com/mailman/listinfo/accessd > >> Website: http://www.databaseadvisors.com > >> > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From stuart at lexacorp.com.pg Sat Feb 28 17:30:37 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Sun, 01 Mar 2009 09:30:37 +1000 Subject: [AccessD] Scrum (was: Find First in an Array? ...) In-Reply-To: References: , Message-ID: <49AA55BD.2100.928FC86@stuart.lexacorp.com.pg> strTemp = Replace(strWilliamComments, "62", "60") strTemp = Replace(strTemp,"15","16") strTemp = Replace(strTemp, ""building our home"","getting a new joint venture business off the ground") strStuartComments = strTemp :-) -- Stuart On 28 Feb 2009 at 15:25, William Hindman wrote: > Shamil > > "May I ask you all why Gustav and myself can't get a group of 5 team > members?" > > ...I'm 62 yo and have worked as a single developer for the past 15 years > ...SCRUM is focused on something I'm very unlikely to ever use ...and > fortunately, I'm still so loaded down between development work and building > our home that I simply have no time available for anything that I don't > foresee using myself ...I do wish I was 20 years younger and could find the > time and energy to learn something new from people like you and gustav just > for the hell of it ...but I'm not and that's the long and short of it. > > William > > -------------------------------------------------- > From: "Salakhetdinov Shamil" > Sent: Saturday, February 28, 2009 2:48 PM > To: "Access Developers discussion and problem solving" > > Subject: Re: [AccessD]Scrum (was: Find First in an Array? ...) > > > > > Hi Gustav, > > > > Thank you for registering. > > > > Yes, I agree that at this moment 5 users limitations seems of no > > importance. > > > > Anybody else wanted to join me and Gustav to try MS Access Northwind to > > .NET Winforms Northwind conversion project? > > Project is currently planned to be started at 9th of March 2009, and is > > expected to be finished in max 1 man month of common efforts. > > Conversion is planned to be done using SCRUM/agile development methology. > > It will be public open source project with project progress information > > and final converted application published on AccessD. > > This is planned to be as simple as possible project - the only knowledge > > of VS2008 that would be needed at the beginning is how to design .NET > > WinForms by dragginbg and dropping controls and settings some properties. > > And this development activity is simple - my seven years old kid started > > to "design" WinForms after 2 minutes of my introduction, and he even > > "programmed" buttons' click events reaction etc. Really easy and very much > > alike to the usual MS Access forms development. > > > > .NET ReportViewer Control reports' design experience would be a plus but > > not necessary as it's also rather straightforward to get acquanted with > > for experienced developers whatever else Report Designer they used > > before... > > > > Folks, if you can't join this project because you're very busy maybe you > > can at least participate in the "planning poker game"? There is a free > > online tool to play it: http://www.planningpoker.com/ > > > > May I ask yuu all why Gustav and myself can't get a group of 5 team > > members? > > > > If you do not want to answer on this question here please send me private > > e-mails with your reasons - just one most important reason or several, and > > I will collect them and publish here anonymously. And I can make an > > anonymous online poll based on that reasons to vote and see what are main > > reasons, which stop such projects. Please write and send ANY reasons which > > stop you from participating in this discussion/project. > > > > I will wait for your votes/e-mails till next Wednesday as it's weekend now > > and not all listers work over weekend. I do hope somebody will join us > > during the next week. > > > > In the meantime I will be preparing infrastructure, and some simple tools > > to patially automate this conversion, and I will have also to work for my > > customers of course... > > > > Thank you. > > > > -- > > Shamil > > > > > > > > -----Original Message----- > > From: "Gustav Brock" > > To: > > Date: Sat, 28 Feb 2009 19:43:11 +0100 > > Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > > > >> Hi Shamil > >> > >> OK, I signed up. > >> > >> As for the software, the TargetProcess "community edition" will only do > >> be free for 5 licenses. If more users, it is USD 249 for each and every > >> user: > >> > >> Q. What if I need 6 users pack? > >> In this case it will be required to purchase 6 full licenses. Community > >> Edition allows to have 5 licenses, if you need more, you have to migrate > >> to On-Site or On-Demand Full Edition. > >> > >> However, at this moment this limitation seems of no importance. > >> > >> /gustav > >> > >> > >> >>> mcp2004 at mail.ru 28-02-2009 15:43 >>> > >> > >> Hi Gustav and Fellow Listers, > >> > >> Yes, the response on my proposal is a bit discouraging but I'm continuing > >> preparation here for the conversion project of MS Access NorthWind sample > >> app to .NET WinForms. > >> > >> Yes, Gustav, we can try to do it just with you but SCRUM/agile process > >> needs a little bit more team members - at least 4-5: if doing this > >> project by using just your and mine efforts it can be done agile way but > >> not SCRUM, and it will take more time, and what is most important it will > >> not show advantages of working as a team - and the advantages in this > >> case is not only joining the efforts and skills - the main advantage is > >> to experience how teamwork influences one's own views and insights - and > >> it does influence then very effectively - I mean that - I have just > >> experienced that during CSM course in Helsinki. Even participating for > >> years in great dicussion lists as this AccessD one do not change one's > >> stereotypes and (conservative) ways of thinking as SCRUM/agile teamwork > >> does... > >> > >> I plan to keep preparing SCRUM/agile infrastructure for the Northwind > >> conversion project within the next week - in my plans is to setup DNN > >> site - first step is done: > >> > >> http://shamils-4.hosting.parking.ru/dnn49 > >> > >> nothing except registration there yet but it's up&running - I "just" need > >> to add some DNN modules - do not know how to do that yet - plan to do > >> that within the next week - I can keep posting SCRUM related info on this > >> site as well as we can have wiki board on it to have "daily stand-up > >> meetings" as well as I can setup newlist on it to have everybody > >> registered and subscribed to this newlist informed on what is happening. > >> Of course it will be forwarded here - the best woudl be to have separate > >> SCRUM%Access-D list but it's probably too early? > >> > >> I'm also evaluating this software > >> > >> http://www.targetprocess.com/Product.aspx > >> > >> to have our project tasks and their completion progress status easily > >> manageable and viewvable by every team member. I also expect (they talk > >> about integration with CVS but I haven't yet evaluated how it's done) > >> this software will allow to keep distributed source control for the team. > >> This software seems to have a free community edition and if that is true > >> then I can install it on my ASP.NET hosting web site. > >> > >> Please everybody interested help me to evaluate how useful it is for our > >> purposes. > >> If you can find any better ASP.NET alternatives that woull be very > >> useful. > >> > >> I persoally like a lot this Team Taskboard of SCRUMWorks software: > >> > >> http://danube.com/sw_flash/feature/features-team_taskboard.html > >> > >> but this software is JAVA based and a "black-box" for me - I'd not use it > >> because of that. > >> > >> I'm currently spending considerably more than one hour here to prepare > >> all that - I can't ask to spend that much time you or other AcceessD > >> members but when everything ready I'd propose to strickly keep the > >> context of spending not more than one hour (5 hours total per week) for > >> this project. Well, maybe some more time discussing here how it will be > >> proceeding... > >> > >> I'd set 9th of Macrh 2009 as the start date for this project - OK? - if > >> nobody will join us by that date we will try to do it together with you. > >> Everybody are welcome! If to not participate in this project by doing > >> some simple .NET forms design/program then at least to help us to > >> evaluate how much this or that feature/task will take to get implemented. > >> This is so called "estimation using planning poker cards" - > >> http://www.crisp.se/planningpoker - doing such an estimation by two > >> people could result in not so good results as when it's done by 5 or more > >> people. > >> > >> Here are some links on SCRUM/agile and related issues - I will keep > >> posting links like that to get convinced some more AccessD members to > >> join our project: > >> > >> Tobias Mayer - my facilitator during SCRUM course there in Helsinki: > >> http://www.danube.com/blog/tobias_mayer/ > >> > >> Agile software development info: > >> http://en.wikipedia.org/wiki/Agile_software_development > >> > >> Scale Back: Small is Beautiful - how group evaluation/planning results in > >> simple but very good results: > >> http://agilethinking.net/blog/2008/08/18/scale-back-small-is-beautiful > >> > >> Extreme Scrum (154KB) > >> https://www-927.ibm.com/ibm/cas/archives/2007/data/Agile/Extreme_Scrum.pdf > >> > >> What happens when we are all connected - Future Views > >> http://www.youtube.com/watch?v=HqPs0xuG39Q (~6 min) > >> > >> "Only 3% of the world is on broadband today, and it's neither cheap, fast > >> or mobile enough. This will change in the next 2-3 years, and the > >> implications are huge: everyone shares, everyone networks with > >> strangers-like-me, everyone co-creates, everything is connected. A video > >> by Futurist and Author Gerd Leonhard" > >> > >> Working on SCRUM/Agile infrastructure here/expecting for more AccessD to > >> connect this project... > >> > >> Please comment on this my posting - all and every comments and > >> contributions are very welcome! > >> > >> Thank you. > >> > >> -- > >> Shamil > >> > >> > >> -----Original Message----- > >> From: "Gustav Brock" > >> To: > >> Date: Sat, 28 Feb 2009 08:10:00 +0100 > >> Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > >> > >> > Hi Shamil > >> > > >> > Not much response to your proposal ... I guess our fellow listers are > >> > too busy or just don't feel the need to experience how to work in a > >> > group. > >> > To be honest, neither do I have currently that need but as "you never > >> > know" I am prepared to allocate the time you suggest. That makes two. > >> > But two? Doesn't it require three "to make a crowd"? > >> > > >> > Your adjusted description of the project fits me very well. > >> > > >> > /gustav > >> > >> > >> -- > >> AccessD mailing list > >> AccessD at databaseadvisors.com > >> http://databaseadvisors.com/mailman/listinfo/accessd > >> Website: http://www.databaseadvisors.com > >> > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From mmattys at rochester.rr.com Sat Feb 28 18:09:45 2009 From: mmattys at rochester.rr.com (Mike Mattys) Date: Sat, 28 Feb 2009 19:09:45 -0500 Subject: [AccessD] Scrum (was: Find First in an Array? ...) References: , <49AA55BD.2100.928FC86@stuart.lexacorp.com.pg> Message-ID: <29971295C918463B827A103AC1CF6F53@Mattys> Hi Shamil & Gustav Not of William's or Stuart's caliber, but willing to try. I've fallen behind on reading AccessD Let's see - I signed up to Shamil's site What should I be downloading / reading? - Mike Mattys - ----- Original Message ----- From: "Stuart McLachlan" To: "Access Developers discussion and problem solving" Sent: Saturday, February 28, 2009 6:30 PM Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > strTemp = Replace(strWilliamComments, "62", "60") > strTemp = Replace(strTemp,"15","16") > strTemp = Replace(strTemp, ""building our home"","getting a new joint > venture business > off the ground") > > strStuartComments = strTemp :-) > > -- > Stuart > > On 28 Feb 2009 at 15:25, William Hindman wrote: > >> Shamil >> >> "May I ask you all why Gustav and myself can't get a group of 5 team >> members?" >> >> ...I'm 62 yo and have worked as a single developer for the past 15 years >> ...SCRUM is focused on something I'm very unlikely to ever use ...and >> fortunately, I'm still so loaded down between development work and >> building >> our home that I simply have no time available for anything that I don't >> foresee using myself ...I do wish I was 20 years younger and could find >> the >> time and energy to learn something new from people like you and gustav >> just >> for the hell of it ...but I'm not and that's the long and short of it. >> >> William >> >> -------------------------------------------------- >> From: "Salakhetdinov Shamil" >> Sent: Saturday, February 28, 2009 2:48 PM >> To: "Access Developers discussion and problem solving" >> >> Subject: Re: [AccessD]Scrum (was: Find First in an Array? ...) >> >> > >> > Hi Gustav, >> > >> > Thank you for registering. >> > >> > Yes, I agree that at this moment 5 users limitations seems of no >> > importance. >> > >> > Anybody else wanted to join me and Gustav to try MS Access Northwind to >> > .NET Winforms Northwind conversion project? >> > Project is currently planned to be started at 9th of March 2009, and is >> > expected to be finished in max 1 man month of common efforts. >> > Conversion is planned to be done using SCRUM/agile development >> > methology. >> > It will be public open source project with project progress information >> > and final converted application published on AccessD. >> > This is planned to be as simple as possible project - the only >> > knowledge >> > of VS2008 that would be needed at the beginning is how to design .NET >> > WinForms by dragginbg and dropping controls and settings some >> > properties. >> > And this development activity is simple - my seven years old kid >> > started >> > to "design" WinForms after 2 minutes of my introduction, and he even >> > "programmed" buttons' click events reaction etc. Really easy and very >> > much >> > alike to the usual MS Access forms development. >> > >> > .NET ReportViewer Control reports' design experience would be a plus >> > but >> > not necessary as it's also rather straightforward to get acquanted with >> > for experienced developers whatever else Report Designer they used >> > before... >> > >> > Folks, if you can't join this project because you're very busy maybe >> > you >> > can at least participate in the "planning poker game"? There is a free >> > online tool to play it: http://www.planningpoker.com/ >> > >> > May I ask yuu all why Gustav and myself can't get a group of 5 team >> > members? >> > >> > If you do not want to answer on this question here please send me >> > private >> > e-mails with your reasons - just one most important reason or several, >> > and >> > I will collect them and publish here anonymously. And I can make an >> > anonymous online poll based on that reasons to vote and see what are >> > main >> > reasons, which stop such projects. Please write and send ANY reasons >> > which >> > stop you from participating in this discussion/project. >> > >> > I will wait for your votes/e-mails till next Wednesday as it's weekend >> > now >> > and not all listers work over weekend. I do hope somebody will join us >> > during the next week. >> > >> > In the meantime I will be preparing infrastructure, and some simple >> > tools >> > to patially automate this conversion, and I will have also to work for >> > my >> > customers of course... >> > >> > Thank you. >> > >> > -- >> > Shamil >> > >> > >> > >> > -----Original Message----- >> > From: "Gustav Brock" >> > To: >> > Date: Sat, 28 Feb 2009 19:43:11 +0100 >> > Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) >> > >> >> Hi Shamil >> >> >> >> OK, I signed up. >> >> >> >> As for the software, the TargetProcess "community edition" will only >> >> do >> >> be free for 5 licenses. If more users, it is USD 249 for each and >> >> every >> >> user: >> >> >> >> Q. What if I need 6 users pack? >> >> In this case it will be required to purchase 6 full licenses. >> >> Community >> >> Edition allows to have 5 licenses, if you need more, you have to >> >> migrate >> >> to On-Site or On-Demand Full Edition. >> >> >> >> However, at this moment this limitation seems of no importance. >> >> >> >> /gustav >> >> >> >> >> >> >>> mcp2004 at mail.ru 28-02-2009 15:43 >>> >> >> >> >> Hi Gustav and Fellow Listers, >> >> >> >> Yes, the response on my proposal is a bit discouraging but I'm >> >> continuing >> >> preparation here for the conversion project of MS Access NorthWind >> >> sample >> >> app to .NET WinForms. >> >> >> >> Yes, Gustav, we can try to do it just with you but SCRUM/agile process >> >> needs a little bit more team members - at least 4-5: if doing this >> >> project by using just your and mine efforts it can be done agile way >> >> but >> >> not SCRUM, and it will take more time, and what is most important it >> >> will >> >> not show advantages of working as a team - and the advantages in this >> >> case is not only joining the efforts and skills - the main advantage >> >> is >> >> to experience how teamwork influences one's own views and insights - >> >> and >> >> it does influence then very effectively - I mean that - I have just >> >> experienced that during CSM course in Helsinki. Even participating for >> >> years in great dicussion lists as this AccessD one do not change one's >> >> stereotypes and (conservative) ways of thinking as SCRUM/agile >> >> teamwork >> >> does... >> >> >> >> I plan to keep preparing SCRUM/agile infrastructure for the Northwind >> >> conversion project within the next week - in my plans is to setup DNN >> >> site - first step is done: >> >> >> >> http://shamils-4.hosting.parking.ru/dnn49 >> >> >> >> nothing except registration there yet but it's up&running - I "just" >> >> need >> >> to add some DNN modules - do not know how to do that yet - plan to do >> >> that within the next week - I can keep posting SCRUM related info on >> >> this >> >> site as well as we can have wiki board on it to have "daily stand-up >> >> meetings" as well as I can setup newlist on it to have everybody >> >> registered and subscribed to this newlist informed on what is >> >> happening. >> >> Of course it will be forwarded here - the best woudl be to have >> >> separate >> >> SCRUM%Access-D list but it's probably too early? >> >> >> >> I'm also evaluating this software >> >> >> >> http://www.targetprocess.com/Product.aspx >> >> >> >> to have our project tasks and their completion progress status easily >> >> manageable and viewvable by every team member. I also expect (they >> >> talk >> >> about integration with CVS but I haven't yet evaluated how it's done) >> >> this software will allow to keep distributed source control for the >> >> team. >> >> This software seems to have a free community edition and if that is >> >> true >> >> then I can install it on my ASP.NET hosting web site. >> >> >> >> Please everybody interested help me to evaluate how useful it is for >> >> our >> >> purposes. >> >> If you can find any better ASP.NET alternatives that woull be very >> >> useful. >> >> >> >> I persoally like a lot this Team Taskboard of SCRUMWorks software: >> >> >> >> http://danube.com/sw_flash/feature/features-team_taskboard.html >> >> >> >> but this software is JAVA based and a "black-box" for me - I'd not use >> >> it >> >> because of that. >> >> >> >> I'm currently spending considerably more than one hour here to prepare >> >> all that - I can't ask to spend that much time you or other AcceessD >> >> members but when everything ready I'd propose to strickly keep the >> >> context of spending not more than one hour (5 hours total per week) >> >> for >> >> this project. Well, maybe some more time discussing here how it will >> >> be >> >> proceeding... >> >> >> >> I'd set 9th of Macrh 2009 as the start date for this project - OK? - >> >> if >> >> nobody will join us by that date we will try to do it together with >> >> you. >> >> Everybody are welcome! If to not participate in this project by doing >> >> some simple .NET forms design/program then at least to help us to >> >> evaluate how much this or that feature/task will take to get >> >> implemented. >> >> This is so called "estimation using planning poker cards" - >> >> http://www.crisp.se/planningpoker - doing such an estimation by two >> >> people could result in not so good results as when it's done by 5 or >> >> more >> >> people. >> >> >> >> Here are some links on SCRUM/agile and related issues - I will keep >> >> posting links like that to get convinced some more AccessD members to >> >> join our project: >> >> >> >> Tobias Mayer - my facilitator during SCRUM course there in Helsinki: >> >> http://www.danube.com/blog/tobias_mayer/ >> >> >> >> Agile software development info: >> >> http://en.wikipedia.org/wiki/Agile_software_development >> >> >> >> Scale Back: Small is Beautiful - how group evaluation/planning results >> >> in >> >> simple but very good results: >> >> http://agilethinking.net/blog/2008/08/18/scale-back-small-is-beautiful >> >> >> >> Extreme Scrum (154KB) >> >> https://www-927.ibm.com/ibm/cas/archives/2007/data/Agile/Extreme_Scrum.pdf >> >> >> >> What happens when we are all connected - Future Views >> >> http://www.youtube.com/watch?v=HqPs0xuG39Q (~6 min) >> >> >> >> "Only 3% of the world is on broadband today, and it's neither cheap, >> >> fast >> >> or mobile enough. This will change in the next 2-3 years, and the >> >> implications are huge: everyone shares, everyone networks with >> >> strangers-like-me, everyone co-creates, everything is connected. A >> >> video >> >> by Futurist and Author Gerd Leonhard" >> >> >> >> Working on SCRUM/Agile infrastructure here/expecting for more AccessD >> >> to >> >> connect this project... >> >> >> >> Please comment on this my posting - all and every comments and >> >> contributions are very welcome! >> >> >> >> Thank you. >> >> >> >> -- >> >> Shamil >> >> >> >> >> >> -----Original Message----- >> >> From: "Gustav Brock" >> >> To: >> >> Date: Sat, 28 Feb 2009 08:10:00 +0100 >> >> Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) >> >> >> >> > Hi Shamil >> >> > >> >> > Not much response to your proposal ... I guess our fellow listers >> >> > are >> >> > too busy or just don't feel the need to experience how to work in a >> >> > group. >> >> > To be honest, neither do I have currently that need but as "you >> >> > never >> >> > know" I am prepared to allocate the time you suggest. That makes >> >> > two. >> >> > But two? Doesn't it require three "to make a crowd"? >> >> > >> >> > Your adjusted description of the project fits me very well. >> >> > >> >> > /gustav >> >> >> >> >> >> -- >> >> AccessD mailing list >> >> AccessD at databaseadvisors.com >> >> http://databaseadvisors.com/mailman/listinfo/accessd >> >> Website: http://www.databaseadvisors.com >> >> >> > >> > -- >> > AccessD mailing list >> > AccessD at databaseadvisors.com >> > http://databaseadvisors.com/mailman/listinfo/accessd >> > Website: http://www.databaseadvisors.com >> > >> >> -- >> AccessD mailing list >> AccessD at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/accessd >> Website: http://www.databaseadvisors.com > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com From mcp2004 at mail.ru Sat Feb 28 18:10:51 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Sun, 01 Mar 2009 03:10:51 +0300 Subject: [AccessD] =?koi8-r?b?U2NydW0gKHdhczogRmluZCBGaXJzdCBpbiBhbiBBcnJh?= =?koi8-r?b?eT8gLi4uKQ==?= In-Reply-To: References: Message-ID: Well, that "SCRUM dining" was a funny experience I did get there in Finland during two evening's dinners - the two teams of the same restaurant were so different in quality of their service that that fact surprised me a lot and I did write about that to Tobias and other members of the CSM course group, and Tobias decided to make his blog entry based on that my story. I didn't expect that I must say. Tobias did ask for my approval to publish this story although I expected be will edit it heavily but he left it almost as it was written here... Have a look - a free white paper: Agile tools: The good, the bad, the urgly. By: Michael Dubakov and Peter Stevens http://www.targetprocess.com/download/whitepaper/agiletools.pdf "Agile software development adoption spreads over the world. According to the latest surveys, about 70% of organizations adopt agile practices and stick with it. During the last 10 years, agile methods jumped from nowhere to the peak. Such rapid revolution demands new tools. There are many developers-focused tools appearing including JUnit, Eclipse, Cruise Control, etc. However, the project management community is less self-sufficient and unable to create new tools for the new methodology in their spare time. As a result, most companies are still using old-fashioned project management tools like MS Project or generic tools like spreadsheets for project planning and tracking. This White paper addresses a dilemma that faces many Agile teams that are trying to decide on the best tools to use in their daily practices." -- Shamil -----Original Message----- From: "Gustav Brock" To: Date: Sat, 28 Feb 2009 22:37:32 +0100 Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > Hi Shamil > > Scrum dining ... that was new! > > But your example describes quite good some of the general ideas behind scrum - as far as I can understand from reading your previously posted links. > > /gustav > > > >>> mcp2004 at mail.ru 28-02-2009 21:47 >>> > Thank you, William, > > Yes, I can understand that. At least I can expect your participating in some project planning/evaluation, which would take something like half an hour - hour within a month? - such experience would help you I think in your own work... > > BTW, I have just got online evidence I have been there in Helsinki :) > > http://danube.com/blog/tobias_mayer/ambling_madly_5_helsinki_scrum_dining > > Have nice weekend. > > -- > Shamil > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From mcp2004 at mail.ru Sat Feb 28 18:33:06 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Sun, 01 Mar 2009 03:33:06 +0300 Subject: [AccessD] =?koi8-r?b?U2NydW0gKHdhczogRmluZCBGaXJzdCBpbiBhbiBBcnJh?= =?koi8-r?b?eT8gLi4uKQ==?= In-Reply-To: <49AA55BD.2100.928FC86@stuart.lexacorp.com.pg> References: <49AA55BD.2100.928FC86@stuart.lexacorp.com.pg> Message-ID: Thank you, Stuart, Is that your new joint venture business you're getting off the ground software related? - then SCRUM/agile is what you need! :) And Papua New Guinea country's motto: "Unity in diversity" is also one of the foundations of SCRUM philosophy :) -- Shamil P.S. -----Original Message----- From: "Stuart McLachlan" To: Access Developers discussion and problem solving Date: Sun, 01 Mar 2009 09:30:37 +1000 Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > strTemp = Replace(strWilliamComments, "62", "60") > strTemp = Replace(strTemp,"15","16") > strTemp = Replace(strTemp, ""building our home"","getting a new joint venture business > off the ground") > > strStuartComments = strTemp :-) > > -- > Stuart > > On 28 Feb 2009 at 15:25, William Hindman wrote: > > > Shamil > > > > "May I ask you all why Gustav and myself can't get a group of 5 team > > members?" > > > > ...I'm 62 yo and have worked as a single developer for the past 15 years > > ...SCRUM is focused on something I'm very unlikely to ever use ...and > > fortunately, I'm still so loaded down between development work and building > > our home that I simply have no time available for anything that I don't > > foresee using myself ...I do wish I was 20 years younger and could find the > > time and energy to learn something new from people like you and gustav just > > for the hell of it ...but I'm not and that's the long and short of it. > > > > William > > > > -------------------------------------------------- > > From: "Salakhetdinov Shamil" > > Sent: Saturday, February 28, 2009 2:48 PM > > To: "Access Developers discussion and problem solving" > > > > Subject: Re: [AccessD]Scrum (was: Find First in an Array? ...) > > > > > > > > Hi Gustav, > > > > > > Thank you for registering. > > > > > > Yes, I agree that at this moment 5 users limitations seems of no > > > importance. > > > > > > Anybody else wanted to join me and Gustav to try MS Access Northwind to > > > .NET Winforms Northwind conversion project? > > > Project is currently planned to be started at 9th of March 2009, and is > > > expected to be finished in max 1 man month of common efforts. > > > Conversion is planned to be done using SCRUM/agile development methology. > > > It will be public open source project with project progress information > > > and final converted application published on AccessD. > > > This is planned to be as simple as possible project - the only knowledge > > > of VS2008 that would be needed at the beginning is how to design .NET > > > WinForms by dragginbg and dropping controls and settings some properties. > > > And this development activity is simple - my seven years old kid started > > > to "design" WinForms after 2 minutes of my introduction, and he even > > > "programmed" buttons' click events reaction etc. Really easy and very much > > > alike to the usual MS Access forms development. > > > > > > .NET ReportViewer Control reports' design experience would be a plus but > > > not necessary as it's also rather straightforward to get acquanted with > > > for experienced developers whatever else Report Designer they used > > > before... > > > > > > Folks, if you can't join this project because you're very busy maybe you > > > can at least participate in the "planning poker game"? There is a free > > > online tool to play it: http://www.planningpoker.com/ > > > > > > May I ask yuu all why Gustav and myself can't get a group of 5 team > > > members? > > > > > > If you do not want to answer on this question here please send me private > > > e-mails with your reasons - just one most important reason or several, and > > > I will collect them and publish here anonymously. And I can make an > > > anonymous online poll based on that reasons to vote and see what are main > > > reasons, which stop such projects. Please write and send ANY reasons which > > > stop you from participating in this discussion/project. > > > > > > I will wait for your votes/e-mails till next Wednesday as it's weekend now > > > and not all listers work over weekend. I do hope somebody will join us > > > during the next week. > > > > > > In the meantime I will be preparing infrastructure, and some simple tools > > > to patially automate this conversion, and I will have also to work for my > > > customers of course... > > > > > > Thank you. > > > > > > -- > > > Shamil > > > > > > > > > > > > -----Original Message----- > > > From: "Gustav Brock" > > > To: > > > Date: Sat, 28 Feb 2009 19:43:11 +0100 > > > Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > > > > > >> Hi Shamil > > >> > > >> OK, I signed up. > > >> > > >> As for the software, the TargetProcess "community edition" will only do > > >> be free for 5 licenses. If more users, it is USD 249 for each and every > > >> user: > > >> > > >> Q. What if I need 6 users pack? > > >> In this case it will be required to purchase 6 full licenses. Community > > >> Edition allows to have 5 licenses, if you need more, you have to migrate > > >> to On-Site or On-Demand Full Edition. > > >> > > >> However, at this moment this limitation seems of no importance. > > >> > > >> /gustav > > >> > > >> > > >> >>> mcp2004 at mail.ru 28-02-2009 15:43 >>> > > >> > > >> Hi Gustav and Fellow Listers, > > >> > > >> Yes, the response on my proposal is a bit discouraging but I'm continuing > > >> preparation here for the conversion project of MS Access NorthWind sample > > >> app to .NET WinForms. > > >> > > >> Yes, Gustav, we can try to do it just with you but SCRUM/agile process > > >> needs a little bit more team members - at least 4-5: if doing this > > >> project by using just your and mine efforts it can be done agile way but > > >> not SCRUM, and it will take more time, and what is most important it will > > >> not show advantages of working as a team - and the advantages in this > > >> case is not only joining the efforts and skills - the main advantage is > > >> to experience how teamwork influences one's own views and insights - and > > >> it does influence then very effectively - I mean that - I have just > > >> experienced that during CSM course in Helsinki. Even participating for > > >> years in great dicussion lists as this AccessD one do not change one's > > >> stereotypes and (conservative) ways of thinking as SCRUM/agile teamwork > > >> does... > > >> > > >> I plan to keep preparing SCRUM/agile infrastructure for the Northwind > > >> conversion project within the next week - in my plans is to setup DNN > > >> site - first step is done: > > >> > > >> http://shamils-4.hosting.parking.ru/dnn49 > > >> > > >> nothing except registration there yet but it's up&running - I "just" need > > >> to add some DNN modules - do not know how to do that yet - plan to do > > >> that within the next week - I can keep posting SCRUM related info on this > > >> site as well as we can have wiki board on it to have "daily stand-up > > >> meetings" as well as I can setup newlist on it to have everybody > > >> registered and subscribed to this newlist informed on what is happening. > > >> Of course it will be forwarded here - the best woudl be to have separate > > >> SCRUM%Access-D list but it's probably too early? > > >> > > >> I'm also evaluating this software > > >> > > >> http://www.targetprocess.com/Product.aspx > > >> > > >> to have our project tasks and their completion progress status easily > > >> manageable and viewvable by every team member. I also expect (they talk > > >> about integration with CVS but I haven't yet evaluated how it's done) > > >> this software will allow to keep distributed source control for the team. > > >> This software seems to have a free community edition and if that is true > > >> then I can install it on my ASP.NET hosting web site. > > >> > > >> Please everybody interested help me to evaluate how useful it is for our > > >> purposes. > > >> If you can find any better ASP.NET alternatives that woull be very > > >> useful. > > >> > > >> I persoally like a lot this Team Taskboard of SCRUMWorks software: > > >> > > >> http://danube.com/sw_flash/feature/features-team_taskboard.html > > >> > > >> but this software is JAVA based and a "black-box" for me - I'd not use it > > >> because of that. > > >> > > >> I'm currently spending considerably more than one hour here to prepare > > >> all that - I can't ask to spend that much time you or other AcceessD > > >> members but when everything ready I'd propose to strickly keep the > > >> context of spending not more than one hour (5 hours total per week) for > > >> this project. Well, maybe some more time discussing here how it will be > > >> proceeding... > > >> > > >> I'd set 9th of Macrh 2009 as the start date for this project - OK? - if > > >> nobody will join us by that date we will try to do it together with you. > > >> Everybody are welcome! If to not participate in this project by doing > > >> some simple .NET forms design/program then at least to help us to > > >> evaluate how much this or that feature/task will take to get implemented. > > >> This is so called "estimation using planning poker cards" - > > >> http://www.crisp.se/planningpoker - doing such an estimation by two > > >> people could result in not so good results as when it's done by 5 or more > > >> people. > > >> > > >> Here are some links on SCRUM/agile and related issues - I will keep > > >> posting links like that to get convinced some more AccessD members to > > >> join our project: > > >> > > >> Tobias Mayer - my facilitator during SCRUM course there in Helsinki: > > >> http://www.danube.com/blog/tobias_mayer/ > > >> > > >> Agile software development info: > > >> http://en.wikipedia.org/wiki/Agile_software_development > > >> > > >> Scale Back: Small is Beautiful - how group evaluation/planning results in > > >> simple but very good results: > > >> http://agilethinking.net/blog/2008/08/18/scale-back-small-is-beautiful > > >> > > >> Extreme Scrum (154KB) > > >> https://www-927.ibm.com/ibm/cas/archives/2007/data/Agile/Extreme_Scrum.pdf > > >> > > >> What happens when we are all connected - Future Views > > >> http://www.youtube.com/watch?v=HqPs0xuG39Q (~6 min) > > >> > > >> "Only 3% of the world is on broadband today, and it's neither cheap, fast > > >> or mobile enough. This will change in the next 2-3 years, and the > > >> implications are huge: everyone shares, everyone networks with > > >> strangers-like-me, everyone co-creates, everything is connected. A video > > >> by Futurist and Author Gerd Leonhard" > > >> > > >> Working on SCRUM/Agile infrastructure here/expecting for more AccessD to > > >> connect this project... > > >> > > >> Please comment on this my posting - all and every comments and > > >> contributions are very welcome! > > >> > > >> Thank you. > > >> > > >> -- > > >> Shamil > > >> > > >> > > >> -----Original Message----- > > >> From: "Gustav Brock" > > >> To: > > >> Date: Sat, 28 Feb 2009 08:10:00 +0100 > > >> Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > > >> > > >> > Hi Shamil > > >> > > > >> > Not much response to your proposal ... I guess our fellow listers are > > >> > too busy or just don't feel the need to experience how to work in a > > >> > group. > > >> > To be honest, neither do I have currently that need but as "you never > > >> > know" I am prepared to allocate the time you suggest. That makes two. > > >> > But two? Doesn't it require three "to make a crowd"? > > >> > > > >> > Your adjusted description of the project fits me very well. > > >> > > > >> > /gustav > > >> > > >> > > >> -- > > >> AccessD mailing list > > >> AccessD at databaseadvisors.com > > >> http://databaseadvisors.com/mailman/listinfo/accessd > > >> Website: http://www.databaseadvisors.com > > >> > > > > > > -- > > > AccessD mailing list > > > AccessD at databaseadvisors.com > > > http://databaseadvisors.com/mailman/listinfo/accessd > > > Website: http://www.databaseadvisors.com > > > > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From mcp2004 at mail.ru Sat Feb 28 19:07:45 2009 From: mcp2004 at mail.ru (Salakhetdinov Shamil) Date: Sun, 01 Mar 2009 04:07:45 +0300 Subject: [AccessD] =?koi8-r?b?U2NydW0gKHdhczogRmluZCBGaXJzdCBpbiBhbiBBcnJh?= =?koi8-r?b?eT8gLi4uKQ==?= In-Reply-To: <29971295C918463B827A103AC1CF6F53@Mattys> References: <29971295C918463B827A103AC1CF6F53@Mattys> Message-ID: Hi Mike, Thank you for joining us. We're going to make Northwind MS Access conversion to .NET Winforms application. We wanted to make it SCRUM-way. << SCRUM in 100 words - Scrum is an agile process that allows us to focus on delivering the highest business value in the shortest time. - It allows us to rapidly and repeatedly inspect actual working software (every two weeks to one month). - The business sets the priorities. Teams self-organize to determine the best way to deliver the highest priority features. - Every two weeks to a month anyone can see real working software and decide to release it as is or continue to enhance it for another sprint. >> You can start by reading these sources: http://www.mountaingoatsoftware.com/scrum-a-presentation http://agilethinking.net/scrumdocs/Essence_Of_Scrum.pdf Scrum and XP from the Trenches - it's a big book - we can use it as a reference later. Just glance it for now (you can download a free copy). I must say I didn't read it yet but I was told it's very good source for SCRUM projects, it has a lot of real life samples and experiences: http://www.infoq.com/minibooks/scrum-xp-from-the-trenches All in all we're getting self-organizing now: I plan to prepare some public infrastruture within coming week - when that ready, and even if not ready - we can start - currently planned date is 9th of March. FYI: If that would have been a real project for money with all of us working on it fulltime or something like that then we could have started immediately... -- Shamil -----Original Message----- From: "Mike Mattys" To: "Access Developers discussion and problem solving" Date: Sat, 28 Feb 2009 19:09:45 -0500 Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > Hi Shamil & Gustav > > Not of William's or Stuart's caliber, but willing to try. > I've fallen behind on reading AccessD > > Let's see - I signed up to Shamil's site > What should I be downloading / reading? > > - > Mike Mattys > - > > ----- Original Message ----- > From: "Stuart McLachlan" > To: "Access Developers discussion and problem solving" > > Sent: Saturday, February 28, 2009 6:30 PM > Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > > > > strTemp = Replace(strWilliamComments, "62", "60") > > strTemp = Replace(strTemp,"15","16") > > strTemp = Replace(strTemp, ""building our home"","getting a new joint > > venture business > > off the ground") > > > > strStuartComments = strTemp :-) > > > > -- > > Stuart > > > > On 28 Feb 2009 at 15:25, William Hindman wrote: > > > >> Shamil > >> > >> "May I ask you all why Gustav and myself can't get a group of 5 team > >> members?" > >> > >> ...I'm 62 yo and have worked as a single developer for the past 15 years > >> ...SCRUM is focused on something I'm very unlikely to ever use ...and > >> fortunately, I'm still so loaded down between development work and > >> building > >> our home that I simply have no time available for anything that I don't > >> foresee using myself ...I do wish I was 20 years younger and could find > >> the > >> time and energy to learn something new from people like you and gustav > >> just > >> for the hell of it ...but I'm not and that's the long and short of it. > >> > >> William > >> > >> -------------------------------------------------- > >> From: "Salakhetdinov Shamil" > >> Sent: Saturday, February 28, 2009 2:48 PM > >> To: "Access Developers discussion and problem solving" > >> > >> Subject: Re: [AccessD]Scrum (was: Find First in an Array? ...) > >> > >> > > >> > Hi Gustav, > >> > > >> > Thank you for registering. > >> > > >> > Yes, I agree that at this moment 5 users limitations seems of no > >> > importance. > >> > > >> > Anybody else wanted to join me and Gustav to try MS Access Northwind to > >> > .NET Winforms Northwind conversion project? > >> > Project is currently planned to be started at 9th of March 2009, and is > >> > expected to be finished in max 1 man month of common efforts. > >> > Conversion is planned to be done using SCRUM/agile development > >> > methology. > >> > It will be public open source project with project progress information > >> > and final converted application published on AccessD. > >> > This is planned to be as simple as possible project - the only > >> > knowledge > >> > of VS2008 that would be needed at the beginning is how to design .NET > >> > WinForms by dragginbg and dropping controls and settings some > >> > properties. > >> > And this development activity is simple - my seven years old kid > >> > started > >> > to "design" WinForms after 2 minutes of my introduction, and he even > >> > "programmed" buttons' click events reaction etc. Really easy and very > >> > much > >> > alike to the usual MS Access forms development. > >> > > >> > .NET ReportViewer Control reports' design experience would be a plus > >> > but > >> > not necessary as it's also rather straightforward to get acquanted with > >> > for experienced developers whatever else Report Designer they used > >> > before... > >> > > >> > Folks, if you can't join this project because you're very busy maybe > >> > you > >> > can at least participate in the "planning poker game"? There is a free > >> > online tool to play it: http://www.planningpoker.com/ > >> > > >> > May I ask yuu all why Gustav and myself can't get a group of 5 team > >> > members? > >> > > >> > If you do not want to answer on this question here please send me > >> > private > >> > e-mails with your reasons - just one most important reason or several, > >> > and > >> > I will collect them and publish here anonymously. And I can make an > >> > anonymous online poll based on that reasons to vote and see what are > >> > main > >> > reasons, which stop such projects. Please write and send ANY reasons > >> > which > >> > stop you from participating in this discussion/project. > >> > > >> > I will wait for your votes/e-mails till next Wednesday as it's weekend > >> > now > >> > and not all listers work over weekend. I do hope somebody will join us > >> > during the next week. > >> > > >> > In the meantime I will be preparing infrastructure, and some simple > >> > tools > >> > to patially automate this conversion, and I will have also to work for > >> > my > >> > customers of course... > >> > > >> > Thank you. > >> > > >> > -- > >> > Shamil > >> > > >> > > >> > > >> > -----Original Message----- > >> > From: "Gustav Brock" > >> > To: > >> > Date: Sat, 28 Feb 2009 19:43:11 +0100 > >> > Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > >> > > >> >> Hi Shamil > >> >> > >> >> OK, I signed up. > >> >> > >> >> As for the software, the TargetProcess "community edition" will only > >> >> do > >> >> be free for 5 licenses. If more users, it is USD 249 for each and > >> >> every > >> >> user: > >> >> > >> >> Q. What if I need 6 users pack? > >> >> In this case it will be required to purchase 6 full licenses. > >> >> Community > >> >> Edition allows to have 5 licenses, if you need more, you have to > >> >> migrate > >> >> to On-Site or On-Demand Full Edition. > >> >> > >> >> However, at this moment this limitation seems of no importance. > >> >> > >> >> /gustav > >> >> > >> >> > >> >> >>> mcp2004 at mail.ru 28-02-2009 15:43 >>> > >> >> > >> >> Hi Gustav and Fellow Listers, > >> >> > >> >> Yes, the response on my proposal is a bit discouraging but I'm > >> >> continuing > >> >> preparation here for the conversion project of MS Access NorthWind > >> >> sample > >> >> app to .NET WinForms. > >> >> > >> >> Yes, Gustav, we can try to do it just with you but SCRUM/agile process > >> >> needs a little bit more team members - at least 4-5: if doing this > >> >> project by using just your and mine efforts it can be done agile way > >> >> but > >> >> not SCRUM, and it will take more time, and what is most important it > >> >> will > >> >> not show advantages of working as a team - and the advantages in this > >> >> case is not only joining the efforts and skills - the main advantage > >> >> is > >> >> to experience how teamwork influences one's own views and insights - > >> >> and > >> >> it does influence then very effectively - I mean that - I have just > >> >> experienced that during CSM course in Helsinki. Even participating for > >> >> years in great dicussion lists as this AccessD one do not change one's > >> >> stereotypes and (conservative) ways of thinking as SCRUM/agile > >> >> teamwork > >> >> does... > >> >> > >> >> I plan to keep preparing SCRUM/agile infrastructure for the Northwind > >> >> conversion project within the next week - in my plans is to setup DNN > >> >> site - first step is done: > >> >> > >> >> http://shamils-4.hosting.parking.ru/dnn49 > >> >> > >> >> nothing except registration there yet but it's up&running - I "just" > >> >> need > >> >> to add some DNN modules - do not know how to do that yet - plan to do > >> >> that within the next week - I can keep posting SCRUM related info on > >> >> this > >> >> site as well as we can have wiki board on it to have "daily stand-up > >> >> meetings" as well as I can setup newlist on it to have everybody > >> >> registered and subscribed to this newlist informed on what is > >> >> happening. > >> >> Of course it will be forwarded here - the best woudl be to have > >> >> separate > >> >> SCRUM%Access-D list but it's probably too early? > >> >> > >> >> I'm also evaluating this software > >> >> > >> >> http://www.targetprocess.com/Product.aspx > >> >> > >> >> to have our project tasks and their completion progress status easily > >> >> manageable and viewvable by every team member. I also expect (they > >> >> talk > >> >> about integration with CVS but I haven't yet evaluated how it's done) > >> >> this software will allow to keep distributed source control for the > >> >> team. > >> >> This software seems to have a free community edition and if that is > >> >> true > >> >> then I can install it on my ASP.NET hosting web site. > >> >> > >> >> Please everybody interested help me to evaluate how useful it is for > >> >> our > >> >> purposes. > >> >> If you can find any better ASP.NET alternatives that woull be very > >> >> useful. > >> >> > >> >> I persoally like a lot this Team Taskboard of SCRUMWorks software: > >> >> > >> >> http://danube.com/sw_flash/feature/features-team_taskboard.html > >> >> > >> >> but this software is JAVA based and a "black-box" for me - I'd not use > >> >> it > >> >> because of that. > >> >> > >> >> I'm currently spending considerably more than one hour here to prepare > >> >> all that - I can't ask to spend that much time you or other AcceessD > >> >> members but when everything ready I'd propose to strickly keep the > >> >> context of spending not more than one hour (5 hours total per week) > >> >> for > >> >> this project. Well, maybe some more time discussing here how it will > >> >> be > >> >> proceeding... > >> >> > >> >> I'd set 9th of Macrh 2009 as the start date for this project - OK? - > >> >> if > >> >> nobody will join us by that date we will try to do it together with > >> >> you. > >> >> Everybody are welcome! If to not participate in this project by doing > >> >> some simple .NET forms design/program then at least to help us to > >> >> evaluate how much this or that feature/task will take to get > >> >> implemented. > >> >> This is so called "estimation using planning poker cards" - > >> >> http://www.crisp.se/planningpoker - doing such an estimation by two > >> >> people could result in not so good results as when it's done by 5 or > >> >> more > >> >> people. > >> >> > >> >> Here are some links on SCRUM/agile and related issues - I will keep > >> >> posting links like that to get convinced some more AccessD members to > >> >> join our project: > >> >> > >> >> Tobias Mayer - my facilitator during SCRUM course there in Helsinki: > >> >> http://www.danube.com/blog/tobias_mayer/ > >> >> > >> >> Agile software development info: > >> >> http://en.wikipedia.org/wiki/Agile_software_development > >> >> > >> >> Scale Back: Small is Beautiful - how group evaluation/planning results > >> >> in > >> >> simple but very good results: > >> >> http://agilethinking.net/blog/2008/08/18/scale-back-small-is-beautiful > >> >> > >> >> Extreme Scrum (154KB) > >> >> https://www-927.ibm.com/ibm/cas/archives/2007/data/Agile/Extreme_Scrum.pdf > >> >> > >> >> What happens when we are all connected - Future Views > >> >> http://www.youtube.com/watch?v=HqPs0xuG39Q (~6 min) > >> >> > >> >> "Only 3% of the world is on broadband today, and it's neither cheap, > >> >> fast > >> >> or mobile enough. This will change in the next 2-3 years, and the > >> >> implications are huge: everyone shares, everyone networks with > >> >> strangers-like-me, everyone co-creates, everything is connected. A > >> >> video > >> >> by Futurist and Author Gerd Leonhard" > >> >> > >> >> Working on SCRUM/Agile infrastructure here/expecting for more AccessD > >> >> to > >> >> connect this project... > >> >> > >> >> Please comment on this my posting - all and every comments and > >> >> contributions are very welcome! > >> >> > >> >> Thank you. > >> >> > >> >> -- > >> >> Shamil > >> >> > >> >> > >> >> -----Original Message----- > >> >> From: "Gustav Brock" > >> >> To: > >> >> Date: Sat, 28 Feb 2009 08:10:00 +0100 > >> >> Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > >> >> > >> >> > Hi Shamil > >> >> > > >> >> > Not much response to your proposal ... I guess our fellow listers > >> >> > are > >> >> > too busy or just don't feel the need to experience how to work in a > >> >> > group. > >> >> > To be honest, neither do I have currently that need but as "you > >> >> > never > >> >> > know" I am prepared to allocate the time you suggest. That makes > >> >> > two. > >> >> > But two? Doesn't it require three "to make a crowd"? > >> >> > > >> >> > Your adjusted description of the project fits me very well. > >> >> > > >> >> > /gustav > >> >> > >> >> > >> >> -- > >> >> AccessD mailing list > >> >> AccessD at databaseadvisors.com > >> >> http://databaseadvisors.com/mailman/listinfo/accessd > >> >> Website: http://www.databaseadvisors.com > >> >> > >> > > >> > -- > >> > AccessD mailing list > >> > AccessD at databaseadvisors.com > >> > http://databaseadvisors.com/mailman/listinfo/accessd > >> > Website: http://www.databaseadvisors.com > >> > > >> > >> -- > >> AccessD mailing list > >> AccessD at databaseadvisors.com > >> http://databaseadvisors.com/mailman/listinfo/accessd > >> Website: http://www.databaseadvisors.com > > > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Sat Feb 28 19:51:02 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 28 Feb 2009 20:51:02 -0500 Subject: [AccessD] SQL - Copy * to another table In-Reply-To: <000601c99964$09d604d0$1d820e70$@rr.com> References: <49A88BD2.6010505@colbyconsulting.com> <000601c99964$09d604d0$1d820e70$@rr.com> Message-ID: <49A9EA06.4020609@colbyconsulting.com> I am using Try / Catch but my question is how people write the results to a log. I would also want to return the error string (not an integer error code) to my access application. For that I will have to dig in to the code I got from Charlotte. IIRC she said that I have to send in a parameter that is defined "output" or something like that. I tried but never got it working. My life is full of "gotta get the job out" and so I get enough to make it work and try to remember to come back to it later. John W. Colby www.ColbyConsulting.com Bobby Heid wrote: > John, > > I'd look at @@ERROR and see what all information you can get from that. > There may be related items. I use SQL from .Net and just catch any > exceptions. > > Thanks, > Bobby > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 27, 2009 7:57 PM > To: Access Developers discussion and problem solving > Subject: [AccessD] SQL - Copy * to another table > > Is there a way to get the SQL error statement back from a stored procedure > into Access? Or even > better is there a way to log the error statement inside of SQL Server? I > could read that table from > Access if I can log the errors. ATM I am just catching them in a catch > statement and PRINGing them > to a window in the query window. > From stuart at lexacorp.com.pg Sat Feb 28 20:01:51 2009 From: stuart at lexacorp.com.pg (Stuart McLachlan) Date: Sun, 01 Mar 2009 12:01:51 +1000 Subject: [AccessD] Scrum (was: Find First in an Array? ...) In-Reply-To: References: <49AA55BD.2100.928FC86@stuart.lexacorp.com.pg>, Message-ID: <49AA792F.3358.9B372C1@stuart.lexacorp.com.pg> On 1 Mar 2009 at 3:33, Salakhetdinov Shamil wrote: > Thank you, Stuart, > > Is that your new joint venture business you're getting off the ground > software related? - then SCRUM/agile is what you need! :) > Sort of software related: http://www.tellandsellpromotions.com but I'll be the only one working on programming which is primarily SQL Server and VBScripting > And Papua New Guinea country's motto: "Unity in diversity" is also one > of the foundations of SCRUM philosophy :) > It's also called "The Land of The Unexpected!" Planning of any sort is a foreign concept :-) From bheid at sc.rr.com Sat Feb 28 20:17:49 2009 From: bheid at sc.rr.com (Bobby Heid) Date: Sat, 28 Feb 2009 21:17:49 -0500 Subject: [AccessD] SQL - Copy * to another table In-Reply-To: <49A9EA06.4020609@colbyconsulting.com> References: <49A88BD2.6010505@colbyconsulting.com> <000601c99964$09d604d0$1d820e70$@rr.com> <49A9EA06.4020609@colbyconsulting.com> Message-ID: <003001c99a13$eb7a3280$c26e9780$@rr.com> John, Look at these functions (SQL 2005+) and see if they would help: ERROR_NUMBER() ERROR_MESSAGE() ERROR_PROCEDURE() ERROR_LINE() ERROR_SEVERITY() Bobby -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, February 28, 2009 8:51 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] SQL - Copy * to another table I am using Try / Catch but my question is how people write the results to a log. I would also want to return the error string (not an integer error code) to my access application. For that I will have to dig in to the code I got from Charlotte. IIRC she said that I have to send in a parameter that is defined "output" or something like that. I tried but never got it working. My life is full of "gotta get the job out" and so I get enough to make it work and try to remember to come back to it later. John W. Colby www.ColbyConsulting.com Bobby Heid wrote: > John, > > I'd look at @@ERROR and see what all information you can get from that. > There may be related items. I use SQL from .Net and just catch any > exceptions. > > Thanks, > Bobby > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, February 27, 2009 7:57 PM > To: Access Developers discussion and problem solving > Subject: [AccessD] SQL - Copy * to another table > > Is there a way to get the SQL error statement back from a stored procedure > into Access? Or even > better is there a way to log the error statement inside of SQL Server? I > could read that table from > Access if I can log the errors. ATM I am just catching them in a catch > statement and PRINGing them > to a window in the query window. > -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Sat Feb 28 21:47:52 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 28 Feb 2009 22:47:52 -0500 Subject: [AccessD] SQL - Copy * to another table In-Reply-To: <003001c99a13$eb7a3280$c26e9780$@rr.com> References: <49A88BD2.6010505@colbyconsulting.com> <000601c99964$09d604d0$1d820e70$@rr.com> <49A9EA06.4020609@colbyconsulting.com> <003001c99a13$eb7a3280$c26e9780$@rr.com> Message-ID: <49AA0568.5080700@colbyconsulting.com> Thanks. John W. Colby www.ColbyConsulting.com Bobby Heid wrote: > John, > > Look at these functions (SQL 2005+) and see if they would help: > ERROR_NUMBER() > ERROR_MESSAGE() > ERROR_PROCEDURE() > ERROR_LINE() > ERROR_SEVERITY() > > Bobby > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Saturday, February 28, 2009 8:51 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] SQL - Copy * to another table > > I am using Try / Catch but my question is how people write the results to a > log. I would also want > to return the error string (not an integer error code) to my access > application. For that I will > have to dig in to the code I got from Charlotte. IIRC she said that I have > to send in a parameter > that is defined "output" or something like that. I tried but never got it > working. > > My life is full of "gotta get the job out" and so I get enough to make it > work and try to remember > to come back to it later. > > John W. Colby > www.ColbyConsulting.com > > > Bobby Heid wrote: >> John, >> >> I'd look at @@ERROR and see what all information you can get from that. >> There may be related items. I use SQL from .Net and just catch any >> exceptions. >> >> Thanks, >> Bobby >> >> -----Original Message----- >> From: accessd-bounces at databaseadvisors.com >> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby >> Sent: Friday, February 27, 2009 7:57 PM >> To: Access Developers discussion and problem solving >> Subject: [AccessD] SQL - Copy * to another table >> >> Is there a way to get the SQL error statement back from a stored procedure >> into Access? Or even >> better is there a way to log the error statement inside of SQL Server? I >> could read that table from >> Access if I can log the errors. ATM I am just catching them in a catch >> statement and PRINGing them >> to a window in the query window. >> From jwcolby at colbyconsulting.com Sat Feb 28 22:42:16 2009 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 28 Feb 2009 23:42:16 -0500 Subject: [AccessD] Scrum In-Reply-To: References: Message-ID: <49AA1228.9020502@colbyconsulting.com> Shamil, I too am a Sole Proprietor consultant working all by myself, in my home office. I have not done development as a member of a development team since the mid 90s. Of course this would be just such an opportunity, but... Your intention is to do this in C#? What role would a developer such as myself play in the team? The only real C experience I have is a two year stint developing a uController vending machine in C back in 1996-97. I have my doubts I could come up to speed in C# quickly enough to actually write code for this project. OTOH it would be fun to be involved. What variant of .net? The free C#.Net express? Are we keeping this here on AccessD or will there be a private channel for me to look like an idiot on? ;) John W. Colby www.ColbyConsulting.com Salakhetdinov Shamil wrote: > Hi Gustav and Fellow Listers, > > Yes, the response on my proposal is a bit discouraging but I'm continuing preparation here for the conversion project of MS Access NorthWind sample app to .NET WinForms. > > Yes, Gustav, we can try to do it just with you but SCRUM/agile process needs a little bit more team members - at least 4-5: if doing this project by using just your and mine efforts it can be done agile way but not SCRUM, and it will take more time, and what is most important it will not show advantages of working as a team - and the advantages in this case is not only joining the efforts and skills - the main advantage is to experience how teamwork influences one's own views and insights - and it does influence then very effectively - I mean that - I have just experienced that during CSM course in Helsinki. Even participating for years in great dicussion lists as this AccessD one do not change one's stereotypes and (conservative) ways of thinking as SCRUM/agile teamwork does... > > I plan to keep preparing SCRUM/agile infrastructure for the Northwind conversion project within the next week - in my plans is to setup DNN site - first step is done: > > http://shamils-4.hosting.parking.ru/dnn49 > > nothing except registration there yet but it's up&running - I "just" need to add some DNN modules - do not know how to do that yet - plan to do that within the next week - I can keep posting SCRUM related info on this site as well as we can have wiki board on it to have "daily stand-up meetings" as well as I can setup newlist on it to have everybody registered and subscribed to this newlist informed on what is happening. Of course it will be forwarded here - the best woudl be to have separate SCRUM%Access-D list but it's probably too early? > > I'm also evaluating this software > > http://www.targetprocess.com/Product.aspx > > to have our project tasks and their completion progress status easily manageable and viewvable by every team member. I also expect (they talk about integration with CVS but I haven't yet evaluated how it's done) this software will allow to keep distributed source control for the team. This software seems to have a free community edition and if that is true then I can install it on my ASP.NET hosting web site. > > Please everybody interested help me to evaluate how useful it is for our purposes. > If you can find any better ASP.NET alternatives that woull be very useful. > > I persoally like a lot this Team Taskboard of SCRUMWorks software: > > http://danube.com/sw_flash/feature/features-team_taskboard.html > > but this software is JAVA based and a "black-box" for me - I'd not use it because of that. > > I'm currently spending considerably more than one hour here to prepare all that - I can't ask to spend that much time you or other AcceessD members but when everything ready I'd propose to strickly keep the context of spending not more than one hour (5 hours total per week) for this project. Well, maybe some more time discussing here how it will be proceeding... > > I'd set 9th of Macrh 2009 as the start date for this project - OK? - if nobody will join us by that date we will try to do it together with you. Everybody are welcome! If to not participate in this project by doing some simple .NET forms design/program then at least to help us to evaluate how much this or that feature/task will take to get implemented. This is so called "estimation using planning poker cards" - http://www.crisp.se/planningpoker - doing such an estimation by two people could result in not so good results as when it's done by 5 or more people. > > Here are some links on SCRUM/agile and related issues - I will keep posting links like that to get convinced some more AccessD members to join our project: > > Tobias Mayer - my facilitator during SCRUM course there in Helsinki: > http://www.danube.com/blog/tobias_mayer/ > > Agile software development info: > http://en.wikipedia.org/wiki/Agile_software_development > > Scale Back: Small is Beautiful - how group evaluation/planning results in simple but very good results: > http://agilethinking.net/blog/2008/08/18/scale-back-small-is-beautiful > > Extreme Scrum (154KB) > https://www-927.ibm.com/ibm/cas/archives/2007/data/Agile/Extreme_Scrum.pdf > > What happens when we are all connected - Future Views > http://www.youtube.com/watch?v=HqPs0xuG39Q (~6 min) > > "Only 3% of the world is on broadband today, and it's neither cheap, fast or mobile enough. This will change in the next 2-3 years, and the implications are huge: everyone shares, everyone networks with strangers-like-me, everyone co-creates, everything is connected. A video by Futurist and Author Gerd Leonhard" > > Working on SCRUM/Agile infrastructure here/expecting for more AccessD to connect this project... > > Please comment on this my posting - all and every comments and contributions are very welcome! > > Thank you. > > -- > Shamil > > > -----Original Message----- > From: "Gustav Brock" > To: > Date: Sat, 28 Feb 2009 08:10:00 +0100 > Subject: Re: [AccessD] Scrum (was: Find First in an Array? ...) > >> Hi Shamil >> >> Not much response to your proposal ... I guess our fellow listers are too busy or just don't feel the need to experience how to work in a group. >> To be honest, neither do I have currently that need but as "you never know" I am prepared to allocate the time you suggest. That makes two. But two? Doesn't it require three "to make a crowd"? >> >> Your adjusted description of the project fits me very well. >> >> /gustav >> > > <<< tail trimmed >>>