Umstellung SQL-Datenbank von 32-bit in 64-bit
-
Hallo Gemeinde,
vorweg, ich bin relativ neu in der Thematik und halte eine bestehende SQL-Datenbank unter Verwendung von Access 2016 "am Leben". Da nun der Umstieg auf Office 356 bevor steht, habe ich über diverse Foren den Code nachfolgende anpassen können:
#If VBA7 Then Public Declare PtrSafe Function apiGetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long #Else Public Declare Function apiGetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long #End If
Über den angepassten Code werden allerdings keine Recordset mehr angezeigt, obwohl die dafür genutzten Daten der Datenbank richtig herausgezogen werden - ganz konkret, die Tabellen der Access-Oberfläche werden nicht mehr befüllt.
Public Function getSpecialRecordset(sql As String) getConnection 'MsgBox sql Set rs = New ADODB.Recordset With rs .CursorType = adOpenKeyset .LockType = adLockOptimistic .Open sql, conn End With End Function
Da ich noch recht unerfahren mit C++ und SQL-Datenbanken bin, versuche ich hier mein Glück.
Vorab vielen Dank!
-
@TobiSchneider88 Das ganze ist irgendwie weder eine SQL Frage noch eine C++ Frage. Es scheint um VBA zu drehen.
Wenn du nur den API Zugriff geändert hast, um an den Windows Username zu kommen, würde ich mal an den Stellen schauen, an denen die Funktion aufgerufen wird. Die
getSpecialRecordset
scheint damit ja erstmal nichts zu tun zu haben.P.S. Ich habe gerade mal nachgeguckt, VBA 7 ist schon seit Office 2010 und kein guter Indikator für 64 bit?
Du kannst es statt dessen mal mit
#If Win64 Then
versuchen.
Von dem, was ich gerade darüber gelesen habe, ist das eine Compiler Konstante, die das korrekte Ergebniss abhängig von der Office Version gibt.