Je bent nu offline; er wordt gewacht tot er weer een internetverbinding is

PRB: Geen huidige Record fout In VB als Database is leeg

BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.

De Engelstalige versie van dit artikel is de volgende: 106494
Dit artikel is gearchiveerd. Het wordt aangeboden in de huidige vorm en wordt niet meer bijgewerkt.
Symptomen
Als een data-besturingselement en de tekst in zijn beide gebonden aan een lege tabel in eendatabase, te klikken op de pijlen gegevens besturingselement geeft deze fout:
Geen huidige Record

Deze fout treedt ook op als u tekst in het tekstvak invoeren en uitvoerende methode AddNew of bewerken terwijl u de databasetabel is leeg.

Het programma heeft problemen herstellen door de periodieke 'geen huidigeRecord"fouten. De instructie On Error niet deze fout onderscheppen.
Oorzaak
Het programma weet niet in de tabel is leeg totdat de automatische recordupdate plaatsvindt. Automatische record update vindt plaats wanneer u de gegevens opbesturingselement pijl of u tekst in het tekstvak invoeren en uitvoeren van een AddNewof methode bewerken.

Wanneer de tabel niet leeg is automatische update is een leuke functie, maarWanneer de tabel leeg is veroorzaakt de automatische update geen huidige recordfout. Het foutbericht verschijnt omdat de onderliggende recordset bevatgeen records.

AddNew een huidige record maken voordat u iets moet worden uitgevoerdwaardoor een record automatisch bijwerken.
Workaround
U kunt dit probleem omzeilen uitvoeren van de methode AddNew op een legetabel van de database voordat u de gebruiker op het besturingselement of invoerentekst in het besturingselement afhankelijk tekstvak. Stel bijvoorbeeld de eigenschap Enabledvoor het besturingselement en het besturingselement op False aan het begin van deprogramma. Vervolgens kunt u afdwingen dat de gebruiker een opdracht op die knopde methode AddNew uitgevoerd voordat u de tekst en besturingselementen.
Status
Dit gedrag is inherent aan het ontwerp. Dit ontwerp is onder revisie en zalvoor verbetering in een toekomstige versie beschouwd.

Meer informatie

Een leeg Microsoft Access-Database maken

Voordat u bijvoorbeeld 1 of 2 hieronder weergegeven, maakt u een lege database doorin Visual Basic de volgende stappen:
  1. Open het programma Data Manager door deze te kiezen in het menu venster op Visual Basic of door DATAMGR.EXE uit Windows Bestandsbeheer.
  2. Nieuwe Database in de Data Manager kiezen in het menu bestand en Selecteer Access 1.1.
  3. Klik op de knop Nieuw en tbl1 opgeven voor de naam van de tabel.
  4. Klik op de knop ontwerpen. Klik vervolgens op de knop toevoegen. Voer fld1 voor de Naam en selecteer geheel getal voor het Type veld.
  5. Microsoft Access-database met de naam TEST1 opslaan.MDB. Sluiten de Data Manager.

Voorbeeld 1: Stappen reproduceren gedrag van een besturingselement gebruiken

  1. Start een nieuw project in Visual Basic. Form1 wordt standaard gemaakt.
  2. De lege Microsoft Access-database (TEST1.MDB) zoals beschreven hierboven.
  3. De volgende besturingselementen toevoegen en stel de volgende eigenschappen:
       Control Name  Property       New Value         NOTE   ------------------------------------------------------------------------   Data1         DatabaseName   C:\VB\TEST1.MDB   Empty MDB created above.   Data1         RecordSource   tbl1              Table name.   Text1         DataSource     Data1             Name of data control.   Text1         DataField      Fld1              Field name.   Command1      Caption        "Press for AddNew"						
  4. Voeg de volgende code in de gebeurtenisprocedure klikken van Command1:
       Sub Command1_Click ()      data1.Recordset.AddNew      text1.SetFocus   End Sub						
  5. Kies Start (ALT, R, S) uitvoeren in het menu of druk op F5 uitvoeren het programma.
  6. De volgende krijgt het geen huidige record fout:

    1. Klik op de pijlknoppen op het besturingselement.
    2. Tekst invoeren in het tekstvak en klik op de opdrachtknop.
    Merk op dat als u het programma opnieuw op de knop Command1 eerst en voer vervolgens tekst in het tekstvak Text1, klikt u vervolgens op een van de pijlknoppen op het gegevensbesturingselement zonder de fout ophalen.

Voorbeeld van een oplossing

Als u dit probleem wilt omzeilen, stelt u de eigenschap ingeschakeld voor de tekst enbesturingselementen gegevens op False tijdens het ontwerpen of in de belasting voor deformulier. De volgende vervolgens toevoegen aan de bovenkant van de procedure Command1_Clickvoordat de AddNew:
   Data1.enabled = True   Text1.enabled = True				

Hiermee voorkomt u dat de gebruiker automatisch een lege database dus bijwerkende geen huidige record fout vermijden.

Voorbeeld 2: Stappen met objectvariabelen gedrag te reproduceren

  1. Start een nieuw project in Visual Basic. Form1 wordt standaard gemaakt.
  2. De lege Microsoft Access-database (TEST1.MDB) zoals beschreven hierboven.
  3. Een opdrachtknop toevoegen. Voer 'Press-Test' als de eigenschap bijschrift.
  4. Voeg de volgende code in de sectie met algemene declaraties van Form1:
       Dim db As database   Dim ds As dynaset						
  5. Voeg de volgende code in de gebeurtenisprocedure klikken van Command1:
       Sub Command1_Click ()      Set db = OpenDatabase("TEST1.MDB")      Set ds = db.CreateDynaset("tbl1")      ' Execute the following line to work around problem:      ' ds.AddNew      If IsNull(ds(0)) Then  'The No Current Record error occurs here         Print "No entry"      Else         Print ds(0)      End If   End Sub						
  6. Kies Start (ALT, R, S) in het menu uitvoeren of druk op F5 het programma uitvoeren.
Toevoegen om de fout te corrigeren, de lijn ds.AddNew in een opmerking hierboven weergegeven.
Referenties
Meer informatie vindt in het menu Help van Visual Basic. Neehuidige record fout wordt beschreven in de Visual Basic Help-onderwerp 'gegevensFoutberichten Access". Hier wordt de beschrijving:
Geen huidige record. Fout 3021.
Deze fout treedt op na de mislukte toepassing van de FindFirst, FindLast, FindNext, FindPrevious, methoden of de methode Seek of wanneer de onderliggende recordset geen records bevat. Verplaatsen naar of selecteren een record en probeer de bewerking opnieuw.

De volgende, in het Help-onderwerp voor AddNew in Visual is paraphrasedBasic:
De methode AddNew wist de kopiebuffer voorbereiding voor het maken van een nieuwe record in een tabel of Dynaset. AddNew stelt alle velden in de kopie Null-buffer en de huidige record. Na het plaatsen van gegevens de record kunt u de methode Update toevoegen van de record die de Recordset. Update automatisch met een besturingselement wordt aangeroepen als een Bewerken of AddNew-bewerking is in behandeling zoeken een of Methoden verplaatsen.
3,00

Waarschuwing: dit artikel is automatisch vertaald

Eigenschappen

Artikel-id: 106494 - Laatst bijgewerkt: 12/04/2015 09:49:15 - Revisie: 4.0

Microsoft Visual Basic 3.0 Professional Edition

  • kbnosurvey kbarchive kbprb kbmt KB106494 KbMtnl
Feedback