Visar inlägg med etikett access. Visa alla inlägg
Visar inlägg med etikett access. Visa alla inlägg

16 november, 2007

Office: Access 2007 Runtime - Blank skärm

Förord
Använder ni Access 2007 Runtime för att distribuera era databaser till kunder eller annan part? Om ni testar att öppna databasen och får en blank skärm (helt tomt) så hittar ni svaret här.

Introduktion
Först ska jag tala om för er som inte vet vad en runtime är för något. En så kallad runtime är ett litet program som gör att användare av till exempel ett office program, i detta fallet Access 2007, kan använda det utan att köpa hela produkten. Men man kan bara läsa och inte göra några ändringar. Väldigt effektivt om man inte vill att något råkar ändra i databasens tabeller.

Problem
När man har installerat runtime-paketet och försöker öppna en databas brukar det för de flesta bli helt tomt. Man får alltså en helt blank skärm när man försöker köra det. Skälet till är att runtime-paketet tar bort alla knappar och menyer inklusive navigeringslisten till vänster.

I vanliga fall brukar man kunna välja vad man vill öppna i navigationslisten till vänster, men eftersom den är borttagen kan man inte välja något. Har man då inte ställt in i konfigurationen i Access att man vill att något skall visas som standard när man öppnar den får man en blank skärm.

Lösning
Applicera detta på databasen innan ni skickar i väg den för att senare köras med runtime-paketet. Denna lösning förutsätter att ni har ett formulär som interagerar med tabellerna.
  1. Klicka på Office-knappen längst upp till vänster.
  2. Klicka på knappen Access alternativ (Access options) längst ner till höger.
  3. I listan till vänster väljer ni Aktuell databas (Current database).
  4. Sedan väljer ni vilket formulär ni vill ska visas när databasen öppnas i listen Visa formulär (Display form).
Slutord
Jag själv hade jättestora problem med detta och det tog flera dagar innan jag fann en lösning på problemet. Jag löste det genom att felsöka med en exempel-databas (mall/template) som ingår i Access 2007. När jag då öppnade exemplet med runtime-paketet upptäckte jag att ett formulär öppnades automatiskt när databasen öppnades. Då började jag söka på Google efter inställningen som gjorde att utvalt formulär öppnas vid start.

Källor:
Google.com
Ladda formulär under start (engelska)

19 oktober, 2007

Databas: PHP och Access 2007

Artikeln tillägnad mig själv och alla ni som håller fast vid Access
istället för MySQL eller någon annan databaslösning.


Förord
I denna artikeln ska jag gå igenom hur man ansluter till en Microsoft Access 2007 databas av typen "accdb". Varför? För att det nästan inte finns några guider om hur man åstadkommer detta på Internet. Häng med när vi kopplar ihop ett öppen källkods projekt med en Microsoft produkt, som jag i fortsättningen hänvisar till namnet Access 2007.

Introduktion
För inte så länge sedan släpptes nya Microsoft Office 2007 och i Enterprise paketet följer Access 2007 med. Om du är utvecklare inom PHP och vill använda en databas skapad i det programmet så kan du stöta på problem. Den här artikeln hoppas jag ska lösa era problem så ni slipper få ont i huvudet för att ni inte får det att fungera. Annars kan ni ju alltid använda MySQL som ju är gratis och så mycket smidigare att använda med PHP (sök på LAMP på Google om ni vill veta mer om det).

Formatet
Tidigare har Microsoft använt MDB som filtyp för sina Access databaser men i senaste versionen används ACCDB. Några förbättringar har gjorts och säkerheten har blivit bättre än tidigare.

Installera stöd för ACCDB
Om ni vill ha stöd för ACCDB på databasservern måste den ha Office 2007 installerat eller ett smidigt litet paket som går att ladda ner gratis från Microsofts hemsida. Det är inte så vanligt att en server har Office 2007 installerat så därför ska vi hämta paketet. Navigera till nerladdningssida för Access Database Engine och klicka på Download högre upp på sidan. En stor nackdel är att det ligger på ungefär 25MB så det kan vara besvärligt att lägga till det i ett komplett installationspaket för enklare distribution.

Installera paketet på någon av Windows versionerna som stöds (exv. Windows XP) och kontrollera sedan om allt fungerar genom att öppna "Data Sources (ODBC)" i administrationsverktyg på kontrollpanelen. På fliken "Drivers" letar ni upp "Microsoft Access Driver (*.mdb, *.accdb)". Hittar ni den kan ni starta om datorn för att försäkra er om att det har installerats korrekt i registret.

Testa anslutning till ACCDB med PHP
Nu kommer vi till testning av systemet. Jag har skrivit några enkla rader i PHP som ansluter till en simpel databas skapad i Access 2007.

Kod (simple_odbc.php):

<?php
/**
* Get all tables and return them in an array
*
* @param resource $conn
* @return array $tables
*/
function odbc_get_tables(&$conn)
{
$tables = array();
$result = odbc_tables($conn) or die('Kan inte hämta tabeller!');

// Hämta alla tabeller och lagra i vektorn $tables
while (odbc_fetch_row($result)) {
if(odbc_result($result,'TABLE_TYPE')=='TABLE') {
$tables[] = odbc_result($result,'TABLE_NAME');
}
}

return $tables;
}

define('DB_PATH', 'D:/wwwroot/project/xxx');
define('DB_NAME', 'projekt_xxx.accdb');
define('DB_PASSWORD', '');

$db_conn = odbc_connect(
'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};
DBQ='. DB_PATH . DB_NAME,
'DODB.Connection',
DB_PASSWORD,
'SQL_CUR_USE_ODBC'
) or die('Kan inte ansluta till databasen!');

// Visa alla tabeller i databasen
$tabeller = odbc_get_tables($db_conn);
print_r($tabeller);

// Stäng anslutningen
odbc_close($db_conn);
?>


Inspiration till koden kommer från NinethSense där man ansluter till en vanlig MDB databas.

Slutord
Det var allt för den här gången. Hoppas ni får det att fungera utan problem.

Källor
http://www.phpbuilder.com/board/showthread.php?t=10316318
http://www.thescripts.com/forum/thread594515.html
http://blog.ninethsense.com/php/microsof-access-database-mdb-from-php/
http://aspn.activestate.com/ASPN/Cookbook/PHP/Recipe/123709
http://www.connectionstrings.com/?carrier=access2007 -- Mycket bra sida om ni har glömt hur man skapar en anslutning på någon typ av databas. Funkade dock inte för mig när jag försökte få ACCDB att fungera. Skriv gärna en kommentar till artikeln om ni får det att fungera med exemplen i källan.

Välkomna till bloggen

Välkomna ska ni vara kära besökare. Jag skriver om IT för att det är kul och för att jag vill dela med mig av information och kunskap. Jag försöker hålla bloggen så kategoriserad som möjligt för att ni enklare ska hitta intressanta länkar och artiklar.