24. august 2010 - 21:13
Der er
6 kommentarer
Konvatere over til en mssql db
Jeg har en gammel acces database,som jeg godt kunne tænke mig at få over på en mssql.
Det nuværende setop er:
1: acces database hvor data ligger i.
2: acces database hvor GUI(forms) er opbygget og henter data fra db1.
Jeg kan se det ser ud til at der er inbyggede værktøjer til dette i acces(2000 og frem efter), til at flytte data over.
Vil man kunne flytte data fra db1 over til en mssql database, ogbagefter sige at DB2 skal hente data fra en mssql istedet for db1.
Grunden til jeg gerne vil dette, er at viderudvikling af systemet vil være nemmere at gøre fra en mssql,hvis det f.eks. skal kobles op på .net i fremtiden.
Slettet bruger
25. august 2010 - 12:15
#5
Inden du gør det, så sørg som minimum for at du har et autogeneret id nr som primær nøgle i alle tabeller. Derefter skal du have de relevante id numre ind i alle forespørgsler, som skal være opdaterbare.
Når du så har upsized, så connecter du således:
Function AttachDSNLessTable(stLocalTableName As String, stRemoteTableName As String, stServer As String, stDatabase As String, Optional stUsername As String, Optional stPassword As String)
On Error GoTo AttachDSNLessTable_Err
Dim td As TableDef
Dim stConnect As String
For Each td In CurrentDb.TableDefs
If td.Name = stLocalTableName Then
CurrentDb.TableDefs.Delete stLocalTableName
End If
Next
If Len(stUsername) = 0 Then
'//Use trusted authentication if stUsername is not supplied.
stConnect = "ODBC;DRIVER=SQL Server;SERVER=" & stServer & ";DATABASE=" & stDatabase & ";Trusted_Connection=Yes"
Else
'//WARNING: This will save the username and the password with the linked table information.
stConnect = "ODBC;DRIVER=SQL Server;SERVER=" & stServer & ";DATABASE=" & stDatabase & ";UID=" & stUsername & ";PWD=" & stPassword
End If
Set td = CurrentDb.CreateTableDef(stLocalTableName, dbAttachSavePWD, stRemoteTableName, stConnect)
CurrentDb.TableDefs.Append td
AttachDSNLessTable = True
Exit Function
AttachDSNLessTable_Err:
AttachDSNLessTable = False
MsgBox "AttachDSNLessTable encountered an unexpected error: " & Err.Description
End Function
Public Function ConnectAll()
Call AttachDSNLessTable("TabelNavnAccessDb", "dbo.tabelNavnSqlServer", "Servernavn eller ip", "SqlDatabaseNavn", "SqlDbBrugernavn", "SqlDbPassword")
End Function
..som du nok bemærker, så skal der oprettes en bruger med de relevante rettigheder til din db på SQL serveren!~)