<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-10221735</id><updated>2012-01-12T22:52:07.483-07:00</updated><title type='text'>Mitchell Data Base</title><subtitle type='html'>A forum created 01/17/2005 to facilitate communication between database developers and users.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>83</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-10221735.post-8202468107658210523</id><published>2012-01-12T20:56:00.008-07:00</published><updated>2012-01-12T22:52:07.720-07:00</updated><title type='text'>SQL - list columns in a table, updated</title><summary type='text'>Way back in April 2009, I had published the original version of my stored procedure wm_columns which can be used instead of sp_help or sp_columns to view a list of column names for a table or view.The new version has a number of enhancements, and you can view the complete code here.The first parameter is required, which is the name of a table or view, such as:wm_columns 'my_table'...and the </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/8202468107658210523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=8202468107658210523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/8202468107658210523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/8202468107658210523'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2012/01/sql-list-columns-in-table-updated.html' title='SQL - list columns in a table, updated'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-7912451021253776716</id><published>2011-06-30T05:26:00.014-07:00</published><updated>2011-07-01T21:48:16.878-07:00</updated><title type='text'>SQL Timestamp and Access</title><summary type='text'>The timestamp field in a SQL Server table holds a unique value that is updated every time a record is updated. In a recent post in a SqlServerCentral forum, there was a suggestion that when you are using MS-Access as the front-end, you should add a timestamp column to every linked table - and thus prevent write-conflict messages.If you use the SQL Server Migration Assistant (SSMA) to convert your</summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/7912451021253776716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=7912451021253776716' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/7912451021253776716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/7912451021253776716'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2011/06/sql-timestamp-and-access.html' title='SQL Timestamp and Access'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-6746449087582366718</id><published>2011-05-15T07:59:00.019-07:00</published><updated>2011-05-15T08:45:33.413-07:00</updated><title type='text'>T-SQL Computed Columns, part 3</title><summary type='text'>My last two posts described how to create a computed column, and how to control the data type and size.In the first example, the computed column would be "A" if there is an approval date, otherwise it would be "".The general rule is that the computed column can only refer to other columns within the same table. However, it is possible to use a scalar function to perform a lookup from another </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/6746449087582366718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=6746449087582366718' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6746449087582366718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6746449087582366718'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2011/05/t-sql-computed-columns-part-3.html' title='T-SQL Computed Columns, part 3'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-7695870845886426821</id><published>2011-05-07T07:49:00.012-07:00</published><updated>2011-05-15T07:53:26.131-07:00</updated><title type='text'>T-SQL Computed Columns, part 2</title><summary type='text'>My previous post presented the basics of using computed columns in SQL Server. Here we have a slightly more complex example that also deals with data types and sizes.I have a table of locations in the city - each location has a direction, street, and cross street, such asNB Austin Blvd @ Cermak RdSB Austin Blvd @ Cermak RdEB Cermak Rd @ Austin BlvdWB Cermak Rd @ Austin BlvdIf you examine the list</summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/7695870845886426821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=7695870845886426821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/7695870845886426821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/7695870845886426821'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2011/05/t-sql-computed-columns-part-2.html' title='T-SQL Computed Columns, part 2'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-3910352537826899084</id><published>2011-04-23T06:53:00.008-07:00</published><updated>2011-04-23T07:39:07.305-07:00</updated><title type='text'>T-SQL Computed Columns</title><summary type='text'>A Computed Column in SQL Server allows you to create a read-only calculated field that performs some logic but occupies no space in the database.We have an Access front-end with a SQL Server database &amp; I was looking for ways to improve the user experience. I noted that the query behind one of the forms opened "OK" but scrolling thru the records was a little sluggish. The form itself is a </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/3910352537826899084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=3910352537826899084' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/3910352537826899084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/3910352537826899084'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2011/04/t-sql-computed-columns.html' title='T-SQL Computed Columns'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-340313554404660865</id><published>2011-01-28T22:19:00.012-07:00</published><updated>2011-01-28T23:04:04.039-07:00</updated><title type='text'>sp_executesql</title><summary type='text'>The system stored procedure sp_executesql can be used to run dynamic sql. It also provides a way to use input and/or output parameters. However, the BOL examples seemed to be mighty complicated so I put this together for a quick reference.For the example, we have a simple table "Cities" like this:City nvarchar(50),ST nvarchar(2),County nvarchar(50)If all you want to do is to look up the County </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/340313554404660865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=340313554404660865' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/340313554404660865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/340313554404660865'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2011/01/spexecutesql.html' title='sp_executesql'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-3862484409537239206</id><published>2010-12-18T23:24:00.003-07:00</published><updated>2010-12-19T00:03:04.258-07:00</updated><title type='text'>SSRS and CSV format</title><summary type='text'>Using SQL Server 2005 Reporting Services, I created a timed subscription to save a report as a CSV file to a Windows file share. However, the user was unable to import the file into their salesforce.com application.Turns out that the default export format for CSV uses Unicode encoding, so if you open the file with Excel, each row of the data ends up in the first column.Luckily SSRS has a file </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/3862484409537239206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=3862484409537239206' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/3862484409537239206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/3862484409537239206'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2010/12/ssrs-and-csv-format.html' title='SSRS and CSV format'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-4321135606254843935</id><published>2010-08-28T10:06:00.009-07:00</published><updated>2010-08-29T11:44:03.136-07:00</updated><title type='text'>Resize query columns</title><summary type='text'>My MS-Access application has several buttons that display a query in datasheet view, so users can sort, filter or export the results. I'm frequently disappointed in the appearance when the columns are either too narrow or wide; of course you can easily resize columns with a double-click, but Access doesn't work the same as Excel, i.e. Access considers only the visible rows when it resizes.I </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/4321135606254843935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=4321135606254843935' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/4321135606254843935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/4321135606254843935'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2010/08/resize-query-columns.html' title='Resize query columns'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-4414981868181642956</id><published>2010-08-19T04:56:00.005-07:00</published><updated>2010-08-19T05:27:21.092-07:00</updated><title type='text'>Stored procedure text</title><summary type='text'>SQL Server has a system view sys.syscomments that holds the sql text for all of your stored procedures, views, triggers, UDF's, default constraints and computed columns.I was considering using BULK INSERT to import a file but hadn't used it for a couple years, so I wanted to search some old scripts to get the basic syntax. I Google'd "SQL Server stored procedure text" and found a short article by</summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/4414981868181642956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=4414981868181642956' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/4414981868181642956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/4414981868181642956'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2010/08/stored-procedure-text.html' title='Stored procedure text'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-3259618433094114297</id><published>2010-08-19T04:33:00.002-07:00</published><updated>2010-08-19T04:50:29.103-07:00</updated><title type='text'>Drop temp table</title><summary type='text'>By definition, when a batch completes in SQL Server, any local temp tables created are automatically dropped. So then, if your stored procedure creates a local temp table such as #temp it will be dropped when the sp completes, and you don't need to include the statement DROP TABLE #temp to release resources in tempdb.However, when you are developing a stored procedure, and the batch fails due to </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/3259618433094114297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=3259618433094114297' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/3259618433094114297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/3259618433094114297'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2010/08/drop-temp-table.html' title='Drop temp table'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-2008403805697813770</id><published>2010-06-02T01:06:00.022-07:00</published><updated>2010-06-02T02:43:22.228-07:00</updated><title type='text'>ODBC without a DSN</title><summary type='text'>For years, I have been using MS-Access to connect to SQL Server databases using DSN's, and the process has always been painful &amp; frustrating: do you create a User, System, or File DSN? Each has its advantages, but User / System requires a visit to each PC to config the DSN; In some cases having to log in with Admin credentials  to make that happen. And a File DSN sits out there somewhere on the </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/2008403805697813770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=2008403805697813770' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/2008403805697813770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/2008403805697813770'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2010/06/odbc-without-dsn.html' title='ODBC without a DSN'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-8047001969082829347</id><published>2010-04-04T06:38:00.004-07:00</published><updated>2010-04-04T06:51:31.063-07:00</updated><title type='text'>Office 2010, part 3</title><summary type='text'>In the Access 2010 Beta, if you open a file from an Explorer window or a shortcut, you get the dreadedThe command or action '' isn't available now.But the app works perfectly after dismissing that message. This one had me stumped; tried decompile, compile &amp; save, compact &amp; repair; nothing fixed it. Luckily a few minutes of Googling revealed the answer: if you open that same file from within </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/8047001969082829347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=8047001969082829347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/8047001969082829347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/8047001969082829347'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2010/04/office-2010-part-3.html' title='Office 2010, part 3'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-1713916110146371954</id><published>2010-04-04T06:03:00.004-07:00</published><updated>2010-04-04T06:22:03.225-07:00</updated><title type='text'>Office 2010, part 2</title><summary type='text'>Today I decided to resolve the Access calendar issue, which is: I have a popup form that uses the Calendar 2.0 control, but Access 2010 does not support ActiveX controls. Yes, I know that starting with version 2007, Access provides a date picker icon that displays wherever you have a text box that has a date format (you can turn that off), but navigating is more cumbersome compared to the old </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/1713916110146371954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=1713916110146371954' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1713916110146371954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1713916110146371954'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2010/04/office-2010-part-2.html' title='Office 2010, part 2'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-5618611585674868081</id><published>2010-02-06T07:51:00.011-07:00</published><updated>2010-02-06T08:30:29.264-07:00</updated><title type='text'>Scripted Mass Updates</title><summary type='text'>This article describes a method to generate scripts to perform mass-updates of data. The purpose is to document the updates that are done, for future reference.Let's say you have a table of customers, and each is assigned to a region based on the state being east or west of the Mississippi River. Therefore, Illinois is assigned to the East. However, in order to balance the workload, the users </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/5618611585674868081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=5618611585674868081' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5618611585674868081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5618611585674868081'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2010/02/scripted-mass-updates.html' title='Scripted Mass Updates'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-5360040587384359532</id><published>2010-01-25T04:58:00.002-07:00</published><updated>2010-01-25T05:36:41.147-07:00</updated><title type='text'>Office 2010, part 1</title><summary type='text'>I have been working with the Office 2010 Beta for about a week now. I downloaded the Professional Plus version on January 17 and installed on my test PC which is an old Pentium III with 512 RAM running Windows Server 2003. The install was quite similar to the Office 2007 install.The program launches faster than 2007. Gone is the Office Button, in favor of a File tab on the ribbon which brings up </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/5360040587384359532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=5360040587384359532' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5360040587384359532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5360040587384359532'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2010/01/office-2010-part-1.html' title='Office 2010, part 1'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-4284481071853007898</id><published>2009-11-09T05:19:00.003-07:00</published><updated>2009-11-09T06:16:19.634-07:00</updated><title type='text'>SQL Data Scripts</title><summary type='text'>A standard practice in SQL Server development is to make any changes to objects or data using a script and apply it to the DEV system; once verified, it is applied to QA; once verified, it is finally applied to production.You can take this one step further, and write your scripts to be deterministic - i.e. if the script is run multiple times, the outcome will be the same.For example, let's say </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/4284481071853007898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=4284481071853007898' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/4284481071853007898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/4284481071853007898'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/11/sql-data-scripts.html' title='SQL Data Scripts'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-6854570193107716904</id><published>2009-11-04T16:49:00.003-07:00</published><updated>2009-11-04T17:12:48.229-07:00</updated><title type='text'>Reusable code</title><summary type='text'>My definition of reusable code: modular code that is flexible enough that it can be used in more than one way.For example, let's say that you have a table Orders like this:ID int identity,OrderDate datetime,Quantity intand you want the total orders for one year. Fine. All you need is something like this:CREATE PROC Test(@Year int)ASSELECT SUM(Quantity) AS TotalFROM OrdersWHEREYEAR(OrderDate) = @</summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/6854570193107716904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=6854570193107716904' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6854570193107716904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6854570193107716904'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/11/reusable-code.html' title='Reusable code'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-192729477782214831</id><published>2009-10-24T05:48:00.010-07:00</published><updated>2009-10-24T07:55:21.886-07:00</updated><title type='text'>Tally tables</title><summary type='text'>I first learned about tally tables from the forums at SqlServerCentral which is great resource for information about SQL Server. (Free registration is required to view the content.)A tally table is simply a single-column table that holds integers from 1 to any arbitrary large number. For example, this code from SSC will create a tally table of numbers from 1 to 11,000:SELECT TOP 11000 IDENTITY(</summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/192729477782214831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=192729477782214831' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/192729477782214831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/192729477782214831'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/10/tally-tables.html' title='Tally tables'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-860413653891361136</id><published>2009-10-15T21:09:00.004-07:00</published><updated>2009-10-15T21:45:59.133-07:00</updated><title type='text'>SQL Lookups</title><summary type='text'>I am working with an Access app that was converted to use a SQL Server database, and gradually replacing Access queries with T-SQL or stored procedures for better performance.If you have used Access for a while, you know that the so-called Domain Aggregate functions such as DCount, DLookup, and DSum are very expensive in terms of resource usage. Even if you write your own VBA function to perform </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/860413653891361136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=860413653891361136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/860413653891361136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/860413653891361136'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/10/sql-lookups.html' title='SQL Lookups'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-2992996663795030297</id><published>2009-09-25T18:55:00.008-07:00</published><updated>2009-09-25T21:27:23.934-07:00</updated><title type='text'>DATEPART and DATEFIRST</title><summary type='text'>I am working on a query that groups data by the week-ending date.In MS-Access, you can use DatePart to get the day of the week ( 1 to 7 ) and then add 6 thru 0 days to your test date to calculate the week-ending date. For a normal Sunday - Saturday workweek, if your date field is TheDate you would use this:DateAdd("d", 7 - DatePart("w", TheDate), TheDate)...and if your workweek if different, e.g.</summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/2992996663795030297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=2992996663795030297' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/2992996663795030297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/2992996663795030297'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/09/datepart-and-datefirst.html' title='DATEPART and DATEFIRST'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-3625583933856420166</id><published>2009-08-27T04:48:00.002-07:00</published><updated>2009-08-27T05:17:58.807-07:00</updated><title type='text'>SSMS - INSERT script</title><summary type='text'>SSMS allows you to quickly generate table scripts, such as INSERT, SELECT, and UPDATE, which can save lots of time when writing T-SQL.However, I noticed that if you have an IDENTITY column the INSERT script will leave that out.Granted, most of the time you won't be inserting a value into that column, and in fact you need SET IDENTITY_INSERT MyTable ON if you do wish to insert into that column. </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/3625583933856420166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=3625583933856420166' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/3625583933856420166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/3625583933856420166'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/08/ssms-insert-script.html' title='SSMS - INSERT script'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-6082200258471456899</id><published>2009-08-09T07:13:00.002-07:00</published><updated>2009-08-09T07:43:08.170-07:00</updated><title type='text'>SQL script encoding</title><summary type='text'>During development work with SQL Server, I will generally write a series of change scripts that need to be applied in a specific order. For example, one script might add a new table and another creates a stored procedure that uses that new table. Therefore, when I name the scripts I will prefix them with a sequential number e.g. 01_tblCustomer.sql, 02_prcGetCustomer.sql and so forth. This has </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/6082200258471456899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=6082200258471456899' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6082200258471456899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6082200258471456899'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/08/sql-script-encoding.html' title='SQL script encoding'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-5527571220417854539</id><published>2009-07-19T06:59:00.003-07:00</published><updated>2009-09-25T21:22:13.085-07:00</updated><title type='text'>Pass-Thru Solutions</title><summary type='text'>Six months ago we converted an Access 2003 application to use MSSQL 2005 as the database, and are gradually converting reports to use pass-thru queries, with either T-SQL or stored procedures, to take advantage of the speed &amp; power of the SQL Server.There are many complex reports, some of which have embedded summary subreports, and therein lies the snag - Access does not allow you to use a stored</summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/5527571220417854539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=5527571220417854539' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5527571220417854539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5527571220417854539'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/07/pass-thru-solutions.html' title='Pass-Thru Solutions'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-1031389263175181987</id><published>2009-06-27T08:30:00.004-07:00</published><updated>2009-06-27T08:48:52.006-07:00</updated><title type='text'>Using IF EXISTS</title><summary type='text'>When I work with stored procedures, I will always test if the procedure exists, drop if it does exist, and then create the stored procedure. This produces nice clean code which can be saved to source control &amp; run at any time as needed. Note that the create code includes the grant permissions.I had been using "the long version" of the IF EXISTS statement, for example:IF EXISTS (SELECT * FROM </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/1031389263175181987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=1031389263175181987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1031389263175181987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1031389263175181987'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/06/using-if-exists.html' title='Using IF EXISTS'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-5209836429174235298</id><published>2009-06-20T07:14:00.002-07:00</published><updated>2009-06-20T07:30:53.037-07:00</updated><title type='text'>External Change Tracking</title><summary type='text'>This article relates to my previous post that describes a change-tracking system for MS-Access. You can view the complete code with comments here: Change Tracking in AccessIn a very active database, the tracking table can become quite large, so here are two methods to move the tracking table to a separate file.Remember - always make a backup copy before making significant changes to your </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/5209836429174235298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=5209836429174235298' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5209836429174235298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5209836429174235298'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/06/external-change-tracking.html' title='External Change Tracking'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-2483469491683105670</id><published>2009-06-14T07:03:00.002-07:00</published><updated>2009-06-14T07:29:35.971-07:00</updated><title type='text'>Abort SQL batch</title><summary type='text'>I am working in an environment that has three databases:database ABC on server ABC - the production systemdatabase ABC_QA on server ABC2 - for QA testingdatabase ABC_DEV on server ABC3 - for developmentThe developer writes scripts to create / alter objects &amp; manipulate data during development on ABC_DEV, and then sends them to the DBA to run against ABC_QA for QA testing. When QA is complete, the</summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/2483469491683105670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=2483469491683105670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/2483469491683105670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/2483469491683105670'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/06/abort-sql-batch.html' title='Abort SQL batch'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-5663696130763421717</id><published>2009-05-10T00:26:00.003-07:00</published><updated>2009-05-10T01:15:44.205-07:00</updated><title type='text'>SQL templates</title><summary type='text'>SSMS has a very handy feature in the Template Explorer (Ctrl-Alt-T) that contains 100's of templates for all sorts of scripting tasks you might require:Open the Template ExplorerDrill-down to the categoryRight-click on the desired task and click Open.Press Ctrl-Shift-M to display a popup screen &amp; enter your parametersClick OKYou can also create custom templates:Right-click on the top node, select</summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/5663696130763421717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=5663696130763421717' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5663696130763421717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5663696130763421717'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/05/sql-templates.html' title='SQL templates'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-7369329349964356149</id><published>2009-05-02T05:36:00.002-07:00</published><updated>2009-05-02T06:59:21.385-07:00</updated><title type='text'>Remote Queries in Access</title><summary type='text'>MS-Access makes it very easy to link to tables in other Access databases . . .File ~ Get External Data ~ Link Tables...just navigate to your mdb file &amp; click Link, select the table(s) and click OK.But you can also connect &amp; retrieve data from another file, without creating a linked table. This little-known technique has been around AFAIK since the Access 2.0 days. I'm not suggesting that you use </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/7369329349964356149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=7369329349964356149' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/7369329349964356149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/7369329349964356149'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/05/remote-queries-in-access.html' title='Remote Queries in Access'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-6219644439904099366</id><published>2009-04-26T06:00:00.002-07:00</published><updated>2009-04-26T07:21:45.206-07:00</updated><title type='text'>Change Management</title><summary type='text'>Managing change in SQL Server applications requires a process that protects data integrity &amp; maximizes production uptime, while providing flexibility for new development. I would propose the following as a minimum configuration to accomplish these goals.Create 3 database environments -- one for production, one for development, one for QA. Only the DBA has direct access to production or QA. The </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/6219644439904099366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=6219644439904099366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6219644439904099366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6219644439904099366'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/04/change-management.html' title='Change Management'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-5380964383379013245</id><published>2009-04-11T08:32:00.002-07:00</published><updated>2009-04-11T09:19:24.217-07:00</updated><title type='text'>SQL scripts without sp_executesql</title><summary type='text'>There is a totally useless scripting option in SSMS 2005 that you think might mimic the behavior of EM 2000 but it does quite the contrary.Using Enterprise Manager in MSSQL 2000 you could generate a script to DROP and / or CREATE an object. The DROP statement used the "if exists" syntax, so you could replace an object with a new version. If you wanted to change an object (except for tables) you </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/5380964383379013245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=5380964383379013245' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5380964383379013245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5380964383379013245'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/04/sql-scripts-without-spexecutesql.html' title='SQL scripts without sp_executesql'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-8056735336443096141</id><published>2009-04-04T11:07:00.004-07:00</published><updated>2009-04-09T18:34:51.708-07:00</updated><title type='text'>SQL - list columns in a table</title><summary type='text'>I have gotten into the habit of using either sp_help or sp_columns to view a list of column names, for examplesp_help 'MyTable'orsp_columns 'MyTable'which are much faster than using the Object Explorer in SSMS to drill-down thru the database, table and finally the columns. The downside of these sp's is that they display much more info than usually needed; I just want a list of columns &amp; data </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/8056735336443096141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=8056735336443096141' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/8056735336443096141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/8056735336443096141'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/04/sql-list-columns-in-table.html' title='SQL - list columns in a table'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-6724002385879729651</id><published>2009-04-01T17:03:00.003-07:00</published><updated>2009-04-01T17:16:40.852-07:00</updated><title type='text'>Linking Access to SQL Server</title><summary type='text'>I have an Access app that links to SQL Server, and when I tried to attach a new SQL table in code I ran into a snag - the linked table would forget the user name &amp; password, so Access would pop up one of those login dialog boxes.I compared the value of the table Attributes (a long integer) &amp; discovered that my new table was different. A quick trip to Access Help was truly helpful - I was missing </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/6724002385879729651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=6724002385879729651' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6724002385879729651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6724002385879729651'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/04/linking-access-to-sql-server.html' title='Linking Access to SQL Server'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-4761212320054692703</id><published>2009-03-27T06:53:00.004-07:00</published><updated>2009-03-27T07:26:53.897-07:00</updated><title type='text'>Loop thru SQL tables</title><summary type='text'>"How can I loop through all the tables in a SQL Server database, and run T-SQL on each table where the name matches a pattern, without using cursors?"This question was recently posted at a SQL forum. Here is the solution. . .SQL Server has a system stored procedure sp_tables that displays all the tables in the database, and has an optional parameter that allows filtering the results. For example,</summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/4761212320054692703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=4761212320054692703' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/4761212320054692703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/4761212320054692703'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/03/loop-thru-sql-tables.html' title='Loop thru SQL tables'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-3686233917264641179</id><published>2009-03-13T16:48:00.005-07:00</published><updated>2009-03-13T17:47:46.407-07:00</updated><title type='text'>Tracking Access Button Clicks</title><summary type='text'>I am working with an older Access application that has almost 500 command buttons, and our task is to determine which features are still being used &amp; which ones can be retired. Hopefully we'll recover screen space, plus improve the maintenance by removing obsolete queries &amp; reports.Of course, asking the users which features they are using is one option, but with over 100 users that is not really </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/3686233917264641179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=3686233917264641179' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/3686233917264641179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/3686233917264641179'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/03/tracking-access-button-clicks.html' title='Tracking Access Button Clicks'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-8069477176084603204</id><published>2009-03-13T07:13:00.007-07:00</published><updated>2009-03-13T16:47:57.765-07:00</updated><title type='text'>Access subform VBA</title><summary type='text'>Forms behave differently when they are used as subforms, and this can be a challenge when using VBA. Normally, when you load a form, Access adds it to the Forms collection. So if you open a form MyForm thenForms.Count = 1and you can refer to a control on that form using:Forms!MyForm!MyControlHowever, if that form contains a subform, MySubform, thenForms.Count = 1and this will fail:Forms!MySubform</summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/8069477176084603204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=8069477176084603204' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/8069477176084603204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/8069477176084603204'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/03/access-subform-vba.html' title='Access subform VBA'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-7347380822136789792</id><published>2009-02-28T06:12:00.005-07:00</published><updated>2009-02-28T07:08:35.139-07:00</updated><title type='text'>Compact and Repair Database</title><summary type='text'>MS-Access files tend to grow over time, for a variety of reasons such asadding many new recordslarge number of user editsrunning action queries (insert, update, delete)design changes, especially to forms &amp; reportstemp tables that are emptied &amp; repopulatedusing the Name AutoCorrect optionsAccess replicationWorkGroup Security with encryptionThe theoretical design limit of an Access mdb file is 2 GB</summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/7347380822136789792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=7347380822136789792' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/7347380822136789792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/7347380822136789792'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/02/compact-and-repair-database.html' title='Compact and Repair Database'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-4013332971014695052</id><published>2009-02-15T08:03:00.004-07:00</published><updated>2009-02-15T08:53:52.129-07:00</updated><title type='text'>Access replicas and runtimes</title><summary type='text'>We recently completed a lengthy project, migrating a replicated MS-Access 2003 application to a client/server model using Access as the front-end and SQL Server 2005 as the database. The application had previously been modified as necessary to utilize the Access 2003 runtime on terminal server.There are a few features in the app that display query results in a datasheet view, and every one of </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/4013332971014695052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=4013332971014695052' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/4013332971014695052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/4013332971014695052'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/02/access-replicas-and-runtimes.html' title='Access replicas and runtimes'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-8386379955991540236</id><published>2009-02-05T18:40:00.002-07:00</published><updated>2009-02-05T18:48:25.151-07:00</updated><title type='text'>Identity Crisis, part 2</title><summary type='text'>Talk about being lucky.We reviewed the tables that were almost out of headroom as far as PK identity values hitting the limit of an int, and found that for the two tables that were almost out of room, the PK's were not FK's but were simply in there to satisfy the basic rule that every table should have a primary key.These tables had only 20-25,000 records; it was only the fact that they were </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/8386379955991540236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=8386379955991540236' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/8386379955991540236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/8386379955991540236'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/02/identity-crisis-part-2.html' title='Identity Crisis, part 2'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-3472478424263839891</id><published>2009-02-02T16:41:00.004-07:00</published><updated>2009-02-02T17:11:44.286-07:00</updated><title type='text'>Identity Crisis</title><summary type='text'>I am working with a SQL Server 2005 database that was upsized from a replicated Access 2003 database. We used the SQL Server Migration Assistant for Access 2003.Because the Access file was replicated, the Autonumber fields were set for Random, as opposed to Increment, so the resulting IDENTITY fields in SQL are spread across the range of an int, which is +/- 2 billion give or take. However, for </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/3472478424263839891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=3472478424263839891' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/3472478424263839891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/3472478424263839891'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/02/identity-crisis.html' title='Identity Crisis'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-6576492633442205474</id><published>2009-01-31T08:27:00.003-07:00</published><updated>2009-01-31T09:10:10.571-07:00</updated><title type='text'>SSMA - the Memo bug - part 2</title><summary type='text'>My last post discussed a method for changing the data type of a field in SQL Server. My suggestion was to use the SSMS table designer to create the script for you, but there is a faster easier way provided that you can write some basic T-SQL.Keep in mind that the design requirement is to create a script to apply the change, because this same change needs to be applied to three different databases</summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/6576492633442205474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=6576492633442205474' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6576492633442205474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6576492633442205474'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/01/ssma-memo-bug-part-2.html' title='SSMA - the Memo bug - part 2'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-8689924114309397665</id><published>2009-01-28T18:00:00.002-07:00</published><updated>2009-01-28T18:18:27.692-07:00</updated><title type='text'>SSMA - the Memo bug</title><summary type='text'>I'm working with the Microsoft SQL Server Migration Assistant to convert an Access 2003 db to SQL Server 2005. Just today I found another little bug.In Access you can have a Memo field that holds up to 64k characters, give or take. This is great for adding comments and notes.The SSMA converts those as nvarchar(max) and correctly moves the data, however when linking to it using the SQL Native </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/8689924114309397665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=8689924114309397665' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/8689924114309397665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/8689924114309397665'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/01/ssma-memo-bug.html' title='SSMA - the Memo bug'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-1495594054133516633</id><published>2009-01-17T06:38:00.005-07:00</published><updated>2009-01-17T07:33:55.059-07:00</updated><title type='text'>Time Sheets</title><summary type='text'>I am working on an MS-Access time &amp; billing program for consultants. This is an old program that was originally designed in Access 2.0, and over the years it was converted to 97 and then 2000, and finally was split into separate front end / back end files.One of the new features requested is to allow the consultant to view their hours in comparison to the standard 8-hour day and 5-day week. For </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/1495594054133516633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=1495594054133516633' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1495594054133516633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1495594054133516633'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2009/01/time-sheets.html' title='Time Sheets'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-894616189344271998</id><published>2008-11-29T06:47:00.002-07:00</published><updated>2008-11-29T07:14:28.281-07:00</updated><title type='text'>SSMA bug watch</title><summary type='text'>The SQL Server 2005 Developer Edition installed on my Windows XP SP3 laptop had crashed over the weekend, so after a fresh reinstall including SP2 with hotfixes up to version 3073, I decided to re-run my SQL Server Migration Assistant for Access (SSMA) to create a new conversion file for testing.The application performance was extremely poor, so I tried running SQL Profiler to try to find the </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/894616189344271998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=894616189344271998' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/894616189344271998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/894616189344271998'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2008/11/ssma-bug-watch.html' title='SSMA bug watch'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-5099374437993589985</id><published>2008-11-18T16:28:00.002-07:00</published><updated>2008-11-18T16:58:12.825-07:00</updated><title type='text'>Max Locks Per File</title><summary type='text'>I have a replicated MS-Access database that is used to store archive data from the production system. This archive is Access 2002 format and is approx 140 MB in size.The design master was recovered from a replica &amp; saved to a local C: drive, and then a new replica was created &amp; published to a network share. So far, so good.However, when I attempted to sync the two files, I received an error that </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/5099374437993589985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=5099374437993589985' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5099374437993589985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5099374437993589985'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2008/11/max-locks-per-file.html' title='Max Locks Per File'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-5951276435414764500</id><published>2008-11-13T16:55:00.004-07:00</published><updated>2008-11-13T17:16:39.705-07:00</updated><title type='text'>Excel prompts to save when no changes made</title><summary type='text'>I have a large Excel workbook that is a catch-all for budgeting, time analysis &amp; other miscellaneous items. When I would open the file to look at something, not change anything but simply close it, Excel would prompt me to save changes?I found this article that explains "volatile formulas" in Excel such as CELL(), NOW(), RAND(), TODAY() and a few others. Here is the full article:"Save changes in </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/5951276435414764500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=5951276435414764500' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5951276435414764500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5951276435414764500'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2008/11/excel-prompts-to-save-when-no-changes.html' title='Excel prompts to save when no changes made'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-471151571139477802</id><published>2008-10-05T10:09:00.002-07:00</published><updated>2008-10-05T10:27:28.794-07:00</updated><title type='text'>Sharing Linux folders for Windows</title><summary type='text'>Sharing Windows folders for access by Ubuntu Linux is fairly straightforward using Samba (SMB) but going in the opposite direction had me stumped.From Windows, I would go into My Network Places ~ Entire Network ~ Microsoft Windows Network ~ Workgroup and I could see the Linux machine. Then I would double-click on it and enter my Linux name and password, but it would not connect.The solution is </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/471151571139477802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=471151571139477802' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/471151571139477802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/471151571139477802'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2008/10/sharing-linux-folders-for-windows.html' title='Sharing Linux folders for Windows'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-5226611390064655636</id><published>2008-09-05T04:59:00.004-07:00</published><updated>2008-09-07T06:38:03.028-07:00</updated><title type='text'>Replicated Queries</title><summary type='text'>MS-Access makes it very easy to change the SQL of a query simply by using a statement likeCurrentDb.QueryDefs("MyQuery").SQL = "SELECT * FROM MyTable"there is no need to Dim or Set anything, simply plug in the SQL and you're ready to go.However, I just discovered that this does not work in a replicated database. Or I should say, it works in the Design Master but it does not work in a Replica. I </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/5226611390064655636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=5226611390064655636' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5226611390064655636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5226611390064655636'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2008/09/replicated-queries.html' title='Replicated Queries'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-203230782621381036</id><published>2008-07-20T07:27:00.005-07:00</published><updated>2008-11-29T07:26:42.379-07:00</updated><title type='text'>Moving Days</title><summary type='text'>{EDIT} Around about September 2008, I decided not to move articles off this blog after all. I might copy a few to the tips page at my Web site, but otherwise I'm going to keep this blog intact. {EDIT}When I started this blog three years ago, I had intended to use it as a quick way to publish my technology findings both for the general Internet community, and also to use it as a knowledge base for</summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/203230782621381036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=203230782621381036' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/203230782621381036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/203230782621381036'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2008/07/moving-days.html' title='Moving Days'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-1729794737981265048</id><published>2008-07-06T06:10:00.004-07:00</published><updated>2008-07-06T06:24:10.626-07:00</updated><title type='text'>Batch Files</title><summary type='text'>By all accounts, DOS is dead. But since cmd.exe is still part of Windows, you can still write DOS batch programs to automate certain tasks.For example, I am working with an Access application that is rebuilt every month. The previous process was to have the user navigate to a shared drive and use Windows Explorer to copy a new version of the MDB file and then paste it to a specific folder on </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/1729794737981265048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=1729794737981265048' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1729794737981265048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1729794737981265048'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2008/07/batch-files.html' title='Batch Files'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-1641961457346393909</id><published>2008-07-04T08:56:00.003-07:00</published><updated>2008-07-04T09:16:54.350-07:00</updated><title type='text'>Removing Access Replication</title><summary type='text'>Using replication with MS-Access adds numerous system fields and tables, and combined with the replication-tracking system, a replicated Access database can grow to an unwieldy size, especially if you have many users and/or there are frequent changes in the design master.The customary solution is to rebuild the database, i.e. to create a new non-replicated file and then use that to create a new </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/1641961457346393909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=1641961457346393909' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1641961457346393909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1641961457346393909'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2008/07/removing-access-replication.html' title='Removing Access Replication'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-8895739999962519990</id><published>2008-06-21T07:37:00.004-07:00</published><updated>2008-06-21T08:09:21.819-07:00</updated><title type='text'>SSMA, part 3</title><summary type='text'>My previous posts about the SQL Migration Assistant for Access reported generally favorable results with this product which is used to migrate Access data into SQL Server. It does a remarkably better job than the old Access Upsizing Wizard which very often failed, especially when dealing with date fields. When SSMA has completed its work, the system is mostly operational.However, there are two </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/8895739999962519990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=8895739999962519990' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/8895739999962519990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/8895739999962519990'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2008/06/ssma-part-3.html' title='SSMA, part 3'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-7509724593630934379</id><published>2008-06-08T08:04:00.003-07:00</published><updated>2008-06-08T08:46:26.133-07:00</updated><title type='text'>Access Replication</title><summary type='text'>Replication in Access provides a method of allowing remote users to work with a local copy of the database while disconnected from the network, and then synchronizing their changes when they do connect. This feature has been part of Access since the 90's but sadly, although Access 2007 supports it if you stay with the .mdb file format, if you choose to convert to the new .accdb format this </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/7509724593630934379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=7509724593630934379' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/7509724593630934379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/7509724593630934379'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2008/06/access-replication.html' title='Access Replication'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-5798638048227772335</id><published>2008-05-24T09:32:00.002-07:00</published><updated>2008-05-24T09:51:52.610-07:00</updated><title type='text'>SSMA, part 2</title><summary type='text'>The SQL Server Migration Assistant for Access does a fine job in converting Access data into a SQL Server database. But there are a few issues.One issue is that SSMA does not convert relationships where the PrimaryKey in Access is a compound index, i.e. if your PK uses more than one field, that relationship will not migrate so you'll have to create that manually.Another issue is that SSMA does </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/5798638048227772335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=5798638048227772335' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5798638048227772335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5798638048227772335'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2008/05/ssma-part-2.html' title='SSMA, part 2'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-6564421487027726965</id><published>2008-04-27T15:01:00.003-07:00</published><updated>2008-05-02T12:36:55.549-07:00</updated><title type='text'>SQL Server Migration Assistant</title><summary type='text'>"Microsoft SQL Server Migration Assistant (SSMA) for Access is a tool for migrating databases from Microsoft Access 97 through Access 2003 to Microsoft SQL Server 2005. SSMA for Access converts Access database objects to SQL Server database objects, loads those objects into SQL Server, and then migrates data from Access to SQL Server." (from the readme file)This is an extremely useful tool, the </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/6564421487027726965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=6564421487027726965' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6564421487027726965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6564421487027726965'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2008/04/sql-server-migration-assistant.html' title='SQL Server Migration Assistant'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-4481169383660320559</id><published>2008-04-20T09:11:00.001-07:00</published><updated>2008-04-20T09:14:33.395-07:00</updated><title type='text'>Office 2007 creates PDF's</title><summary type='text'>There is a significant new feature in Office 2007 that may encourage users to migrate to the 2007 version - the ability to create PDF files without requiring the full version of Adobe Acrobat. This is especially useful with Access 2007.In previous Office versions, you would need to install a PDF-creation program such as Acrobat, pdf995, or other program. Those programs generally install </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/4481169383660320559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=4481169383660320559' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/4481169383660320559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/4481169383660320559'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2008/04/office-2007-creates-pdfs.html' title='Office 2007 creates PDF&apos;s'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-4538293393481542186</id><published>2008-04-13T12:11:00.001-07:00</published><updated>2008-04-13T12:14:11.375-07:00</updated><title type='text'>Moving to Access 2007</title><summary type='text'>Office 2007 has generally received a lukewarm response, but mainstream support for Office 2003 is set to end in April 2009, so remember the Boy Scout motto of "Be Prepared".To date, I have had three customers that upgraded a single PC to 2007, while the rest of the users remained with 2003. Two have since downgraded back to 2003 due mostly to issues with Access 2007 compatibility. Some users </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/4538293393481542186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=4538293393481542186' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/4538293393481542186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/4538293393481542186'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2008/04/moving-to-access-2007.html' title='Moving to Access 2007'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-4996003716541672940</id><published>2008-03-08T08:44:00.003-07:00</published><updated>2008-03-13T12:11:45.664-07:00</updated><title type='text'>Vista and PCL6</title><summary type='text'>Vista continues to exhibit incompatibilities with peripherals, not just legacy devices but brand-new printers as well.I have an Access database that launches a mail-merge with Word (Office 2003 with SP3, running under Vista Business) and the customer is printing to a new HP color laserjet. Using the latest PCL6 driver, the first page prints correctly but then is followed by a printer error page </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/4996003716541672940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=4996003716541672940' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/4996003716541672940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/4996003716541672940'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2008/03/vista-and-pcl6.html' title='Vista and PCL6'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-9082807558266693783</id><published>2008-02-23T08:39:00.002-07:00</published><updated>2008-02-23T08:52:19.713-07:00</updated><title type='text'>Printing from DOS</title><summary type='text'>Yes, hard to believe, but there are still some DOS applications out there in production environments.To redirect DOS printing to a network printer, open a command windowStart ~ Run ~ cmd {ENTER}and then run this commandnet use lpt1 \\servername\printername /persistent:yes</summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/9082807558266693783/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=9082807558266693783' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/9082807558266693783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/9082807558266693783'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2008/02/printing-from-dos.html' title='Printing from DOS'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-6611767469185188040</id><published>2008-02-14T15:17:00.005-07:00</published><updated>2008-02-14T16:11:31.910-07:00</updated><title type='text'>Access and mail merge</title><summary type='text'>Recently I've been running into some challenges using Access 2003 (2000 format) as the data source for mail merge, when using either Word or Publisher to produce merge documents.In either of those two programs, you select your Access file as the data source, and normally you're presented with a list of all tables and select queries in the database. But on several occasions, with different Access </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/6611767469185188040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=6611767469185188040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6611767469185188040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6611767469185188040'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2008/02/access-and-mail-merge.html' title='Access and mail merge'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-2088901505125494498</id><published>2008-01-27T05:54:00.001-07:00</published><updated>2008-01-27T06:08:44.889-07:00</updated><title type='text'>Last Restore Details for SQL</title><summary type='text'>In a previous entry, I posted T-SQL code that will list the last restore dates for all db's on a SQL Server. The original purpose was to verify the dates that production backups were restored to the test environment.This enhanced script will also display the name of the MDF file and the name &amp; location of the backup file that was used for the restore. This can serve as a double-check that the dev</summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/2088901505125494498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=2088901505125494498' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/2088901505125494498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/2088901505125494498'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2008/01/last-restore-details-for-sql.html' title='Last Restore Details for SQL'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-4365912732638141585</id><published>2008-01-10T08:15:00.000-07:00</published><updated>2008-01-10T08:28:55.415-07:00</updated><title type='text'>Access File Size</title><summary type='text'>This function will return the size of the current Access database file. This function requires a reference to the Microsoft Scripting Runtime library, usually located at:C:\WINDOWS\system32\scrrun.dllAn Access mdb file can grow over time, especially if you have a lot of edits, empty / refill temp tables, and so forth. The purpose of this function is to get the current size, which (using other </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/4365912732638141585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=4365912732638141585' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/4365912732638141585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/4365912732638141585'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2008/01/access-file-size.html' title='Access File Size'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-1997578825243879391</id><published>2007-12-28T06:54:00.000-07:00</published><updated>2007-12-28T07:22:11.089-07:00</updated><title type='text'>Access 2007 problems</title><summary type='text'>I have an Access database that connects to SQL Server to provide custom reporting and batch updates of data. The file is 2000 format and was created using Access 2003 SP2.I'm having quite a few issues using this file in Access 2007. My first attempts at 2007 were calamitous due to code artifacts that would not compile (oops). I found and fixed things that 2003 ignores, and once it compiled I </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/1997578825243879391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=1997578825243879391' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1997578825243879391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1997578825243879391'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2007/12/access-2007-problems.html' title='Access 2007 problems'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-1183474004794160038</id><published>2007-12-22T08:32:00.000-07:00</published><updated>2007-12-22T08:47:38.242-07:00</updated><title type='text'>Last Restore Date in MSSQL</title><summary type='text'>I regularly take backups of three databases from a production SQL Server 2005, and restore to as many as four different development servers, for testing with different OS's and hardware configurations. I created this procedure in the master database on each dev server that will display the last restore dates for all the databases:CREATE PROC dbo.procLastRestoreDatesASSELECT  </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/1183474004794160038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=1183474004794160038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1183474004794160038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1183474004794160038'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2007/12/last-restore-date-in-mssql.html' title='Last Restore Date in MSSQL'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-5089631230688733466</id><published>2007-12-21T07:35:00.000-07:00</published><updated>2007-12-21T07:39:10.947-07:00</updated><title type='text'>Change Tracking in Access - complete</title><summary type='text'>This previous blog post has now been compiled into a single Web page, you can view the full article at my "Tips and Downloads" at this location:http://www.wvmitchell.com/tips/Change_Tracking_in_Access.html</summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/5089631230688733466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=5089631230688733466' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5089631230688733466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5089631230688733466'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2007/12/change-tracking-in-access-complete.html' title='Change Tracking in Access - complete'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-2306629055251580008</id><published>2007-12-16T08:55:00.000-07:00</published><updated>2007-12-16T09:08:18.450-07:00</updated><title type='text'>Linking Access tables to SQL Server - III</title><summary type='text'>This is the final chapter on creating a linked server from SQL 2005 to Access 97. I posted this issue at the MS Newsgroups, and the bottom line is that since Access 97 is no longer supported by MS, there are few resources to resolve this problem - The MSSQL gurus don't have an explanation why it would or would not work, and they had no suggestions as to server configuration that might help. </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/2306629055251580008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=2306629055251580008' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/2306629055251580008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/2306629055251580008'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2007/12/linking-access-tables-to-sql-server-iii.html' title='Linking Access tables to SQL Server - III'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-6367519560390170895</id><published>2007-12-12T06:31:00.001-07:00</published><updated>2007-12-12T06:41:27.225-07:00</updated><title type='text'>Printing from Vista</title><summary type='text'>In a previous post, I described how Office 2003 , and especially Access, requires updated print drivers for Windows Vista. In some cases Access will not allow design or printing of any reports unless new Vista drivers are installed.I recently discovered that even Vista-compatible drivers can have issues - for example, an HP 1320 using the PCL 5 driver "works" with most apps, but Access reports </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/6367519560390170895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=6367519560390170895' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6367519560390170895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6367519560390170895'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2007/12/printing-from-vista.html' title='Printing from Vista'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-2488172779375311877</id><published>2007-12-08T20:18:00.001-07:00</published><updated>2007-12-08T20:47:24.398-07:00</updated><title type='text'>Last Modified Date</title><summary type='text'>I was looking for a way to display the last modified date on a form or report, but the two methods I had tried did not give the correct results.In this example, I was using a form named frmSwitchboard...Method 1SELECT DateUpdateFROM MSysObjectsWHERE Name="frmSwitchboard" AND Type=-32768Method 2CurrentDb.Containers("Forms").Documents("frmSwitchboard").LastUpdated..both of these returned the </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/2488172779375311877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=2488172779375311877' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/2488172779375311877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/2488172779375311877'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2007/12/last-modified-date.html' title='Last Modified Date'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-6819097813581537637</id><published>2007-12-05T17:16:00.000-07:00</published><updated>2007-12-07T19:16:10.502-07:00</updated><title type='text'>Linking Access tables to SQL Server - II</title><summary type='text'>My previous post on this topic described creating a linked server to allow SQL Server to access data from a MS-Access database. A few more details are in order...SQL Server 2000 can link to either Access 97 or 2000 formats using the Jet 4.0 OLEDB provider, and can use either of these types of statements against your linked server, in this example AccessDB:SELECT * FROM AccessDB...</summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/6819097813581537637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=6819097813581537637' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6819097813581537637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6819097813581537637'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2007/12/linking-access-tables-to-sql-server-ii.html' title='Linking Access tables to SQL Server - II'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-4734651746565900752</id><published>2007-11-26T07:41:00.000-07:00</published><updated>2007-11-26T08:12:19.349-07:00</updated><title type='text'>Working with Relations</title><summary type='text'>Relationships between tables are crucial to preserving data integrity in MS-Access or any other relational database system. In these examples, I show both how to create and delete a relationship. The "create" example creates a one-to-many relationship, enforces referential integrity, uses a single field, without cascades.You can certainly manage relations in Access using the GUI (Tools ~ </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/4734651746565900752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=4734651746565900752' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/4734651746565900752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/4734651746565900752'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2007/11/working-with-relations.html' title='Working with Relations'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-1373197325060499697</id><published>2007-11-21T17:26:00.000-07:00</published><updated>2007-11-21T17:54:10.346-07:00</updated><title type='text'>Saving Access Forms as Reports</title><summary type='text'>Forms are the heart of an Access application, but sometimes a hard-copy is still required. A well-formatted form can be printed simply by using the DoCmd.PrintOut statement, but to print a single record you'll probably need to set a bookmark of some kind, apply a filter, print the form, and then use the bookmark to return to that same record.Access provides for a "Save As Report" feature, so you </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/1373197325060499697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=1373197325060499697' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1373197325060499697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1373197325060499697'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2007/11/saving-access-forms-as-reports.html' title='Saving Access Forms as Reports'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-754486446074401990</id><published>2007-11-10T09:16:00.002-07:00</published><updated>2008-06-19T08:47:53.818-07:00</updated><title type='text'>Formatted MsgBox in Access</title><summary type='text'>I wanted to create a formatted message box in Access, with the first line being bold, to duplicate the built-in delete confirmation message. In older versions of Access, you could useMsgBox "First line is bold@Second line is normal@@"but when Access moved from 97 to 2000 this feature went away.I Google'd this &amp; found several versions of a workaround, and here is what worked for me in Access 2003:</summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/754486446074401990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=754486446074401990' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/754486446074401990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/754486446074401990'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2007/11/formatted-msgbox-in-access.html' title='Formatted MsgBox in Access'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-1430345723766396890</id><published>2007-11-04T09:20:00.000-07:00</published><updated>2007-11-04T09:31:04.136-07:00</updated><title type='text'>SQL Server Backup / Restore</title><summary type='text'>I routinely take a backup from the production SQL 2005 Server and restore it to my dev system. I had previously published my code for backup and restore, which used backup devices but I found that was not necessary.I have a folder on the production server named E:\SQL_Bill which is shared for me alone and is the target for my backup. I then zip and copy the file to my thumb drive, then copy and </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/1430345723766396890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=1430345723766396890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1430345723766396890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1430345723766396890'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2007/11/sql-server-backup-restore.html' title='SQL Server Backup / Restore'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-7665855353006408071</id><published>2007-10-17T07:34:00.000-07:00</published><updated>2007-10-17T08:11:01.124-07:00</updated><title type='text'>ANSI Warnings and Vista</title><summary type='text'>I have an Access 2003 application that connects to a SQL Server 2005 database using pass-through queries that either contain T-SQL or execute stored procedures.When some of the user PC's were upgraded to Windows Vista, I noted that sometimes new tables were being created in Access with names like "Admin - 00", "Admin - 01" and so forth. Each table contained one to three records that held ANSI </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/7665855353006408071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=7665855353006408071' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/7665855353006408071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/7665855353006408071'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2007/10/ansi-warnings-and-vista.html' title='ANSI Warnings and Vista'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-8247233359454320670</id><published>2007-08-08T17:51:00.000-07:00</published><updated>2007-08-08T18:42:59.455-07:00</updated><title type='text'>Linking Access tables to SQL Server</title><summary type='text'>The question was, how do I link from SQL Server to an Access db and loop through all of the Access tables that end with "Data" ... My example uses a 2000-format file C:\BILL\Test2000.mdbFirst, run this one-time to create the linked server:sp_addlinkedserver@server = 'Test2000',@provider = 'Microsoft.Jet.OLEDB.4.0',@srvproduct = '',@datasrc = 'C:\BILL\Test2000.mdb'GOsp_addlinkedsrvlogin@rmtsrvname</summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/8247233359454320670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=8247233359454320670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/8247233359454320670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/8247233359454320670'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2007/08/linking-access-tables-to-sql-server.html' title='Linking Access tables to SQL Server'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-3875193030690503595</id><published>2007-07-26T08:06:00.000-07:00</published><updated>2007-07-26T08:24:12.940-07:00</updated><title type='text'>AVG Free and Access</title><summary type='text'>AVG Free automatically scans MDB files when you open them, and this cannot be turned off in the Free edition. Even on a fast PC, it could take 20-30 seconds depending on the size of the database.This presents itself in two ways:1. You are using Access 2000-2003, just opened the db moments ago, and you want to do a quick compact &amp; repair. Access tells you either "Cannot open database '(database </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/3875193030690503595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=3875193030690503595' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/3875193030690503595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/3875193030690503595'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2007/07/avg-free-and-access.html' title='AVG Free and Access'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-1177169680476692438</id><published>2007-07-15T13:30:00.002-07:00</published><updated>2010-05-23T14:30:59.907-07:00</updated><title type='text'>Tracking changes in Access</title><summary type='text'>Here is a method to track edits in MS-Access. The goal is to record the "who what when where" of edits made in an Access database. Since Access does not have triggers like SQL Server, we will be working at the Form level.NOTE - UPDATED 11/11/2007added table name to trackerTo keep things readable within the blogger format, you'll need to visit three links that will display details of what is </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/1177169680476692438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=1177169680476692438' title='106 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1177169680476692438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1177169680476692438'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2007/07/tracking-changes-in-access.html' title='Tracking changes in Access'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>106</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-5530078807156188275</id><published>2007-06-23T10:36:00.000-07:00</published><updated>2007-06-23T10:48:14.033-07:00</updated><title type='text'>Error 3146: ODBC Call Failed</title><summary type='text'>When you first create a link to an ODBC data source, Access will memorize the underlying table design, but it will not automatically update itself if the table design in changed; resulting in Error 3146 ODBC Call Failed.This is in sharp contrast to the behavior when linking to external native Access tables - Access will automatically update the table definition, so no action is required when the </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/5530078807156188275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=5530078807156188275' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5530078807156188275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/5530078807156188275'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2007/06/error-3146-odbc-call-failed.html' title='Error 3146: ODBC Call Failed'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-2440409423006503588</id><published>2007-05-27T09:02:00.000-07:00</published><updated>2007-05-27T09:15:52.251-07:00</updated><title type='text'>Scripting T-SQL</title><summary type='text'>Sql Server displays the creation date for db objects, but does not show the last modified date. That makes it hard to tell if and when an object like a view, sp, or UDF was last changed.For that reason, I always write my script and save it to a disk file, using the following general structure:DROP PROC dbo.MyProcedureGOCREATE PROC dbo.MyProcedureAS-- actual code goes hereGOGRANT EXECUTE ON </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/2440409423006503588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=2440409423006503588' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/2440409423006503588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/2440409423006503588'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2007/05/scripting-t-sql.html' title='Scripting T-SQL'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-3485362850525205997</id><published>2007-05-12T15:21:00.000-07:00</published><updated>2007-05-12T15:24:25.606-07:00</updated><title type='text'>Create SQL Server database query with MS Excel</title><summary type='text'>1. Start a new XL workbook2. Click Data ~ Import External Data ~ New Database Query3. At the "Choose Data Source" dialog, either select an existing DSN or create a new one, then click OK.4. At the "SQL Server Login" dialog, enter your credentials and click OK5. At the "Query Wizard" dialog, click Cancel6. At the "Do you want to continue editing this query in Microsoft Query?" click Yes.7. At the </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/3485362850525205997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=3485362850525205997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/3485362850525205997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/3485362850525205997'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2007/05/create-sql-server-database-query-with.html' title='Create SQL Server database query with MS Excel'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-6019516545393377172</id><published>2007-04-24T06:23:00.000-07:00</published><updated>2007-04-24T06:43:36.130-07:00</updated><title type='text'>Using BETWEEN with dates</title><summary type='text'>T-SQL has a handy BETWEEN statement that makes it easy to apply date range criteria. The basic usage isWHERE dtSomeDate BETWEEN '1/1/2007' and '1/31/2007'...which can replace the cumbersomeWHERE dtSomeDate &gt;= '1/1/2007' AND dtSomeDate &lt;= '1/31/2007'either expression would (in theory) retrieve any date during January 2007. But SQL Server dates can contain a time component - so if dtSomeDate was </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/6019516545393377172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=6019516545393377172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6019516545393377172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/6019516545393377172'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2007/04/using-between-with-dates.html' title='Using BETWEEN with dates'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-1254897405737162799</id><published>2007-04-07T09:07:00.000-07:00</published><updated>2007-04-07T09:28:45.483-07:00</updated><title type='text'>Works with Vista</title><summary type='text'>There are a surprising numbers of free utilities that work with Windows Vista.My faves are FoxIt Reader, a fast &amp; free replacement for Adobe Reader; NotePad2, a smart NotePad replacement for programmers that color-codes text based on file extension; and Ad-Aware SE Personal, which scans for spyware &amp; other such nasties.Thus far, every PDF that I've opened with FoxIt has displayed just fine, </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/1254897405737162799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=1254897405737162799' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1254897405737162799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/1254897405737162799'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2007/04/works-with-vista.html' title='Works with Vista'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-114504606616356940</id><published>2006-04-14T13:11:00.000-07:00</published><updated>2006-04-14T13:21:06.163-07:00</updated><title type='text'>Blogger Support is Super</title><summary type='text'>If you've noticed that this blog was MIA for the last few days, I had been fooling around with a 3rd blog, then decided to discard it -but- I accidentally deleted THIS one. Oops. And I had no backups, shame on me.Blogger Support to the rescue - "Karl" was able to restore all my posts going back to Jan 2005. All the more impressive, considering that this is a free service provided by Google.Thanks</summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/114504606616356940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=114504606616356940' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/114504606616356940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/114504606616356940'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2006/04/blogger-support-is-super.html' title='Blogger Support is Super'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10221735.post-110601723973796658</id><published>2005-01-17T19:53:00.000-07:00</published><updated>2005-01-17T20:00:39.736-07:00</updated><title type='text'>Welcome</title><summary type='text'>Welcome to the Mitchell Data Base blog. On these pages, I hope to cover topics of interest to database consultants and users. The primary database platforms include: Microsoft Access and Microsoft SQL Server, but older platforms such as dBase may also be covered from time to time. Any and all comments are welcome. If you have sample files or other materials to contribute, please send an email to </summary><link rel='replies' type='application/atom+xml' href='http://wvmitchell.blogspot.com/feeds/110601723973796658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10221735&amp;postID=110601723973796658' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/110601723973796658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10221735/posts/default/110601723973796658'/><link rel='alternate' type='text/html' href='http://wvmitchell.blogspot.com/2005/01/welcome.html' title='Welcome'/><author><name>Bill Mitchell</name><uri>http://www.blogger.com/profile/04373828339706140353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/-hEzybMYk3_w/TbLVHzDgEGI/AAAAAAAAAAw/iLSbpXYqZoA/s220/wvmitchell.JPG'/></author><thr:total>0</thr:total></entry></feed>
