Hej Hej Backup ? I AddNew koden kommer väl .MoveLast ge ett fel om tabbellen är tom. Tror du kan ta bort båda .MoveLast utan någon skillnad. Kommer nog att gå snabbare eftersom du inte behöver läsa alla poster. Jo jag fick ett litet felmedelande när jag använde en tom databas, jag kan altså ta bort den första movelast utan att det händer något.Nybörjarfunderingar
Jag har aldrig jobbat med databaser innan och undrar om det är säkert att använda denna koden och om det kanske finns något bättre sätt att utföra det på.
Jag vill ju inte förlora en massa data.
Public Sub Uppdate()
DatabasPath = App.Path & "\Data.mdb"
strSQL = "SELECT * FROM Firearm WHERE ID =" & TempFirearmID
Set dbVapen = OpenDatabase(DatabasPath)
Set rstResult = dbVapen.OpenRecordset(strSQL)
With rstResult
.Edit
.Fields("FirearmManu") = txtTillverkare & ""
.Fields("FirearmMod") = txtModell & ""
.Fields("FirearmCal") = txtKaliber & ""
.Fields("FirearmLot") = txtSerienummer & ""
.Fields("FirearmWeight") = txtVikt & ""
.Update
End With
rstResult.Close
dbVapen.Close
End Sub
Public Sub AddNew()
DatabasPath = App.Path & "\Data.mdb"
Set dbVapen = OpenDatabase(DatabasPath)
Set rstResult = dbVapen.OpenRecordset("Firearm")
With rstResult
.MoveLast
.AddNew
.Fields("FirearmManu") = txtTillverkare & ""
.Fields("FirearmMod") = txtModell & ""
.Fields("FirearmCal") = txtKaliber & ""
.Fields("FirearmLot") = txtSerienummer & ""
.Fields("FirearmWeight") = txtVikt & ""
.Update
.MoveLast
End With
rstResult.Close
dbVapen.Close
End Sub
MVH
RobbanSv: Nybörjarfunderingar
det ser bra ut
>.Fields("FirearmManu") = txtTillverkare & ""
Du får snabbarae access om du skriver
.Recordset(10) dvs adressera kolumnen med dess nr
Givetvis tar du backup när du experimenterar.
mvh
SvenSv: Nybörjarfunderingar
Jag har inte mer än 4 poster i databasen så det har jag inte tänkt på.
Det är ingen ide att adressera kolumnerna än för jag kanske lägger till någon kolumn eventuellt flyttar den men tack för tipset.Sv: Nybörjarfunderingar
Du kan ju också testa att öppna en fråga till tabellen som inte retunerar några poster t.ex. "SELECT * FROM TableName WHERE (False)" alt. "SELECT * FROM TableName WHERE (True = False)"
Men har för mig att det går snabbare att öppna ett Tabel recordseten vilket görs som standard om man bara använder tabellnamnet.Sv: Nybörjarfunderingar
Den sista måste jag ha kvar eftersom jag läser vilket id den nya posten har det sista jag gör.
Robban