ADODB-kodfel i Access när du använder datatypen adBigInt

Anteckning

Office 365 ProPlus byter namn till Microsoft 365-appar för företag. Mer information om den här ändringen finns i det här blogginlägget.

Symptom

I Microsoft Access för Office 365 och Microsoft Access 2019 kan du stöta på följande felmeddelanden i ADODB-koden för Visual Basic for Applications (Visual Basic for Applications) som refererar till datatypen adBigInt:

  • Det angivna värdet är inte giltigt för det här fältet.
  • För få parametrar. Förväntat x.
  • Det finns inte tillräckligt med minne resurser för att slutföra åtgärden.

Orsak

Det här problemet uppstår eftersom Access för Office 365 och Access 2019 införde stödet för datatypen Stort tal.

I tidigare versioner av Access konverterades adBigInt-värden till strängar. Med stödet för datatypen Stort tal mappas nu adBigInt till ett binärt värde i Access.

I olika ADODB-metoder måste du ange den datatyp som du använder. I tidigare versioner av Access kan koden köras korrekt även om du inte använder kompatibla datatyper eftersom de konverteras till strängar. Men nu kanske du ser något av de felmeddelanden som beskrivs i avsnittet Symptom med stöd för datatypen Stort tal.

Exempel 1:

Anta att du har två ADODB-postuppsättningsobjekt där RS! MittID definieras som adInteger och RS2! MyID definieras som adBigInt. Om du försöker ställa in RS! MyID = RS2! MittID: du kommer att stöta på ett felmeddelande på grund av stödet för datatypen Stort tal.

Exempel 2:

Anta att du försöker köra ett ADODB-kommandoobjekt. Om du skapar en parameter som använder adBigInt men sedan använder den parametern mot ett fält med en mindre datatyp visas ett felmeddelande.

Lösning

Lös problemet genom att ändra ADODB-koden så att den använder den datatyp som bäst matchar datatypen för det underliggande objektet. Det gör du genom att använda följande guide för att välja lämplig datatyp i ADODB.

Datatypen Access ADODB-datatyp
Tal adInteger
Stort tal adBigInt

Behöver du fortfarande hjälp? Gå till Microsoft Community.