[Access] Fonction "Find"

Inspiron -  
 ptilou -
Bonjour,

Je travaille sur une BDD permettant de gérer les entretiens des différents camions du parc d'une société.

Je dispose (entre autres) d'une table "entretiens" comprenant les champs suivants

numéro de l'entretien
Index lors de l'entretien (nombre de km de la machine)
Date de l'entretien

Celle-ci est stockée dans un RecordSet dans ma programmation

je suis actuellement en train de programmer une procédure dans un module VBA et je cale complètement sur la fonction "find"

Je voudrais que ma fonction Find me trouve l'index lors du dernier entretien effectué

Je suis obligé de rester dans du code VBA car cette fonction "find" n'est qu'une partie de ma procédure

Je suis assez novice en Access (c'est la première fois que je programme ^^)

Merci beaucoup pour vos réponses
Configuration: Windows XP
Firefox 2.0.0.12

5 réponses

  1. bnb
     
    Peut-etre plus facilement comme ceci...
    Tiré du help de access

    Seek Method Example

    This example demonstrates the Seek method by allowing the user to search for a product based on an ID number.

    Sub SeekX()

    Dim dbsNorthwind As Database
    Dim rstProducts As Recordset
    Dim intFirst As Integer
    Dim intLast As Integer
    Dim strMessage As String
    Dim strSeek As String
    Dim varBookmark As Variant

    Set dbsNorthwind = OpenDatabase("Northwind.mdb")
    ' You must open a table-type Recordset to use an index,
    ' and hence the Seek method.
    Set rstProducts = _
    dbsNorthwind.OpenRecordset("Products", dbOpenTable)

    With rstProducts
    ' Set the index.
    .Index = "PrimaryKey"

    ' Get the lowest and highest product IDs.
    .MoveLast
    intLast = !ProductID
    .MoveFirst
    intFirst = !ProductID

    Do While True
    ' Display current record information and ask user
    ' for ID number.
    strMessage = "Product ID: " & !ProductID & vbCr & _
    "Name: " & !ProductName & vbCr & vbCr & _
    "Enter a product ID between " & intFirst & _
    " and " & intLast & "."
    strSeek = InputBox(strMessage)

    If strSeek = "" Then Exit Do

    ' Store current bookmark in case the Seek fails.
    varBookmark = .Bookmark

    .Seek "=", Val(strSeek)

    ' Return to the current record if the Seek fails.
    If .NoMatch Then
    MsgBox "ID not found!"
    .Bookmark = varBookmark
    End If
    Loop

    .Close
    End With

    dbsNorthwind.Close

    End Sub
    0
  2. Inspiron
     
    Merci pour ta réponse je regarde à ca de suite ;-)
    0
  3. Inspiron
     
    Oula c'est assez complexe tout ca pour moi... Pourrais tu essayer de me "décoder" tout ca ? Parce que je vois pas trop comment faire.
    Merci
    0
  4. bnb
     
    SEEK fait une recherche sur des champs indexés... Bcp + rapide que FindFirst qui est peut-être plus facile à coder en VBA
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ptilou
     
    Je désirerais introduire en début de champs un chiffre, '700' par exemple, aux données existantes.
    Mon champs est en mode texte. La taille actuelle est de 6 et j'aimerai la faire passer à 9 en y insérant 700 au début.
    Quelqu'un pourrait-il me dire comment faire ?
    Merci d'avance
    0