Rusty Hammond
rusty.hammond at cpiqpc.com
Tue Mar 23 09:50:42 CDT 2010
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. **********************************************************************