# Migrating from Microsoft Access

Microsoft Access is <span class="title-ref">database</span> software that runs on Windows and is part of specific versions of Office. It is often used to create specialized in-house <span class="title-ref">database</span> applications. But Access cannot create real, stand-alone applications. If you have an Access application and are running into its limitations, Xojo is a great choice to take your application to the next level.

## Similarities

Access has a form designer, <span class="title-ref">database</span> designer and a programming language (VBA: Visual Basic for Applications).

Xojo has all these components as well, but expands on each of them. Xojo has a form designer with many more controls than Access provides and Xojo allows you to layout your user interface any way you want. It uses SQLite as its built-in <span class="title-ref">database</span> and has a <span class="title-ref">database</span> designer for designing your tables. And of course, Xojo has a much more robust programming language.

## Migrating

Migrating an Access application is typically a three-step process where you migrate the <span class="title-ref">database</span> itself, the forms that are used to manipulate the data and the source code.

### <span class="title-ref">Database</span>

When migrating a Microsoft Access application, you first need to consider the <span class="title-ref">database</span>. If you are using the Access “Jet” <span class="title-ref">database</span> engine, you will most likely want to migrate it to another <span class="title-ref">database</span> engine. Although you can connect to a Jet <span class="title-ref">database</span> using `ODBC</api/databases/odbcdatabase>` or ADO on Windows, Jet is not a cross-platform <span class="title-ref">database</span> format. On a Mac you can only connect to a Jet <span class="title-ref">database</span> using ODBC in read-only mode.

Your best option in this case is to use `SQLite</api/databases/sqlitedatabase>`, which is much faster than the Access Jet <span class="title-ref">database</span> and is fully cross-platform. You can easily migrate your <span class="title-ref">database</span> tables and data from an Access <span class="title-ref">database</span> to SQLite. This can be done using ODBC, ADO or a variety of 3rd party products.

If your Access <span class="title-ref">database</span> is connecting to another <span class="title-ref">database</span> as its data source, then you can use the `ODBCDatabase</api/databases/odbcdatabase>` class and an ODBC driver to connect. Or you can use Xojo's built-in support for `PostgreSQL</api/databases/postgresqldatabase>` and `MySQL</api/databases/mysqlcommunityserver>`.

### Forms

Your Access forms are likely used to edit data in tables. You can recreate these forms as Windows, Web Pages or Views (iOS) in your Xojo application.

### Source code

Access is programmed using the Visual Basic for Applications language which is quite similar to the Xojo programming language. You will have to rewrite your code, but at the same time will find the Xojo programming language to be familiar in its syntax and commands.

## Learn more

To learn more about Xojo and how you can use it to replace Microsoft Access, check out these topics:

- `Getting Started</getting_started/index>`
- `Desktop App Tutorial</getting_started/tutorials/desktop_tutorial>`
- `Web App Tutorial</getting_started/tutorials/web_tutorial>`
- `iOS App Tutorial</getting_started/tutorials/ios_tutorial>`
- `Android App Tutorial</getting_started/tutorials/android_tutorial>`
- `DBKit Tutorial</getting_started/tutorials/dbkit_desktop_tutorial>`
