Richard87 Skrevet 6. november 2004 Del Skrevet 6. november 2004 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
Rescudo Skrevet 6. november 2004 Del Skrevet 6. november 2004 Har null idé om hva du vil fram til... forklar litt bedre hva du mener. Lenke til kommentar
Richard87 Skrevet 6. november 2004 Forfatter Del Skrevet 6. november 2004 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
Rescudo Skrevet 6. november 2004 Del Skrevet 6. november 2004 Har ikke jobbet med access, men det virker jo snodig at man må slette hele fila for å slette en post... Lenke til kommentar
Richard87 Skrevet 6. november 2004 Forfatter Del Skrevet 6. november 2004 Dette er ikke access, bare plain file system... problemet e ganske enkelt at eg ikkje greie og sletta den orginale filå "FileName" Lenke til kommentar
aadnk Skrevet 6. november 2004 Del Skrevet 6. november 2004 Får du en feilmelding? Kan det være at filen allerede ligger åpen idet du kaller "Kill"? Lenke til kommentar
Richard87 Skrevet 6. november 2004 Forfatter Del Skrevet 6. november 2004 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
aadnk Skrevet 6. november 2004 Del Skrevet 6. november 2004 Besyndelig. Jeg har alltid benyttet meg utenlukkende av Kill-kommandoen - Name har aldri vært nødvendig. Du kan selvsagt også prøve API-kallet DeleteFile, men jeg tviler på at det vil endre situasjonen, ettersom dette er funksjonen Kill bruker for å slette filer. Lenke til kommentar
Richard87 Skrevet 6. november 2004 Forfatter Del Skrevet 6. november 2004 eg fårstår heller ingen ting.. du/dere kan ikkje se någen openbare feil med koden? ?? Lenke til kommentar
Richard87 Skrevet 7. november 2004 Forfatter Del Skrevet 7. november 2004 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
Richard87 Skrevet 7. november 2004 Forfatter Del Skrevet 7. november 2004 Ok eg fant ut av det, eg måtte bruke GetAttr(FileName) istedenfor Dir(FileName).. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå