tag:blogger.com,1999:blog-78156710109428431342024-03-12T16:41:40.676-07:00Deep into AccessMicrosoft Access developer blog. Tips, code, what I'm working on, etc...Unknownnoreply@blogger.comBlogger28125tag:blogger.com,1999:blog-7815671010942843134.post-3720894439616720992014-12-14T01:53:00.002-08:002014-12-14T01:53:16.781-08:00How to ‘Hybridize’ your MS Access Database In Office 365 Azure Database<h1 class="entry-title" style="background-color: white; box-sizing: border-box; color: #333333; font-weight: 400; line-height: 1.25; margin: 0px 0px 0.625rem;">
<span style="font-family: inherit; font-size: small;">Maybe one of the most useful articles you'll ever read about Access and Office365 integration:</span></h1>
<h1 class="entry-title" style="background-color: white; box-sizing: border-box; color: #333333; font-family: Arvo, Georgia, 'Times New Roman', Times, serif; font-size: 3rem; font-weight: 400; line-height: 1.25; margin: 0px 0px 0.625rem;">
<a href="http://www.devhut.net/2014/01/13/how-to-hybridize-your-ms-access-database-in-office-365-azure-database/">How to ‘Hybridize’ your MS Access Database In Office 365 Azure Database</a></h1>
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7815671010942843134.post-66260069319201697932014-10-27T16:32:00.001-07:002014-10-27T16:32:51.381-07:00How I Like to Use the Navigation Pane<div class=WordSection1><p class=MsoPlainText>First right click on the Navigation Pane bar and show the Search Bar. Then have the Navigation Pane display “All Access Objects”. Now you can enter a search string and the list of Access objects will be filtered to show you just the objects you are interested in. For me, this is the most convenient way to use the Navigation Pane.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggYjJ3csuuSB88g3tv5B3osNJiTnzL35vHZl5qKJWyHXd7VkxhwQ9mKplqjpuAVlcPRc_06etuHXStqN5U6MjX6RxaBiXGyd9KS4oiOtqRZ_MIcrIf_0J_3nIQnTMNxkr7c6jI7IOIeYg/s1600/image001-771382.png"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggYjJ3csuuSB88g3tv5B3osNJiTnzL35vHZl5qKJWyHXd7VkxhwQ9mKplqjpuAVlcPRc_06etuHXStqN5U6MjX6RxaBiXGyd9KS4oiOtqRZ_MIcrIf_0J_3nIQnTMNxkr7c6jI7IOIeYg/s320/image001-771382.png" border="0" alt="" id="BLOGGER_PHOTO_ID_6075028394579410978" /></a><o:p></o:p></p></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7815671010942843134.post-86961194207999760732014-10-16T16:47:00.000-07:002014-10-16T16:47:21.015-07:00KeyedAccess Goes to 1111 years that is. 11 years of providing copy protection to Access applications and helping developers turn their applications into income. Thank you to all of you for making KeyedAccess one of our most popular products.<br />
<br />
And don't forget, KeyedAccess supports all 64-bit versions of Access when you apply the 64-bit patch that is available from Peter's Software for free for registered users. Just ask us for it by e-mail.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7815671010942843134.post-40221800613943494682013-11-11T22:49:00.004-08:002013-11-11T22:49:42.191-08:00Starting an Access Application in a Multi-User EnvironmentI use <a href="http://www.peterssoftware.com/aps.htm">Application Starter</a> for all of my installed Access applications at client sites. It cuts technical support calls down to a minimum since Application Starter compacts the back-end database file each day before the application is opened. It also makes it simple to distribute a front-end to any number of different client computers.<br />
<br />
The new version includes the ability to create generational backups prior to opening the database.<br />
<br />
It's really a must-have for me and I don't know why every serious Access developer is not using it! And it's free - http://www.peterssoftware.com/aps.htm<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7815671010942843134.post-91862680866581549552013-10-29T15:27:00.000-07:002014-10-16T20:58:15.528-07:00Introducing Halp<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzzQS1sXFrVOzErFSXdDAshhTYPqGCuMh6HxGVhmikW_W5DW5PR2CHomuIbiScQoQwio62wIYfec-fT3oix8vPSlqaT_RF5tyyN_Qsus5frBq9iBuxPbV9dPk3XcFwuKQaO83lqCPt1hQ/s1600/hlpBG.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzzQS1sXFrVOzErFSXdDAshhTYPqGCuMh6HxGVhmikW_W5DW5PR2CHomuIbiScQoQwio62wIYfec-fT3oix8vPSlqaT_RF5tyyN_Qsus5frBq9iBuxPbV9dPk3XcFwuKQaO83lqCPt1hQ/s1600/hlpBG.jpg" /></a>Need to integrate help content into your Access application? We have a new product called "Halp" that can... help.<br />
<br />
Halp is an integrated help authoring and display tool for Microsoft Access applications. More information is at <a href="http://peterssoftware.com/hlp.htm">http://peterssoftware.com/hlp.htm</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7815671010942843134.post-32731976238142978152013-03-07T09:39:00.001-08:002013-03-07T09:41:29.238-08:00Normalization and Cascading Combo BoxesI hope I helped out this developer over at Yahoo Answers. His question was about cascading combo boxes, but he had yet to normalize his database. Here's the link: <a href="http://goo.gl/ShxbB">http://goo.gl/ShxbB</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7815671010942843134.post-11501055899916932102013-01-03T16:31:00.000-08:002013-01-03T16:33:54.736-08:00"The width of a Unicode text column must be an even number of bytes."Just received the above error message in Access 2010 when clicking on a checkbox. There's a description of the error <a href="http://office.microsoft.com/en-us/access-help/HV080761399.aspx">here</a>, which conveniently says<br />
<br />
<blockquote class="tr_bq">
<span style="background-color: white; color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 15px; line-height: 13px;">If this error message appears during normal run time, it is probable that the database has become corrupted and needs to be compacted or repaired.</span></blockquote>
Yup. It's a corruption issue. But compacting and repairing the back-end database did no good. The corruption was apparently in the front-end database file. After I compacted and repaired the front-end, the problem went away.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7815671010942843134.post-12377172151758510342013-01-02T11:35:00.000-08:002013-01-03T16:32:37.114-08:00The Amazing Eval FunctionThe Eval function in VBA allows you to execute a string as if it were a line of code. There are some examples in Access VBA help that are marginally useful, but what I like to use Eval for is executing optional functions. Normally, if you call a function that doesn't exist, you'll get a compile error and your code won't run. But the Eval function is one place where you can call a function that may or may not exist, and trap the error condition that occurs when the function does not exist. Here's an example:<br />
<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">Dim strRtn As String</span><br />
<span style="font-family: Courier New, Courier, monospace;">Dim strFunctionNameAndParms As String</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<span style="font-family: Courier New, Courier, monospace;">strFunctionNameAndParms = "Date()" '<== WE'RE GOING TO CALL THIS FUNCTION</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<span style="font-family: Courier New, Courier, monospace;">On Error Resume Next</span><br />
<span style="font-family: Courier New, Courier, monospace;">strRtn = Eval(strFunctionNameAndParms)</span><br />
<span style="font-family: Courier New, Courier, monospace;">If Err <> 0 Then</span><br />
<span style="font-family: Courier New, Courier, monospace;"> Select Case Err</span><br />
<span style="font-family: Courier New, Courier, monospace;"> Case 2425, 2426</span><br />
<span style="font-family: Courier New, Courier, monospace;"> '* The function is not found</span><br />
<span style="font-family: Courier New, Courier, monospace;"> MsgBox "The function '" & strFunctionNameAndParms & "' was not found."</span><br />
<span style="font-family: Courier New, Courier, monospace;"> Case Else</span><br />
<span style="font-family: Courier New, Courier, monospace;"> '* There was an error calling the function</span><br />
<span style="font-family: Courier New, Courier, monospace;"> MsgBox "Error when calling '" & strFunctionNameAndParms & "': " & Err.Number & " - " & Err.Description</span><br />
<span style="font-family: Courier New, Courier, monospace;"> End Select</span><br />
<span style="font-family: Courier New, Courier, monospace;"> Err.Clear</span><br />
<span style="font-family: Courier New, Courier, monospace;">Else</span><br />
<span style="font-family: Courier New, Courier, monospace;"> MsgBox "Return value from '" & strFunctionNameAndParms & "' is: " & vbCrLf & strRtn</span><br />
<span style="font-family: Courier New, Courier, monospace;">End If</span><br />
<span style="font-family: Courier New, Courier, monospace;">On Error GoTo 0</span><br />
<br />
Now, if the function above ("Date()", in this instance) doesn't exist, there's no compile error, the code keeps right on executing.<br />
<br />
You could use this if you, for instance, wanted to optionally include an "Accounts Receivable" module in your accounting application. The main menu item for AR could use Eval to call the "StartAR()" function that lives in a "basAccountsReceivable" module that you can optionally include in your database. If the module is there, then the function runs and Accounts Receivable opens. If the module is not there, then you could have a message appear... something like "The Accounts Receivable module has not been included in this application build. To purchase this additional module please contact ..."Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-7815671010942843134.post-15144883106609535022012-12-28T10:20:00.000-08:002012-12-28T10:20:19.359-08:00We Accept Bitcoins<p>We've started accepting payments in Bitcoins at our site. If you haven't heard of <a href="http://www.bitcoin.org">Bitcoin</a>, it is a new digital currency that uses encryption to keep transactions safe over a distributed network. You can covert some money to Bitcoins, then use them as currency where they are accepted. There are some advantages and disadvantages to using Bitcoins, and lots of controversy including some very interesting discussions of whether Bitcoins qualify as actual "money" or not:</p>
<p><a href="http://goo.gl/PBc8O">Bitcoins Real Money or Bogus?</a></p>
<p>But one of the amazing things about Bitcoin for me is how secure payments are. You don't need to provide your name, address, phone, card number, security code, etc... as you do when you pay with a credit card. Bitcoins are designed to be used over the internet. You pay, and your "wallet" cryptic keys are identified by the distributed network and your account is credited or debited, and the recipient's account is credited or debited. No worries about someone stealing your credit card number or your identity. You just have to make sure your "wallet.dat" file doesn't get hacked, and you can do that with encryption or by some other similar means.</p>
<p>Is it the future of money? We'll see. For now it's a nice secure alternative to credit card payments.</p>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7815671010942843134.post-87459187170764036312012-11-08T11:14:00.002-08:002012-11-08T11:17:43.496-08:00GetKeyStateYou can use the GetKeyState API to find out if the user is holding down a particular key.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms646301(v=vs.85).aspx
I've used this function to take me directly into the VBA code behind a command button while a form is in form view. This is very hand for debugging, but takes some setup. I check for the Ctl-Alt key combination in the OnMouseUp event property of the command button. My OnMouseUp event property looks like this:
<pre>=xg_CtrlAltMouseUp()</pre>
In the declarations section of a standard module I put:
<pre>Const VK_LSHIFT = &HA0
Const VK_RSHIFT = &HA1
Const VK_LCONTROL = &HA2
Const VK_RCONTROL = &HA3
Const VK_LMENU = &HA4
Const VK_RMENU = &HA5
#If vba7 Then
Declare PtrSafe Function GetKeyState Lib "user32" Alias "GetKeyState" (ByVal nVirtKey As Long) As Integer
#Else
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
#End If</pre>
And the function looks like this:
<pre>Function xg_CtrlAltMouseUp() As Integer
'******************************************************************************
'* Peter De Baets, author
'* 11/2/2012
'*
'******************************************************************************
Dim Marker As Integer
Dim Rtn As Integer
On Error GoTo Err_Section
Marker = 1
'Return values
'0 if the key is neither down nor toggled,
'-127 if the key is down but not toggled,
'1 if the key is toggled but up, and
'-128 if the key is both toggled and down.
If GetKeyState(VK_LCONTROL) < 0 And GetKeyState(VK_LMENU) < 0 Then
DoCmd.OpenModule "Form_" & Screen.ActiveForm.Name, _
Screen.ActiveControl.Name & "_Click"
Else
End If
Exit_Section:
On Error Resume Next
On Error GoTo 0
Exit Function
Err_Section:
Select Case Err
Case Else
Beep
MsgBox "Error in xg_CtrlAltMouseUp (" & Marker & "), _
object " & Err.Source & ": " & Err.Number & _
" - " & Err.Description
End Select
Err.Clear
Resume Exit_Section
End Function</pre>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7815671010942843134.post-31802648658681729122012-11-08T10:48:00.001-08:002012-11-08T10:48:29.418-08:00Access 2010: Replacing 32-bit API declarations with 64-bitHere's a site which lists all the 64-bit API declarations for use in your Access 2010 64-bit application:
http://www.excelfin.ru/attachments/article/163/ptrsafe_declarations.txt
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7815671010942843134.post-21404502904087086612012-01-06T15:06:00.000-08:002012-01-06T15:08:12.351-08:00Introduction to Access ProgrammingI get a lot of questions from people who are new to Access development and have never programmed before. Here's an introduction to the subject:<br />
<br />
<a href="http://office.microsoft.com/en-us/access-help/introduction-to-access-programming-HA010341717.aspx">Introduction to Access Programming</a><br />
<br />
(Disclaimer: Please realize that getting involved in programming can be life-changing - not necessarily for the better!)Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-7815671010942843134.post-66268042112349407712011-12-29T10:46:00.000-08:002011-12-29T10:46:15.331-08:00Map Network Drives with VBScriptWhen setting up that Access database on a local area network, you'll likely need to map network drives on each end user's PC. This means you'll be creating a psuedo-drive "Z:" or whatnot, which opens a folder on the server where your Access application back-end resides. <br />
<br />
As new computers are added to the network, you'll need to map the network drives on the new computers. This process can be eased by running a VBScript to automatically do the drive mapping. Below is an example script that I use to do this. You can modify the "Actions" to add or remove mapped network drives, in case you have multiple drives mapped, or need to do some mapping clean up.<br />
<br />
Just save this code in a file with a .vbs extension, modify it for your needs, then double-click it from Windows Explorer to run it.<br />
<br />
<pre>' Map network drives
' Usage
' Set the size of the ADrive, ARemoteShare, and AAction arrays to
' be the number of drive mapping actions you want to take. Modify
' the "Actions" in the "Fill Actions Array" section below, save,
' then double-click on this file from Windows Explorer to run it.
'
' "Actions" can be "Remove" (removes/disconnects a mapped network
' drive), or "Add" (adds a mapped network drive, replacing whatever
' mapping exists for the same drive letter).
'
' For multiple "Actions", modify the array sizes below, then fill
' the array entries as shown in the "Fill Actions Array" section below.
'
' This script will remove any existing drive map to the same drive letter
' including persistent or remembered connections (Q303209)
'
' from: http://ss64.com/vb/syntax-drivemap.html
' modified by Peter De Baets 12/28/2011
Option Explicit
Dim objNetwork, objDrives, objReg, i, objDrive, fileSys
Dim strReplaceDrive, strLocalDrive, strRemoteShare, strShareConnected, strMessage
Dim bolFoundExisting, bolFoundRemembered
Const HKCU = &H80000001
Dim J
'******************************************
'* Set the size of these arrays to the number
'* of drive mapping actions you want to take.
'*
Dim ADrive(2)
Dim ARemoteShare(2)
Dim AAction(2)
'*
'******************************************
'******************************************
'* Fill Actions Array
'* (make your changes here)
'*
' Example
'ADrive(1) = "X:"
'ARemoteShare(1) = "\\Servername\Share"
'AAction(1) = "Add"
' Action #1
ADrive(1) = "X:"
ARemoteShare(1) = "\\MyServer\MyShare"
AAction(1) = "Remove"
' Action #2
ADrive(2) = "Z:"
ARemoteShare(2) = "\\MyServer\MyShare"
AAction(2) = "Add"
'*
'******************************************
Set filesys = CreateObject("Scripting.FileSystemObject")
for j = 1 to ubound(AAction)
' Check parameters passed make sense
If Right(ADrive(j), 1) <> ":" OR Left(ARemoteShare(j), 2) <> "\\" Then
wscript.echo "INvalid Action #" & j & " //NoLogo"
WScript.Quit(1)
End If
if AAction(j) = "Add" then
wscript.echo " - Mapping: " + ADrive(j) + " to " + ARemoteShare(j)
Else
wscript.echo " - Disconnecting: " + ADrive(j) + " from " + ARemoteShare(j)
End If
Set objNetwork = WScript.CreateObject("WScript.Network")
' Loop through the network drive connections and disconnect any that match strLocalDrive
bolFoundExisting = False
Set objDrives = objNetwork.EnumNetworkDrives
If objDrives.Count > 0 Then
For i = 0 To objDrives.Count-1 Step 2
If objDrives.Item(i) = ADrive(j) Then
if AAction(j) = "Remove" Then
set objDrive = fileSys.GetDrive(objDrives.Item(i))
if objDrive.ShareName = ARemoteShare(j) then
strShareConnected = objDrives.Item(i+1)
objNetwork.RemoveNetworkDrive ADrive(j), True, True
i=objDrives.Count-1
bolFoundExisting = True
Else
wscript.echo " - Drive " + ADrive(j) + " connected to " + ARemoteShare(j) + " not found. Continuing..."
End if
Else
'wscript.echo " sharename=" + objDrive.ShareName
strShareConnected = objDrives.Item(i+1)
objNetwork.RemoveNetworkDrive ADrive(j), True, True
i=objDrives.Count-1
bolFoundExisting = True
End if
End If
Next
End If
' If there's a remembered location (persistent mapping) delete the associated HKCU registry key
If bolFoundExisting <> True Then
Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
objReg.GetStringValue HKCU, "Network\" & Left(ADrive(j), 1), "RemotePath", strShareConnected
If strShareConnected <> "" Then
objReg.DeleteKey HKCU, "Network\" & Left(ADrive(j), 1)
Set objReg = Nothing
bolFoundRemembered = True
End If
End If
if AAction(j) = "Add" then
'Now actually do the drive map (persistent)
Err.Clear
On Error Resume Next
objNetwork.MapNetworkDrive ADrive(j), ARemoteShare(j), True
End If
Next
'Error traps
If Err <> 0 Then
Select Case Err.Number
Case -2147023694
'Persistent connection so try a second time
On Error Goto 0
objNetwork.RemoveNetworkDrive ADrive(j), True, True
objNetwork.MapNetworkDrive ADrive(j), ARemoteShare(j), True
WScript.Echo "Second attempt to " & AAction(j) & " map drive " & ADrive(j) & " to/from " & ARemoteShare(j)
Case Else
On Error GoTo 0
WScript.Echo " - ERROR: Failed to " & AAction(j) & " map drive " & ADrive(j) & " to/from " & ARemoteShare(j)
End Select
Err.Clear
End If
Set objNetwork = Nothing
wscript.echo "Done. "</pre>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7815671010942843134.post-71066405660627796422011-10-01T20:41:00.000-07:002011-10-01T20:41:14.800-07:00How to Set Trusted Locations for a Runtime ApplicationA user at AccessForums.net asked how to set up trusted locations when the end user doesn't have Access installed. You need to have a bit of a comfort level with regedit, then it is easy:<br />
<br />
<a href="http://www.accessforums.net/security/how-set-macro-security-distributed-app-17714.html#post81250">http://www.accessforums.net/security/how-set-macro-security-distributed-app-17714.html#post81250</a>Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-7815671010942843134.post-903974926940271802011-09-28T16:08:00.000-07:002011-09-28T16:11:16.755-07:00Copy & Design Action in Navigation Pane Relief v2.0<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimLJtDyqZAiqDFTT9An1-ZN-ct9YQGCxq0CJWIEp4_TUdQ1BfzWlkbPza6cW0HYJriQIs6pSU7Ie9iDYbhh5EMKTkbvhqPd5AE06d6kg1eKL42kP_7W-sfrdf-uhDl7a3nyv37L50PqpM/s1600/NPRCopyAndDesign.JPG" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="217" width="275" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimLJtDyqZAiqDFTT9An1-ZN-ct9YQGCxq0CJWIEp4_TUdQ1BfzWlkbPza6cW0HYJriQIs6pSU7Ie9iDYbhh5EMKTkbvhqPd5AE06d6kg1eKL42kP_7W-sfrdf-uhDl7a3nyv37L50PqpM/s320/NPRCopyAndDesign.JPG" /></a></div><br />
I use form and report templates when putting together Access applications. This new feature of Navigation Pane Relief v2.0 takes <u>4 steps</u> out of the process of turning a template into an application object. <br />
<br />
For me, a template is simply a form or report that I copy and use as a starting point when designing a new form or report.<br />
<br />
I used to right click on the template, select copy, specify a new name, then find the copy in the Navigation Pane, then right click on it and select "Design", then make my changes to it. With the new "Copy & Design" feature in Navigation Pane Relief, I double click "Copy & Design", I specify a new name, and then the copy is automatically opened in design mode. A great time-saver (2 steps instead of 6) if you work from templates.<br />
<br />
More information about the new version of Navigation Pane Relief can be found at the <a href="http://www.peterssoftware.com/npr.htm">Navigation Pane Relief Homepage.</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7815671010942843134.post-36989536536259313462011-09-20T16:03:00.002-07:002011-09-28T16:12:47.363-07:00Help Tab<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); ">In my latest application, I've included an extra tab on each form with help information. I thought this would be easier than writing an entire help add-on. We'll see how my customer likes it.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYGHTRhyphenhyphen_Wsw7P4ei8qwlRY5NqIMMQZDRoaLaqHPXCSbZtApa0AmC-7iVsA60PMOc9W6FJJRc8Lk4aMKSWa-mX6N0h1PDmZx4Idwnix7CYIFMDhLByEpKET0jDSWaJf0vrSFlxKsy6pFI/s1600/CaptureHelpTab.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 258px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYGHTRhyphenhyphen_Wsw7P4ei8qwlRY5NqIMMQZDRoaLaqHPXCSbZtApa0AmC-7iVsA60PMOc9W6FJJRc8Lk4aMKSWa-mX6N0h1PDmZx4Idwnix7CYIFMDhLByEpKET0jDSWaJf0vrSFlxKsy6pFI/s320/CaptureHelpTab.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5654581642470982114" /></a><br />
<br />
<br />
</span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7815671010942843134.post-46159475237728435932011-09-20T16:03:00.001-07:002011-09-28T16:15:45.173-07:00Other Microsoft Access Blogs<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); "><p>Here are some other Access blogs I check out every now and then:</p><p><a mce_href="http://blogs.office.com/b/microsoft-access/" href="http://blogs.office.com/b/microsoft-access/">http://blogs.office.com/b/microsoft-access/</a></p><p><a mce_href="http://msmvps.com/blogs/access/default.aspx" href="http://msmvps.com/blogs/access/default.aspx">http://msmvps.com/blogs/access/default.aspx</a> </p><p><a href="http://blog.nkadesign.com/">http://blog.nkadesign.com/</a> </p><p><a href="http://accessblog.net/">http://accessblog.net/</a> </p><p><a href="http://rogersaccessblog.blogspot.com/">http://rogersaccessblog.blogspot.com/</a> </p></span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7815671010942843134.post-45108374083682305012011-09-20T16:02:00.001-07:002011-09-28T16:14:09.923-07:00Connecting to Other Applications Using Late Binding<span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium; "><div style="font-family: Arial, Helvetica, sans-serif; font-size: 10pt; background-color: rgb(255, 255, 255); padding-top: 8px; padding-right: 8px; padding-bottom: 8px; padding-left: 8px; "><p>Here are some great examples of how to use late binding to connect to other Office applications like Excel, PowerPoint, and Word. </p><p><a mce_href="http://www.excelguru.ca/node/10" href="http://www.excelguru.ca/node/10">http://www.excelguru.ca/node/10</a></p><p><a mce_href="http://www.excelguru.ca/node/10" href="http://www.excelguru.ca/node/10"></a>I especially like the way the code checks first for an existing instance of the application, and if not found, gets a new one. </p></div></span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7815671010942843134.post-16544176243357929682011-09-20T16:01:00.001-07:002011-09-28T16:14:43.073-07:00Documenting Using Dia<span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium; "><div style="font-family: Arial, Helvetica, sans-serif; font-size: 10pt; background-color: rgb(255, 255, 255); padding-top: 8px; padding-right: 8px; padding-bottom: 8px; padding-left: 8px; "><p>Visio is nice if you want to create a diagram to document some process or flow in your Access application, but if you don't have Visio, there is a nice (and free) alternative called Dia. You can download it here:</p><p><a mce_href="http://live.gnome.org/Dia" href="http://live.gnome.org/Dia">http://live.gnome.org/Dia</a> </p><p>I use a flowchart diagram to help me track where different queries are used and what they are used for. </p></div></span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7815671010942843134.post-53339068631065872092011-09-20T15:59:00.002-07:002011-09-28T16:15:21.010-07:00Print Barcodes from Access<span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium; "><div style="font-family: Arial, Helvetica, sans-serif; font-size: 10pt; background-color: rgb(255, 255, 255); padding-top: 8px; padding-right: 8px; padding-bottom: 8px; padding-left: 8px; "><p>You'll need a barcode font, if you don't already have it. Once you install the barcode font on your computer, you can print using that font and your text or ID number will appear as a barcode that can be scanned. Here's the site to download the barcode font:</p><p></p><p><a mce_href="http://www.idautomation.com/fonts/free/" href="http://www.idautomation.com/fonts/free/">http://www.idautomation.com/fonts/free/</a> </p></div></span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7815671010942843134.post-82962431275453138212011-09-20T15:59:00.001-07:002011-09-28T16:16:02.939-07:00Longevity<span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium; "><div style="font-family: Arial, Helvetica, sans-serif; font-size: 10pt; background-color: rgb(255, 255, 255); padding-top: 8px; padding-right: 8px; padding-bottom: 8px; padding-left: 8px; "><p>A customer from 10 years ago just contacted me to upgrade ShrinkerStretcher to the latest version. So I would have to assume that he was using the 10 year old version all of this time. That's longevity! </p><p>We're now on ShrinkerStretcher version 11.7. You can find out more at http://www.peterssoftware.com/ss.htm </p></div></span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7815671010942843134.post-21130827616228288352011-09-20T15:57:00.002-07:002011-09-28T16:16:36.383-07:00Learn the Structure of an Access Database<span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium; "><div style="font-family: Arial, Helvetica, sans-serif; font-size: 10pt; background-color: rgb(255, 255, 255); padding-top: 8px; padding-right: 8px; padding-bottom: 8px; padding-left: 8px; "><div>A client of mine has requested, as part of a training session, to provide an overview of Access. Well, I've never done this before - usually I provide training only for an application that I've developed. So I was pleased to find this on the web. It's basically an outline of a beginning Access course:</div><div></div><div>Learn the Structure of an Access Database </div><div><a mce_href="http://office.microsoft.com/en-us/access-help/learn-the-structure-of-an-access-database-HA010341808.aspx" href="http://office.microsoft.com/en-us/access-help/learn-the-structure-of-an-access-database-HA010341808.aspx">http://office.microsoft.com/en-us/access-help/learn-the-structure-of-an-access-database-HA010341808.aspx</a> </div><div></div><div>Thank you, Microsoft. </div></div></span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7815671010942843134.post-89399756778838115792011-09-20T15:57:00.001-07:002011-09-28T16:16:57.703-07:00Windows 7 and Mapped Network Drives<span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium; "><div style="font-family: Arial, Helvetica, sans-serif; font-size: 10pt; background-color: rgb(255, 255, 255); padding-top: 8px; padding-right: 8px; padding-bottom: 8px; padding-left: 8px; "><p>Mapped network drives sometimes show a big red X in Windows 7. When you open them with Explorer, all seems to work OK. But if you have to connect to them first with a program like Access that may be trying to connect to a database back-end you'll get a nasty error message, and the back-end won't connect.</p><p>The problem may be that Windows 7 attempts to connect the network drive before the network connection is established. Sounds like it could be a bug.</p><p>The work around is a registry entry (hack?) that you can implement with this handy .reg script. Just create a .reg file and put this text in it:</p><p></p><p>REGEDIT4</p><p><br />
</p><p>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]</p><p>"EnableLinkedConnections"=dword:00000001</p><p></p><p>... then open it ("Merge" it) on each Windows 7 computer that has the problem. Reboot and all should connect OK. </p><p></p><p>UPDATE 9/15/2011:</p><p>A user reports that the above registry fix/hack did not resolve the problem. So I'm still looking for a way to get Windows 7 to reconnect network drives AFTER the network connection has been established. Can you help? Any ideas? </p></div></span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7815671010942843134.post-30942261590513412202011-09-20T15:56:00.001-07:002011-09-28T16:17:35.807-07:00DBForums Access Code<span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium; "><div style="font-family: Arial, Helvetica, sans-serif; font-size: 10pt; background-color: rgb(255, 255, 255); padding-top: 8px; padding-right: 8px; padding-bottom: 8px; padding-left: 8px; "><p>Need some free Access database code? Some samples to help you get started, or help you learn something new? Check out the DBForums Access Code bank: <a mce_href="http://www.dbforums.com/microsoft-access/1605962-dbforums-code-bank.html" href="http://www.dbforums.com/microsoft-access/1605962-dbforums-code-bank.html">http://www.dbforums.com/microsoft-access/1605962-dbforums-code-bank.html</a></p><p>Lots of great stuff to download and incorporate into your database. </p></div></span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7815671010942843134.post-29070186381420586062011-09-20T15:53:00.000-07:002011-09-20T15:56:26.903-07:00Moving Posts to This BlogI'm moving some posts from my new blog "Deep into Access" to this blog which I started years ago, but never continued. I like the blogspot software better. So, this old blog will be my new new blog. I'll rename it to "Deep into Access" shortlyUnknownnoreply@blogger.com0