tabelmaakquery

Status
Niet open voor verdere reacties.

allard1977

Gebruiker
Lid geworden
7 feb 2011
Berichten
215
Beste,

Ik heb een tabel maak query, met een aantal sorteer volgordes. nu heb ik het probleem dat hij zo nu en dan spaak loopt en niet meer doet wat er gevraagd wordt. Als ik dan een paar velden verwijder en er opnieuw in zet of hem helemaal opnieuw maak gaat alles weer goed.
zo kan het zijn dat het de ene dag alles perfect werkt en de andere dag loopt het mis. zonder dat er nog geprogrammeerd is in het programma, alleen opnieuw opstarten van database.

Heeft iemand hier meer ervaring mee.

alvast heel erg bedankt.

Groetjes Allard
 
Je probleem zegt me niks, en zonder voorbeeldje kan ik er ook weinig van zeggen. Ik zou in ieder geval de sortering weglaten, want een tabel in Access kent nu eenmaal geen sortering. Dat is nu net een belangrijke eigenschap van een relationele database :). Sortering is niks anders dan een weergave. Hooguit zie je de 'sortering' terug in een Autonummerveld. Maar ach, wat boeit er nu aan een autonummer?
 
voorbeeld.

Voorbeeld geven is erg moeilijk zit namelijk in een grotere database.

Maar het is een tabel maak query. die geselecteerde records volgens een criteria in een gesorteerde tabel zet waarna er een VBA code van boven af gaat nummeren. Het is voor een honden show evenement. Waar de klassen in bepaalde volgorde moeten starten.

groet
 
Ik herhaal mijn tegenvraag: waarom zou je een tabel maken met een sortering? Nergens voor nodig. Kijk eerst eens of de tabelmaakquery het wel goed doet als je de data er 'plat' ingooit. Een klasse zou een veld moeten zijn met een waarde, en sorteren op dat veld kan altijd in een query.
 
waarom tabel.

Ik maak de tabel om een volgorde te maken.

met deze code wordt er genummerd.
Code:
Private Sub stap2show_Click()
On Error GoTo Err_btn_NummersToekennen_Click

Dim oRst As DAO.Recordset
Dim oDb As DAO.Database
Dim L As Integer

    Set oDb = CurrentDb
    Set oRst = oDb.OpenRecordset("T007_HondenummerstekennenMT", dbOpenTable)

    While Not oRst.EOF
    
      L = L + 1
      oRst.Edit
      
    'If l < 10 Then
    oRst.Fields("hondnr").Value = L
      'End If
      oRst.Update
      oRst.MoveNext
    Wend

    oRst.Close
    oDb.Close
    Set oRst = Nothing
    Set oDb = Nothing
Exit Sub

Err_btn_NummersToekennen_Click:
    MsgBox Err.Description
    
    
End Sub

groet allard
 
Da's een simpele functie die niet fout zou mogen gaan. Maar zit hier het probleem dan?
 
Ik snap nog steeds niet wat je wilt, maar omdat Access (zoals ik al heb uitgelegd) een relationele database is en de gegevens dus opslaat in niet-gestructureerde verzamelingen krijg je een andere recordvolgorde. Veel beter is het om geen tabelmaak query te gebruiken, maar een Toevoegquery. Dan kun je ook het veld [persoonsnr] omzetten naar een Numeriek veld (is nu ten onrechte AutoNummer) en een veld HondID toevoegen van het type autonummer. Als je dan de Tabelmaak omzet naar een Toevoegquery, krijg je keurig de tabel in de sortering die je wilt met oplopende nummers in HondID waar je nu de functie voor nodig hebt.

Enige opmerking: je moet dus, als je de tabel vaker nodig hebt, ook een Delete query maken die de tabel leegmaakt. En als je het HondID met 1 wilt laten beginnen, moet je na het leegmaken de tabel comprimeren.
 
oke, de fout snap ik nu. Zoals ik het deed was het soms puur geluk dat hij in volgorde stond.
toevoegquery maken en delete query maken lukt ook.

maar een tabel comprimeren heb ik nog nooit gedaan. heeft misschien een beginnetje voor mij.

groet Allard
 
Je comprimeert de database, en die knop staat op de Bestand pagina. Daarmee wordt de db opgeschoond, en het Autonummerveld gereset.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan