Gå til innhold

Sletting av post i en Random Acces fil...


Anbefalte innlegg

hehe, eg har problemer med og lsetta posten i en random access fil, og har null peiling på koffer det ikkje virke... trenge nogen hint;)

 

Sub SaveProducts(ByVal FileName As String)
Dim iNumber As Long
Dim sBuffer, sBuffer2 As String
Dim pProduct As tProduct
   On Error GoTo Err
   If Dir(FileName) Then VBA.Kill FileName
   Open FileName For Random As #1 Len = Len(pProduct)
   'Save stuff...
   For iNumber = 0 To lstProducts.ListCount - 1
       sBuffer = lstProducts.List(iNumber)
       pProduct.ProductName = Left(sBuffer, 24)
       pProduct.ProductPrice = Right(sBuffer, Len(sBuffer) - 24)
       Put #1, iNumber + 1, pProduct
   Next iNumber
   Close #1
Err:
End Sub

Nogen ide om koffer filen ikkje blir sletta/oppdatert?

Lenke til kommentar
Videoannonse
Annonse

ok, for og oppdatera en random access fil e du nødt og sletta den aktuella filå for så og laga ein ny fil med alle postene utenom den som du har fjernet og så skrive den nye filå til disken.. problemet mitt e at programmet NEKTE og sletta den gamle filå, og derfor kan eg heller ikkje sletta en post:(

Lenke til kommentar

nei, eg får ikkje feilmelding og eg e sikker på at filå ikkje e opna...:(

 

Fra MSDN:

To remove a deleted record in a random-access file

 

1: Create a new file.

 

 

2: Copy all the valid records from the original file into the new file.

 

 

3: Close the original file and use the Kill statement to delete it.

 

 

4: Use the Name statement to rename the new file with the name of the original file.

Lenke til kommentar

If Dir(FileName) Then VBA.Kill FileName

Ok, nå får eg en error "Type Mismatch"??? any idea?

Sub SaveProducts(ByVal FileName As String)
Dim iNumber As Long
Dim sBuffer, sBuffer2 As String
Dim pProduct As tProduct
   On Error GoTo Err
   If Dir(FileName) Then VBA.Kill FileName
   Open FileName For Random As #1 Len = Len(pProduct)
   'Save stuff...
   For iNumber = 0 To lstProducts.ListCount - 1
       sBuffer = lstProducts.List(iNumber)
       pProduct.ProductName = Left(sBuffer, 24)
       pProduct.ProductPrice = Right(sBuffer, Len(sBuffer) - 24)
       Put #1, iNumber + 1, pProduct
   Next iNumber
   Close #1
   Exit Sub
Err:
   MsgBox "Error: " & Error, vbCritical, "Error!"
End Sub

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...