I have a scheduling software that has a database of clients, client pets, pets grooming styles, appointments and invoices.
The generic reports that are given with the software are not giving me the information that I need to go. Support from the software company is telling me to use Access to build the reports that I require.
I am not seeing how to connect to the software's DB to use in Access to generate my custom reports.
Any help or links to the information for this would be greatly appreciated.
Thanks in advance everybody
One of MS Access' unique features is connecting to external RDBMs' ( SQL Server, Oracle, Postgres, MySQL, SQLite) in complement to its default Jet/ACE SQL Engine. In fact, Access can connect to any other ODBC-compliant system even Quickbooks or your software assuming it has an ODBC API.
An .MDF is a SQL Server main database file but usually you do not connect directly to the file but the server instance. Most likely, you are required to connect Access to the SQL Server database the software sits on. In fact, you will be doing what the software does: connect to a backend database. No software or web/mobile app is without a database or data store of some kind.
MS Access backend setup is very easy with many online tutorials:
Find the SQL Server instance and all needed credentials (server address or host, port, schema, user, password).
Be sure to have an installed ODBC Driver (usually already available if SQL Server is installed) or check if software has a pre-defined DSN. Free MSSQL ODBC downloads are available online. Open odbcad32.exe to see current computer driver/DSN installs.
In a saved Access .accdb/.mdb database, under External Data tab in MSAccess.exe, click ODBC database (globe icon) where you walk through a wizard to connect to aforementioned Driver or DSN (machine or user). You can either import tables or link live tables which upon successful connection will prompt you to select the database tables.
From there you can use linked tables like any other local table within MS Access including forms, reports, macros, and modules.
In fact, knowing the ODBC connection you can work in most programming languages that maintain database APIs including Python, PHP, R, Perl, Java, C#, VB, even your everyday MS Excel to interact with scheduling software's data.
Related
How can I deploy Access applications to multiple companies, with linked tables to SQL Azure servers?
I'm planning to deploy the Access programs with Microsoft Access runtime, and I'm assuming that I'll need to include the odbc drivers as well? Is there a way to automatically have Azure create a new server when a company signs into my website and downloads a program, and have the Access program link to it? And is there a way to get around the IP address settings in Azure as well? Because companies will be using the programs on multiple PCs. Or is it possible to utilise that and charge per PC?
If you distribute the application pre-linked, then the user should not have to do anything to consume the data.
When using Access with SQL server you can in general use the standard windows built in SQL driver. However in the case of Azure you do need to download + install the native 11 drivers (so I recommend you use that driver during development and setup).
You can also have code include to re-link to the sql server, but as noted, if your application is “already” linked, then you really don’t have to do anything on application startup. Such re-linking would not be required every time the application starts, but only a “one time” re-link is required say if you’re going to change the database, or perhaps the user logon. How to re-link (DSN less) is outlined here:
http://www.accessmvp.com/DJSteele/DSNLessLinks.html
As noted, you really don’t need the above.
As for IP restrictions, in the Azure setup you can turn off such restrictions if you need a connection that will occur from any location, but that does open up a security hole. (when you first create the SQL database you will be prompted for firewall rules).
All of the above assumes you been developing that Access application with SQL server as the back end (you can even use the free edition of SQL express for development on your local machine).
Last but not least:
Because your connection is occurring OVER the internet, then you speed will be MANY times slower then using a local server. Read the following article to get a “grasp” of this speed difference:
http://www.kallal.ca//Wan/Wans.html
So MUCH additional work is required in Access to obtain good performance when your connection is OVER the internet as opposed to SQL server running on your local network.
I have not found enough information about this online but I am sure that is possible. I want to have a vb.net application in my computer and connect to a database in my hosting to add records.
Also, I want to access the database online to see those records from away from home. Kind of like having my own phone book online in my hosting..
Can someone point me in the right direction.
1. Do I use access or mysql?
2. Do I set up the connection string using a ftp or something different?
3. I want to develop in asp.net
Thanks to all
Access is probably not a good fit, as it is not really reliable across an Internet connection, so I would go with MySQL. Unless you want to consider SQL Server, which has better out-of-the-box support in Visual Studio.
For a server-based database (MySQL or SQL Server), your connection string will include the server address provided by your host and possibly a port. If you insist on using a file-based database (Access or SQL Server CE), the database will probably be on a shared folder on the host, and the connection string will include the path to that shared folder.
If you are developing in ASP.NET, your host may limit your choice of database.
I understand that SQLite3 does not operate under the client-server database application model, so I was wondering how one would actually connect to a "running" database server with a SQLite3 back.
Meaning if I were to have a database server running on Linux with a SQLite3 back, how would clients connect to this server? Would I have to use another RDBMS?
Thanks,
Jake
You don't have any database server running SQLlite3. You can just have applications using SQLlite3 (there is no client - server protocol involved). The data is in some files accessed by the libsqlite3 library linked inside the application. (so the data is local to the system running that application).
So by definition you cannot connect to a SQLlite3 database server. Such thing don't exist.
Read the http://www.sqlite.org/ front-page, which starts with
SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine.
And the wikipage sqllite
If you want to have a database server (with external, possibly remote, applications interacting thru a client-server protocol with it) switch to PostGreSQL, MariaDB, etc...
Clients that connect to SQLite "server" just use API that looks like connection. Library for "connection" is embedded into application.
We have two Sql 2008 R2 database. First and main one is on-premise which is used by our stock management and accounting systems.
The second is for our web site and it is on a 3th party hosting firm and that database is updated manually by a standard XML file operation
(creating XML from on-premise database, sending it to web server, reading from XML file & insert/update/delete web database)
we need to get rid of that manual XML operation and sync that two databases automatically, but problem is our hosting firm does not allow "Replication" or "Linked Server" facilities on their "Sql Server" system. That's way we can not sync databases with these "Sql Server" facilities.
I am trying find out sync alternatives for that scenario without changing the hosting system.
What options can we use ?
Is Microsoft Sync Framework can be used for this scenario? ( I'm not sure if it is just for the Microsoft Azure Sql system)
Thanks…
if you're fine coding, then Sync Framework can do this.
Sync Framework can sync SQL Compact, Express, Server, Azure or LocalDB
But bear in mind that Sync Framework will need to create some Sync-related objects on your databases (triggers, stored procedures, tables, etc...)
It sounds like you need a hosting provider that provides these services.
It is typical for a hosting provider to provide an on-demand or always VPN connection to the production servers from the client location to the servers at the hosting location. Such a service is often needed for support of online systems. If you had such a connection then having SQL Server do syncs would be no problem.
Any major (Rack Space, Peer1, etc) provider would be able to set up such a system.
It probably won't be as inexpensive as your current provider.
Well if changing a provider is not an option, at list in the short term and you need something right now, you can always automate parts or all your current process.
For that you can at least use:
PowerShell (or even plain old cmd.exe) script(batch) and bcp.exe to export and import your files on both ends and PowerShell and ftp to transfer your files from one server to another.
SQLServer Integration Services on premises to export and send files via ftp to your hosting location. And SSIS to grab and import those files at your hosting location.
We have some Web services (written in .NET WCF) that currently hit a Microsoft SQL Server database to retrieve/update data. We now have a requirement to also retrieve/update data from a Microsoft Access database. The Access database is currently being used by a number of legacy systems so we can't really convert it to a Microsoft SQL server database - we're stuck with an Access database.
My question is: Is there a way we can communicate with the Access database "through" Microsoft SQL Server (so that we can issue T-SQL commands to it and MS SQL Server would handle all the underlying mapping to query the Access database?) Or is it better to just communicate with the Access database via ADO.NET by exposing the location of the Access database on a network share? Does anyone have any suggestions we could try out?
Thanks all.
What about keeping the legacy access application, but moving the tables and data out of the Access application?
Access is makes a great front end to SQL server. When you build an application with Access, just like most other development tools, you have to choose what data engine and database system you going to use with Access. Access have native support built in for the JET data engine (now called ACE). Access has native support built in for SQL server. And access 2010 not only has support built in for using SharePoint, but also SQL Auzure.
So you could consider moving the data that Access now uses to SQL server, and very little if any changes need be made to the access application. So Access application function happy if the tables are in a file (mdb or accdb file), or server based like SQL server, and in fact for tables that reside on SharePoint, Access is in fact using web services to update that data on SharePoint. However, in all cases, the standard code, forms, VBA code and even the SQL used need not be changed.
So I don't the solution here is to attempt to attach SQL server to some "file" sitting in a folder but simply have Access attached to the SQL server to update the tables, and thsu no need to "transfer" data between the systems would exist anymore.
Use a linked server:
A linked server allows for access to distributed, heterogeneous queries against OLE DB data sources. After a linked server is created by using sp_addlinkedserver, distributed queries can be run against this server.
If you're only ever running on a 32-bit platform:
EXEC sp_addlinkedserver
#server = N'SEATTLE Mktg',
#provider = N'Microsoft.Jet.OLEDB.4.0',
#srvproduct = N'OLE DB Provider for Jet',
#datasrc = N'C:\MSOffice\Access\Samples\Northwind.mdb';
Or if you have to worry about 64-bit as well:
EXEC sp_addlinkedserver
#server = N'SEATTLE Mktg',
#provider = N'Microsoft.ACE.OLEDB.12.0',
#srvproduct = N'OLE DB Provider for ACE',
#datasrc = N'C:\MSOffice\Access\Samples\Northwind.accdb';