Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Egen räknare.

Postades av 2001-02-19 11:42:00 - Per Patricsson, i forum databaser, Tråden har 6 Kommentarer och lästs av 939 personer

Någon som kan hjälpa mig att gör en räknare i Access97.
Jag vill inte använda Access egna räknare.
Utan jag vill använda Movelast funktion eller liknade.
Funktionen som jag vill ha är högsta numret + 1 vid ny post.

MVH
Dalton




Svara

Sv: Egen räknare.

Postades av 2001-02-19 12:42:00 - Andreas Hillqvist

Interna räknaren använder inte högsta nummret. Utan en internt idnummer. För det kan blir problem med högsta nummret i fleranvändarmiljö om det används fel.

Om du skapar funktionen i Acces97 kan du använda denna funktion:
Public Function NextID(TableName As String, FieldName As String)
Dim db As Database
Dim rsTemp As Recordset
Set db = CurrentDb
Set rsTemp = db.OpenRecordset("SELECT Max(" & FieldName & ") FROM " & TableName, dbOpenSnapshot)
If rsTemp.BOF And rsTemp.EOF Then
NextID = 1
Else
If IsNull(rsTemp(0)) Then
NextID = 1
Else
NextID = rsTemp(0) + 1
End If
End If
End Function

ADO alternativ:
Public Function NextID(Connection AS ADODB.Connection,TableName As String, FieldName As String)
Dim rsTemp As ADODB.Recordset
Set rsTemp = Connection.Execute("SELECT Max(" & FieldName & ") FROM " & TableName, dbOpenSnapshot)
If rsTemp.BOF And rsTemp.EOF Then
NextID = 1
Else
If IsNull(rsTemp(0)) Then
NextID = 1
Else
NextID = rsTemp(0) + 1
End If
End If
End Function


Svara

Sv: Egen räknare.

Postades av 2001-02-19 14:12:00 - Per Patricsson

Var sätter jag in koden??
Så här ser min tabell ut
Databas > T_Kunder, kolumnnamn > Nummer, ett formulär "F_Kunder" som är kopplat till T_Kunder och när jag trycker på knappen Ny så skall ett nytt nummer skapas.

Så här tycker jag det skall se ut men vad gör jag för fel??

Private Sub Knapp_Ny_Kund_Click()
Public Function NextID(T_Kunder As String, nummer As String)
Dim db As Database
Dim rsTemp As Recordset
Set db = CurrentDb
Set rsTemp = db.OpenRecordset("SELECT Max(" & nummer & ") FROM " & T_Kunder, dbOpenSnapshot)
If rsTemp.BOF And rsTemp.EOF Then
NextID = 1
Else
If IsNull(rsTemp(0)) Then
NextID = 1
Else
NextID = rsTemp(0) + 1
End If
End If
End Function


End Sub

MVH Dalton


Svara

Sv: Egen räknare.

Postades av 2001-02-19 19:44:00 - Andreas Hillqvist

Utvecklar du i vb eller Access?

Här är ett exempel i VB med DAO(Har inte kollat syntax och sånt).

Private Sub Knapp_Ny_Kund_Click()
Dim RecID as long
Dim rsTemp As Recordset
Dim db As Database
Set db = OpenDataabase("c:\databas.mdb")
Set rsTemp = db.openrecordset("T_Kunder",dbopendynaset)
rsTemp.addnew
rsTemp("nummer") = NextID(db)
rsTemp.update
End Sub

Public Function NextID(db As Database)
Dim rsTemp As Recordset
Set rsTemp = db.OpenRecordset("SELECT Max(nummer) FROM T_Kunder", dbOpenSnapshot)
If rsTemp.BOF And rsTemp.EOF Then
NextID = 1
Else
If IsNull(rsTemp(0)) Then
NextID = 1
Else
NextID = rsTemp(0) + 1
End If
End If
End Function


Svara

Sv: Egen räknare.

Postades av 2001-02-20 11:40:00 - Per Patricsson

Access97 :-)


Svara

Sv: Egen räknare.

Postades av 2001-02-20 18:23:00 - Andreas Hillqvist

Om du har ett formulär som är bundet till T_Kunder tabellen så kommer dena funktion att fungera.
Anledningen till att placera NextID i BeforeUpdate är för att inga dubletter skall skapas. Tänk att du skapar en post som får 55(Högsta posten är 54) smtidigt skapar en annan användare också en ny post som också får 55(Efter somm 54 forfarande är högsta posten). Vilket kommer ge dubletter när de sparar sina poster. Om man istället ger posten sitt nummer först när det sparas blir risken försummbar.

Private Sub Form_BeforeUpdate(Cancel As Integer)
If NewRecord Then
Nummer = NextID()
End If
End Sub

Public Function NextID()
Dim db As Database
Dim rsTemp As Recordset
Set db = CurrentDb
Set rsTemp = db.OpenRecordset("SELECT Max(nummer) FROM T_Kunder", dbOpenSnapshot)
If rsTemp.BOF And rsTemp.EOF Then
NextID = 1
Else
If IsNull(rsTemp(0)) Then
NextID = 1
Else
NextID = rsTemp(0) + 1
End If
End If
End Function


Svara

Sv: Egen räknare.

Postades av 2001-02-21 17:42:00 - Per Patricsson

Tusen tack för hjälpen Andreas nu fungerar perfekt.


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 678
27 958
271 741
645
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies