[AccessD] SPAM-LOW: Re: Binding forms and controls directly to SQL Server

jwcolby jwcolby at colbyconsulting.com
Tue Mar 23 11:53:43 CDT 2010


 > Pass-Through queries are read-only which is why I only use them for combo boxes or to call stored
procedures.

Which would explain why I can't update or add records.

But this is the big time sink for this form.  Can I bind the form to a stored procedure and pass 
parameters to the stored procedure?

John W. Colby
www.ColbyConsulting.com


Rusty Hammond wrote:
>>From the SQL view of the query, go to the Query menu, SQL Specific,
> Pass-Through.  Then right click the title bar of the query and go to
> Properties.  Setup your ODBC Connect Str and you should be good to go.
> The SQL of the pass-through needs to be in T-SQL and not access sql.
> Pass-Through queries are read-only which is why I only use them for
> combo boxes or to call stored procedures.
> 
> 
> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com
> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby
> Sent: Tuesday, March 23, 2010 10:11 AM
> To: Access Developers discussion and problem solving
> Subject: Re: [AccessD] SPAM-LOW: Re: Binding forms and controls directly
> to SQL Server
> 
> OK, I can do that.  To make a query a pass through query I set a
> property of the query?
> 
> John W. Colby
> www.ColbyConsulting.com
> 
> 
> Rusty Hammond wrote:
>> If you setup a view on SQL, you can add it as a linked table just like
>> you would a sql table.     When adding the linked table, keep
> scrolling
>> through the list until you get to your views.  Be sure to select a 
>> primary key field if you want to make updates to the data.
>>
>> For combo boxes, I'll often use a pass through query.  To filter the 
>> data of the pass through, you can just change the sql of the pass 
>> through query via code.
>>
>>
>> HTH
>>
>> Rusty
>>
>> -----Original Message-----
>> From: accessd-bounces at databaseadvisors.com
>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby
>> Sent: Tuesday, March 23, 2010 9:24 AM
>> To: Access Developers discussion and problem solving
>> Subject: Re: [AccessD] SPAM-LOW: Re: Binding forms and controls 
>> directly to SQL Server
>>
>> I know how to link to the tables, and in fact do that right now.  I am
> 
>> talking about the next step.
>>
>> If you just link to the tables, then when you try to pull two tables, 
>> join them on PK/FK, and filter, all of that work is done client-side.
>> The indexes used in joins and filters have to be sent to Access (JET),
> 
>> which in memory client-side grabs data, joins, filters etc. and 
>> finally applies the data to a combo or form.
>>
>> I want to set up SQL Server to join the two tables, apply filters and 
>> just send the DATA to Access.
>>
>> I know that this is possible, but I do not know the details, the 
>> mechanics of doing this.
>>
>> John W. Colby
>> www.ColbyConsulting.com
>>
>>
>> Darren - Active Billing wrote:
>>> Hi John
>>>
>>> Using a paradigm we all know and love Link to the tables and build 
>>> forms over these linked tables Edits are directly entered into the 
>>> SQL tables from the ACCESS Forms You can build a wrapper for the 
>>> stuff that handles the connections - but I've included it all here in
> 
>>> one function so you get the idea
>>>
>>> OK Assume You have a table named "Ledger" in SQLSVR - Assume I have 
>>> form called frmLedgerItems in my Access dB that I want to be the 
>>> interface to this SQL table
>>>
>>> Also - You get the relevant data for your combos the same way - It's 
>>> very quick and very easy
>>>
>>> Now I don't claim to know a lot about this stuff so those who know 
>>> can
>>> look at this stuff and point out better ways to do it I'm sure
>>>
>>> Got the Transferdatabase tip this from Stuart By the way
>>>
>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
>>> Private Sub ps_GetLedgerItems()
>>>
>>> On Error GoTo Err_
>>>
>>> Dim stDocName As String
>>>
>>> Dim strUserID As String
>>> Dim strPassword As String
>>>     
>>> Dim strServer As String
>>> Dim strServerIPAddress As String
>>> Dim strdBName As String
>>>
>>> Dim strODBCConn As String
>>>
>>> stDocName = "frmLedgerItems"
>>>
>>> strUserID = "UuserNameHere" ''Could be a DLOOKUP strPassword = 
>>> "passwordHere" ''Could be a Dlookup
>>>
>>> strServer = DLookup("[DefaultServer]", "tblClients", "ClientID = " &
>>> Forms!frmClients!txtClientID)
>>>
>>> strServer = Trim(strServer)
>>> strServerIPAddress = DLookup("[ServerIPAddress]", "tblServers", 
>>> "ServerName = '" & strServer & "'") strdBName = 
>>> DLookup("[DatabaseName]", "tblClients", "ClientID = " & Forms!
>>> frmClients!txtClientID)
>>>
>>>
>>> strODBCConn = "ODBC;Description=Test Connection;DRIVER=SQL 
>>> Server;SERVER=" & strServerIPAddress & ";APP=Microsoft Data Access 
>>> Components;DATABASE=" & strdBName & ";UID=" & strUserID & ";PWD=" & 
>>> strPassword & ";Trusted_Connection=no"
>>>
>>> 'I connect to many SQL Server dBs so I need to always get the 'right
>> one'
>>> 'So I delete the link to any previous table DoCmd.DeleteObject 
>>> acTable, "tbl_ledger"
>>>
>>> DoCmd.TransferDatabase acLink, "ODBC Database", strODBCConn, acTable,
> 
>>> "ledger", "tbl_ledger", False
>>>
>>> DoCmd.OpenForm stDocName
>>>
>>> Exit_:
>>>     Exit Sub
>>>
>>> Err_:
>>>
>>>     MsgBox Err.Number & " " & Err.Description, vbCritical, "error in 
>>> ps_GetLedgeritems"
>>> End If
>>>
>>> Resume Exit_
>>>     
>>> End Sub
>>>
>>>
>>> -----Original Message-----
>>> From: accessd-bounces at databaseadvisors.com
>>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby
>>> Sent: Wednesday, 24 March 2010 12:12 AM
>>> To: Access Developers discussion and problem solving
>>> Subject: [AccessD] Binding forms and controls directly to SQL Server
>>>
>>> Guys,
>>>
>>> One thing I have always wanted to learn is how to bind Access objects
> 
>>> directly to SQL Server.  Does anyone out there do this and would you 
>>> be willing to assist me in figuring this out.
>>>
>>> My billing database is in SQL Server.  SQL Server 2008 is running 
>>> directly on my laptop and the database files are on my laptop.  I 
>>> know
>>> some stuff about SQL Server but there is a bunch that I don't know.  
>>> I
>>> tend to know the "data side" but not know the admin side.  I can 
>>> create tables, indexes, views and stored procedures.  I have never 
>>> created a stored procedure that returned a result set, only SPs that 
>>> return an integer, and also (from C#) SPs that have Output Parameters
> 
>>> for things like ErrorNo and ErrorDescr and NoOfRecsAffected.  Stuff 
>>> like that.
>>>
>>> So, what do I do to:
>>>
>>> 1) Cause combos to pull their data from SQL Server.  Do I create a 
>>> view on the server side?  If so how do I then cause Access to see the
> 
>>> view and use that for the combo.
>>> 2) Pass parameters to the server side so that (for example) I could 
>>> filter a combo to only display products for a specific client.
>>> 3) Cause forms to pull data from sql server such that the forms are 
>>> able to see and edit the data, but bound to something (a view?) out 
>>> in
>>> sql server so that SQL Server "does the work" of narrowing down the 
>>> data displayed.
>>>
>>> Let's take a reasonable simple example.
>>>
>>> I have a "time sheet form".  This form has a pair of controls which I
> 
>>> can use to set from / to dates so that by default when opened the 
>>> form
>>> displays this week's time entries.
>>> However I can set dates
>>> for any time period and display the time records that match that to /
> 
>>> from filter.
>>>
>>> I have a Client Product combo that displays only products for 
>>> currently active Clients and currently active products for those 
>>> clients.  Thus that combo pulls data from the client and product 
>>> table, filtered on the active flag of both.
>>>
>>> I have a work category combo that pulls data from a table which is 
>>> essentially the product / bill rate, so once a client is selected, a 
>>> filtered (by client) product is selected, and then a filtered (by
>>> product) work category is selected.
>>>
>>> Pretty simple stuff to do directly in Access.  But how do I do this 
>>> such that SQL Server does this filtering and presents the filtered 
>>> data to the combos?
>>>
>>> I have never even looked at this stuff so I need very specific 
>>> instructions one time.  I seem to vaguely remember that I need to 
>>> build views (or SPs?) out in SQL Server, and then do a passthrough 
>>> query?
>>>
>>> Can anyone help me figure this out?  Once I do it one time I will be 
>>> off to the races.
>>>
>>> Thanks guys!
>>>
>> --
>> AccessD mailing list
>> AccessD at databaseadvisors.com
>> http://databaseadvisors.com/mailman/listinfo/accessd
>> Website: http://www.databaseadvisors.com
>> **********************************************************************
>> WARNING: All e-mail sent to and from this address will be received, 
>> scanned or otherwise recorded by the CPI Qualified Plan Consultants,
> Inc.
>> corporate e-mail system and is subject to archival, monitoring or 
>> review by, and/or disclosure to, someone other than the recipient.
>> **********************************************************************
>>
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
> **********************************************************************
> WARNING: All e-mail sent to and from this address will be received,
> scanned or otherwise recorded by the CPI Qualified Plan Consultants, Inc.
> corporate e-mail system and is subject to archival, monitoring or review 
> by, and/or disclosure to, someone other than the recipient.
> **********************************************************************
> 



More information about the AccessD mailing list