Darren - Active Billing
darren at activebilling.com.au
Tue Mar 23 08:54:31 CDT 2010
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! -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com