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

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 106494 - Bekijk de producten waarop dit artikel van toepassing is.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Symptomen

Als een data-besturingselement en de tekst in zijn beide gebonden aan een lege tabel in een database, 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 uitvoeren de methode AddNew of bewerken terwijl u de databasetabel is leeg.

Het programma heeft problemen herstellen door de periodieke 'geen huidige Record"fouten. De instructie On Error niet deze fout onderscheppen.

Oorzaak

Het programma weet niet in de tabel is leeg totdat de automatische record update plaatsvindt. Automatische record update vindt plaats wanneer u de gegevens op besturingselement pijl of u tekst in het tekstvak invoeren en uitvoeren van een AddNew of methode bewerken.

Wanneer de tabel niet leeg is automatische update is een leuke functie, maar Wanneer de tabel leeg is veroorzaakt de automatische update geen huidige record fout. Het foutbericht verschijnt omdat de onderliggende recordset bevat geen records.

AddNew een huidige record maken voordat u iets moet worden uitgevoerd waardoor een record automatisch bijwerken.

Workaround

U kunt dit probleem omzeilen uitvoeren van de methode AddNew op een lege tabel van de database voordat u de gebruiker op het besturingselement of invoeren tekst in het besturingselement afhankelijk tekstvak. Stel bijvoorbeeld de eigenschap Enabled voor het besturingselement en het besturingselement op False aan het begin van de programma. Vervolgens kunt u afdwingen dat de gebruiker een opdracht op die knop de methode AddNew uitgevoerd voordat u de tekst en besturingselementen.

Status

Dit gedrag is inherent aan het ontwerp. Dit ontwerp is onder revisie en zal voor 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 door in 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 en besturingselementen gegevens op False tijdens het ontwerpen of in de belasting voor de formulier. De volgende vervolgens toevoegen aan de bovenkant van de procedure Command1_Click voordat de AddNew:
   Data1.enabled = True
   Text1.enabled = True
				

Hiermee voorkomt u dat de gebruiker automatisch een lege database dus bijwerken de 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. Nee huidige record fout wordt beschreven in de Visual Basic Help-onderwerp 'gegevens Foutberichten 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 paraphrased Basic:
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.

Eigenschappen

Artikel ID: 106494 - Laatste beoordeling: vrijdag 6 juli 2012 - Wijziging: 4.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Visual Basic 3.0 Professional Edition
Trefwoorden: 
kbprb kbmt KB106494 KbMtnl
Automatisch vertaald artikel
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
Vrijwaring inhoud KB-artikelen over niet langer ondersteunde producten
Dit artikel heeft betrekking op producten waarvoor Microsoft geen ondersteuning meer biedt. Daarom wordt dit artikel alleen in de huidige vorm aangeboden en wordt het niet meer bijgewerkt.

Geef ons feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com