none
Error 3048 can't open more databases RRS feed

  • Question

  • Good morning,

    I have a form named "Détails commandeBT" on which I have 42 buttons that open each a form when clicking on them. The problem is on each of these form I have 80 buttons I open 80 recordsets in order to have a caption appears on their command buttons, so if on opening the "Détails commandeBT" I would like these 42 forms to open, that will make 3360 (42 x 80) recordsets, no Wonder why it can open so many databases.

    So I am looking to a betterway to change the 3360 buttons on these forms, all the buttons named are INPRD1 to INPROD80 on each form and the reason I open these recordsets is because I want to buttons names to be a specific caption from a table.

    Hope it is clear, here is the code on each of these 42 forms on the load event:

    I put the first form and the last form code so you can understand the principle, I am sure there is a better way to have the buttons name becoming a caption from the table "Produits"

    Thanks for your time

    Claude from Québec, Canada

    Private Sub Form_Load()
    Dim dbs As DAO.Database
    Dim rst As DAO.Recordset
    
    Set dbs = CurrentDb
    
    
    Dim strSQL1 As String
    strSQL1 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=1"
    Set rst = CurrentDb.OpenRecordset(strSQL1, dbOpenDynaset, dbSeeChanges)
    Me.INPRD1.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL2 As String
    strSQL2 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=2"
    Set rst = CurrentDb.OpenRecordset(strSQL2, dbOpenDynaset, dbSeeChanges)
    Me.INPRD2.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL3 As String
    strSQL3 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3"
    Set rst = CurrentDb.OpenRecordset(strSQL3, dbOpenDynaset, dbSeeChanges)
    Me.INPRD3.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL4 As String
    strSQL4 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=4"
    Set rst = CurrentDb.OpenRecordset(strSQL4, dbOpenDynaset, dbSeeChanges)
    Me.INPRD4.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL5 As String
    strSQL5 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=5"
    Set rst = CurrentDb.OpenRecordset(strSQL5, dbOpenDynaset, dbSeeChanges)
    Me.INPRD5.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL6 As String
    strSQL6 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=6"
    Set rst = CurrentDb.OpenRecordset(strSQL6, dbOpenDynaset, dbSeeChanges)
    Me.INPRD6.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL7 As String
    strSQL7 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=7"
    Set rst = CurrentDb.OpenRecordset(strSQL7, dbOpenDynaset, dbSeeChanges)
    Me.INPRD7.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL8 As String
    strSQL8 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=8"
    Set rst = CurrentDb.OpenRecordset(strSQL8, dbOpenDynaset, dbSeeChanges)
    Me.INPRD8.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL9 As String
    strSQL9 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=9"
    Set rst = CurrentDb.OpenRecordset(strSQL9, dbOpenDynaset, dbSeeChanges)
    Me.INPRD9.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL10 As String
    strSQL10 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=10"
    Set rst = CurrentDb.OpenRecordset(strSQL10, dbOpenDynaset, dbSeeChanges)
    Me.INPRD10.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL11 As String
    strSQL11 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=11"
    Set rst = CurrentDb.OpenRecordset(strSQL11, dbOpenDynaset, dbSeeChanges)
    Me.INPRD11.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL12 As String
    strSQL12 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=12"
    Set rst = CurrentDb.OpenRecordset(strSQL12, dbOpenDynaset, dbSeeChanges)
    Me.INPRD12.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL13 As String
    strSQL13 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=13"
    Set rst = CurrentDb.OpenRecordset(strSQL13, dbOpenDynaset, dbSeeChanges)
    Me.INPRD13.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL14 As String
    strSQL14 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=14"
    Set rst = CurrentDb.OpenRecordset(strSQL14, dbOpenDynaset, dbSeeChanges)
    Me.INPRD14.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL15 As String
    strSQL15 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=15"
    Set rst = CurrentDb.OpenRecordset(strSQL15, dbOpenDynaset, dbSeeChanges)
    Me.INPRD15.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL16 As String
    strSQL16 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=16"
    Set rst = CurrentDb.OpenRecordset(strSQL16, dbOpenDynaset, dbSeeChanges)
    Me.INPRD16.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL17 As String
    strSQL17 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=17"
    Set rst = CurrentDb.OpenRecordset(strSQL17, dbOpenDynaset, dbSeeChanges)
    Me.INPRD17.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL18 As String
    strSQL18 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=18"
    Set rst = CurrentDb.OpenRecordset(strSQL18, dbOpenDynaset, dbSeeChanges)
    Me.INPRD18.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL19 As String
    strSQL19 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=19"
    Set rst = CurrentDb.OpenRecordset(strSQL19, dbOpenDynaset, dbSeeChanges)
    Me.INPRD19.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL20 As String
    strSQL20 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=20"
    Set rst = CurrentDb.OpenRecordset(strSQL20, dbOpenDynaset, dbSeeChanges)
    Me.INPRD20.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL21 As String
    strSQL21 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=21"
    Set rst = CurrentDb.OpenRecordset(strSQL21, dbOpenDynaset, dbSeeChanges)
    Me.INPRD21.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL22 As String
    strSQL22 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=22"
    Set rst = CurrentDb.OpenRecordset(strSQL22, dbOpenDynaset, dbSeeChanges)
    Me.INPRD22.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL23 As String
    strSQL23 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=23"
    Set rst = CurrentDb.OpenRecordset(strSQL23, dbOpenDynaset, dbSeeChanges)
    Me.INPRD23.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL24 As String
    strSQL24 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=24"
    Set rst = CurrentDb.OpenRecordset(strSQL24, dbOpenDynaset, dbSeeChanges)
    Me.INPRD24.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL25 As String
    strSQL25 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=25"
    Set rst = CurrentDb.OpenRecordset(strSQL25, dbOpenDynaset, dbSeeChanges)
    Me.INPRD25.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL26 As String
    strSQL26 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=26"
    Set rst = CurrentDb.OpenRecordset(strSQL26, dbOpenDynaset, dbSeeChanges)
    Me.INPRD26.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL27 As String
    strSQL27 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=27"
    Set rst = CurrentDb.OpenRecordset(strSQL27, dbOpenDynaset, dbSeeChanges)
    Me.INPRD27.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL28 As String
    strSQL28 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=28"
    Set rst = CurrentDb.OpenRecordset(strSQL28, dbOpenDynaset, dbSeeChanges)
    Me.INPRD28.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL29 As String
    strSQL29 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=29"
    Set rst = CurrentDb.OpenRecordset(strSQL29, dbOpenDynaset, dbSeeChanges)
    Me.INPRD29.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL30 As String
    strSQL30 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=30"
    Set rst = CurrentDb.OpenRecordset(strSQL30, dbOpenDynaset, dbSeeChanges)
    Me.INPRD30.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL31 As String
    strSQL31 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=31"
    Set rst = CurrentDb.OpenRecordset(strSQL31, dbOpenDynaset, dbSeeChanges)
    Me.INPRD31.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL32 As String
    strSQL32 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=32"
    Set rst = CurrentDb.OpenRecordset(strSQL32, dbOpenDynaset, dbSeeChanges)
    Me.INPRD32.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL33 As String
    strSQL33 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=33"
    Set rst = CurrentDb.OpenRecordset(strSQL33, dbOpenDynaset, dbSeeChanges)
    Me.INPRD33.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL34 As String
    strSQL34 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=34"
    Set rst = CurrentDb.OpenRecordset(strSQL34, dbOpenDynaset, dbSeeChanges)
    Me.INPRD34.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL35 As String
    strSQL35 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=35"
    Set rst = CurrentDb.OpenRecordset(strSQL35, dbOpenDynaset, dbSeeChanges)
    Me.INPRD35.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL36 As String
    strSQL36 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=36"
    Set rst = CurrentDb.OpenRecordset(strSQL36, dbOpenDynaset, dbSeeChanges)
    Me.INPRD36.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL37 As String
    strSQL37 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=37"
    Set rst = CurrentDb.OpenRecordset(strSQL37, dbOpenDynaset, dbSeeChanges)
    Me.INPRD37.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL38 As String
    strSQL38 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=38"
    Set rst = CurrentDb.OpenRecordset(strSQL38, dbOpenDynaset, dbSeeChanges)
    Me.INPRD38.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL39 As String
    strSQL39 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=39"
    Set rst = CurrentDb.OpenRecordset(strSQL39, dbOpenDynaset, dbSeeChanges)
    Me.INPRD39.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL40 As String
    strSQL40 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=40"
    Set rst = CurrentDb.OpenRecordset(strSQL40, dbOpenDynaset, dbSeeChanges)
    Me.INPRD40.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL41 As String
    strSQL41 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=41"
    Set rst = CurrentDb.OpenRecordset(strSQL41, dbOpenDynaset, dbSeeChanges)
    Me.INPRD41.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL42 As String
    strSQL42 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=42"
    Set rst = CurrentDb.OpenRecordset(strSQL42, dbOpenDynaset, dbSeeChanges)
    Me.INPRD42.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL43 As String
    strSQL43 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=43"
    Set rst = CurrentDb.OpenRecordset(strSQL43, dbOpenDynaset, dbSeeChanges)
    Me.INPRD43.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL44 As String
    strSQL44 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=44"
    Set rst = CurrentDb.OpenRecordset(strSQL44, dbOpenDynaset, dbSeeChanges)
    Me.INPRD44.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL45 As String
    strSQL45 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=45"
    Set rst = CurrentDb.OpenRecordset(strSQL45, dbOpenDynaset, dbSeeChanges)
    Me.INPRD45.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL46 As String
    strSQL46 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=46"
    Set rst = CurrentDb.OpenRecordset(strSQL46, dbOpenDynaset, dbSeeChanges)
    Me.INPRD46.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL47 As String
    strSQL47 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=47"
    Set rst = CurrentDb.OpenRecordset(strSQL47, dbOpenDynaset, dbSeeChanges)
    Me.INPRD47.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL48 As String
    strSQL48 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=48"
    Set rst = CurrentDb.OpenRecordset(strSQL48, dbOpenDynaset, dbSeeChanges)
    Me.INPRD48.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL49 As String
    strSQL49 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=49"
    Set rst = CurrentDb.OpenRecordset(strSQL49, dbOpenDynaset, dbSeeChanges)
    Me.INPRD49.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL50 As String
    strSQL50 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=50"
    Set rst = CurrentDb.OpenRecordset(strSQL50, dbOpenDynaset, dbSeeChanges)
    Me.INPRD50.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL51 As String
    strSQL51 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=51"
    Set rst = CurrentDb.OpenRecordset(strSQL51, dbOpenDynaset, dbSeeChanges)
    Me.INPRD51.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL52 As String
    strSQL52 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=52"
    Set rst = CurrentDb.OpenRecordset(strSQL52, dbOpenDynaset, dbSeeChanges)
    Me.INPRD52.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL53 As String
    strSQL53 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=53"
    Set rst = CurrentDb.OpenRecordset(strSQL53, dbOpenDynaset, dbSeeChanges)
    Me.INPRD53.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL54 As String
    strSQL54 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=54"
    Set rst = CurrentDb.OpenRecordset(strSQL54, dbOpenDynaset, dbSeeChanges)
    Me.INPRD54.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL55 As String
    strSQL55 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=55"
    Set rst = CurrentDb.OpenRecordset(strSQL55, dbOpenDynaset, dbSeeChanges)
    Me.INPRD55.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL56 As String
    strSQL56 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=56"
    Set rst = CurrentDb.OpenRecordset(strSQL56, dbOpenDynaset, dbSeeChanges)
    Me.INPRD56.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL57 As String
    strSQL57 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=57"
    Set rst = CurrentDb.OpenRecordset(strSQL57, dbOpenDynaset, dbSeeChanges)
    Me.INPRD57.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL58 As String
    strSQL58 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=58"
    Set rst = CurrentDb.OpenRecordset(strSQL58, dbOpenDynaset, dbSeeChanges)
    Me.INPRD58.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL59 As String
    strSQL59 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=59"
    Set rst = CurrentDb.OpenRecordset(strSQL59, dbOpenDynaset, dbSeeChanges)
    Me.INPRD59.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL60 As String
    strSQL60 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=60"
    Set rst = CurrentDb.OpenRecordset(strSQL60, dbOpenDynaset, dbSeeChanges)
    Me.INPRD60.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL61 As String
    strSQL61 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=61"
    Set rst = CurrentDb.OpenRecordset(strSQL61, dbOpenDynaset, dbSeeChanges)
    Me.INPRD61.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL62 As String
    strSQL62 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=62"
    Set rst = CurrentDb.OpenRecordset(strSQL62, dbOpenDynaset, dbSeeChanges)
    Me.INPRD62.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL63 As String
    strSQL63 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=63"
    Set rst = CurrentDb.OpenRecordset(strSQL63, dbOpenDynaset, dbSeeChanges)
    Me.INPRD63.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL64 As String
    strSQL64 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=64"
    Set rst = CurrentDb.OpenRecordset(strSQL64, dbOpenDynaset, dbSeeChanges)
    Me.INPRD64.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL65 As String
    strSQL65 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=65"
    Set rst = CurrentDb.OpenRecordset(strSQL65, dbOpenDynaset, dbSeeChanges)
    Me.INPRD65.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL66 As String
    strSQL66 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=66"
    Set rst = CurrentDb.OpenRecordset(strSQL66, dbOpenDynaset, dbSeeChanges)
    Me.INPRD66.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL67 As String
    strSQL67 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=67"
    Set rst = CurrentDb.OpenRecordset(strSQL67, dbOpenDynaset, dbSeeChanges)
    Me.INPRD67.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL68 As String
    strSQL68 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=68"
    Set rst = CurrentDb.OpenRecordset(strSQL68, dbOpenDynaset, dbSeeChanges)
    Me.INPRD68.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL69 As String
    strSQL69 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=69"
    Set rst = CurrentDb.OpenRecordset(strSQL69, dbOpenDynaset, dbSeeChanges)
    Me.INPRD69.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL70 As String
    strSQL70 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=70"
    Set rst = CurrentDb.OpenRecordset(strSQL70, dbOpenDynaset, dbSeeChanges)
    Me.INPRD70.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL71 As String
    strSQL71 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=71"
    Set rst = CurrentDb.OpenRecordset(strSQL71, dbOpenDynaset, dbSeeChanges)
    Me.INPRD71.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL72 As String
    strSQL72 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=72"
    Set rst = CurrentDb.OpenRecordset(strSQL72, dbOpenDynaset, dbSeeChanges)
    Me.INPRD72.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL73 As String
    strSQL73 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=73"
    Set rst = CurrentDb.OpenRecordset(strSQL73, dbOpenDynaset, dbSeeChanges)
    Me.INPRD73.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL74 As String
    strSQL74 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=74"
    Set rst = CurrentDb.OpenRecordset(strSQL74, dbOpenDynaset, dbSeeChanges)
    Me.INPRD74.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL75 As String
    strSQL75 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=75"
    Set rst = CurrentDb.OpenRecordset(strSQL75, dbOpenDynaset, dbSeeChanges)
    Me.INPRD75.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL76 As String
    strSQL76 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=76"
    Set rst = CurrentDb.OpenRecordset(strSQL76, dbOpenDynaset, dbSeeChanges)
    Me.INPRD76.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL77 As String
    strSQL77 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=77"
    Set rst = CurrentDb.OpenRecordset(strSQL77, dbOpenDynaset, dbSeeChanges)
    Me.INPRD77.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL78 As String
    strSQL78 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=78"
    Set rst = CurrentDb.OpenRecordset(strSQL78, dbOpenDynaset, dbSeeChanges)
    Me.INPRD78.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL79 As String
    strSQL79 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=79"
    Set rst = CurrentDb.OpenRecordset(strSQL79, dbOpenDynaset, dbSeeChanges)
    Me.INPRD79.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL80 As String
    strSQL80 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=80"
    Set rst = CurrentDb.OpenRecordset(strSQL80, dbOpenDynaset, dbSeeChanges)
    Me.INPRD80.Caption = rst![Nom du produit]
    rst.Close
    
    Dim i As Integer
    For i = 1 To 80
    If Me.Controls("INPRD" & i).Caption Like "NOUV*" Then
    Me.Controls("INPRD" & i).Visible = False
    End If
    Next i
    End Sub

    this is form the form "0000-a-Menu Rapide 1A" the first of the 42... the form "0000-a-Menu Rapide 42A" will have this code on the load event:

    Private Sub Form_Load()
    Dim dbs As DAO.Database
    Dim rst As DAO.Recordset
    
    Set dbs = CurrentDb
    
    Dim strSQL1 As String
    strSQL1 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3281"
    Set rst = CurrentDb.OpenRecordset(strSQL1, dbOpenDynaset, dbSeeChanges)
    Me.INPRD1.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL2 As String
    strSQL2 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3282"
    Set rst = CurrentDb.OpenRecordset(strSQL2, dbOpenDynaset, dbSeeChanges)
    Me.INPRD2.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL3 As String
    strSQL3 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3283"
    Set rst = CurrentDb.OpenRecordset(strSQL3, dbOpenDynaset, dbSeeChanges)
    Me.INPRD3.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL4 As String
    strSQL4 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3284"
    Set rst = CurrentDb.OpenRecordset(strSQL4, dbOpenDynaset, dbSeeChanges)
    Me.INPRD4.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL5 As String
    strSQL5 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3285"
    Set rst = CurrentDb.OpenRecordset(strSQL5, dbOpenDynaset, dbSeeChanges)
    Me.INPRD5.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL6 As String
    strSQL6 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3286"
    Set rst = CurrentDb.OpenRecordset(strSQL6, dbOpenDynaset, dbSeeChanges)
    Me.INPRD6.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL7 As String
    strSQL7 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3287"
    Set rst = CurrentDb.OpenRecordset(strSQL7, dbOpenDynaset, dbSeeChanges)
    Me.INPRD7.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL8 As String
    strSQL8 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3288"
    Set rst = CurrentDb.OpenRecordset(strSQL8, dbOpenDynaset, dbSeeChanges)
    Me.INPRD8.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL9 As String
    strSQL9 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3289"
    Set rst = CurrentDb.OpenRecordset(strSQL9, dbOpenDynaset, dbSeeChanges)
    Me.INPRD9.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL10 As String
    strSQL10 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3290"
    Set rst = CurrentDb.OpenRecordset(strSQL10, dbOpenDynaset, dbSeeChanges)
    Me.INPRD10.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL11 As String
    strSQL11 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3291"
    Set rst = CurrentDb.OpenRecordset(strSQL11, dbOpenDynaset, dbSeeChanges)
    Me.INPRD11.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL12 As String
    strSQL12 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3292"
    Set rst = CurrentDb.OpenRecordset(strSQL12, dbOpenDynaset, dbSeeChanges)
    Me.INPRD12.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL13 As String
    strSQL13 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3293"
    Set rst = CurrentDb.OpenRecordset(strSQL13, dbOpenDynaset, dbSeeChanges)
    Me.INPRD13.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL14 As String
    strSQL14 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3294"
    Set rst = CurrentDb.OpenRecordset(strSQL14, dbOpenDynaset, dbSeeChanges)
    Me.INPRD14.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL15 As String
    strSQL15 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3295"
    Set rst = CurrentDb.OpenRecordset(strSQL15, dbOpenDynaset, dbSeeChanges)
    Me.INPRD15.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL16 As String
    strSQL16 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3296"
    Set rst = CurrentDb.OpenRecordset(strSQL16, dbOpenDynaset, dbSeeChanges)
    Me.INPRD16.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL17 As String
    strSQL17 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3297"
    Set rst = CurrentDb.OpenRecordset(strSQL17, dbOpenDynaset, dbSeeChanges)
    Me.INPRD17.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL18 As String
    strSQL18 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3298"
    Set rst = CurrentDb.OpenRecordset(strSQL18, dbOpenDynaset, dbSeeChanges)
    Me.INPRD18.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL19 As String
    strSQL19 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3299"
    Set rst = CurrentDb.OpenRecordset(strSQL19, dbOpenDynaset, dbSeeChanges)
    Me.INPRD19.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL20 As String
    strSQL20 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3300"
    Set rst = CurrentDb.OpenRecordset(strSQL20, dbOpenDynaset, dbSeeChanges)
    Me.INPRD20.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL21 As String
    strSQL21 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3301"
    Set rst = CurrentDb.OpenRecordset(strSQL21, dbOpenDynaset, dbSeeChanges)
    Me.INPRD21.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL22 As String
    strSQL22 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3302"
    Set rst = CurrentDb.OpenRecordset(strSQL22, dbOpenDynaset, dbSeeChanges)
    Me.INPRD22.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL23 As String
    strSQL23 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3303"
    Set rst = CurrentDb.OpenRecordset(strSQL23, dbOpenDynaset, dbSeeChanges)
    Me.INPRD23.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL24 As String
    strSQL24 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3304"
    Set rst = CurrentDb.OpenRecordset(strSQL24, dbOpenDynaset, dbSeeChanges)
    Me.INPRD24.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL25 As String
    strSQL25 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3305"
    Set rst = CurrentDb.OpenRecordset(strSQL25, dbOpenDynaset, dbSeeChanges)
    Me.INPRD25.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL26 As String
    strSQL26 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3306"
    Set rst = CurrentDb.OpenRecordset(strSQL26, dbOpenDynaset, dbSeeChanges)
    Me.INPRD26.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL27 As String
    strSQL27 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3307"
    Set rst = CurrentDb.OpenRecordset(strSQL27, dbOpenDynaset, dbSeeChanges)
    Me.INPRD27.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL28 As String
    strSQL28 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3308"
    Set rst = CurrentDb.OpenRecordset(strSQL28, dbOpenDynaset, dbSeeChanges)
    Me.INPRD28.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL29 As String
    strSQL29 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3309"
    Set rst = CurrentDb.OpenRecordset(strSQL29, dbOpenDynaset, dbSeeChanges)
    Me.INPRD29.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL30 As String
    strSQL30 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3310"
    Set rst = CurrentDb.OpenRecordset(strSQL30, dbOpenDynaset, dbSeeChanges)
    Me.INPRD30.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL31 As String
    strSQL31 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3311"
    Set rst = CurrentDb.OpenRecordset(strSQL31, dbOpenDynaset, dbSeeChanges)
    Me.INPRD31.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL32 As String
    strSQL32 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3312"
    Set rst = CurrentDb.OpenRecordset(strSQL32, dbOpenDynaset, dbSeeChanges)
    Me.INPRD32.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL33 As String
    strSQL33 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3313"
    Set rst = CurrentDb.OpenRecordset(strSQL33, dbOpenDynaset, dbSeeChanges)
    Me.INPRD33.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL34 As String
    strSQL34 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3314"
    Set rst = CurrentDb.OpenRecordset(strSQL34, dbOpenDynaset, dbSeeChanges)
    Me.INPRD34.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL35 As String
    strSQL35 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3315"
    Set rst = CurrentDb.OpenRecordset(strSQL35, dbOpenDynaset, dbSeeChanges)
    Me.INPRD35.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL36 As String
    strSQL36 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3316"
    Set rst = CurrentDb.OpenRecordset(strSQL36, dbOpenDynaset, dbSeeChanges)
    Me.INPRD36.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL37 As String
    strSQL37 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3317"
    Set rst = CurrentDb.OpenRecordset(strSQL37, dbOpenDynaset, dbSeeChanges)
    Me.INPRD37.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL38 As String
    strSQL38 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3318"
    Set rst = CurrentDb.OpenRecordset(strSQL38, dbOpenDynaset, dbSeeChanges)
    Me.INPRD38.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL39 As String
    strSQL39 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3319"
    Set rst = CurrentDb.OpenRecordset(strSQL39, dbOpenDynaset, dbSeeChanges)
    Me.INPRD39.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL40 As String
    strSQL40 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3320"
    Set rst = CurrentDb.OpenRecordset(strSQL40, dbOpenDynaset, dbSeeChanges)
    Me.INPRD40.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL41 As String
    strSQL41 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3321"
    Set rst = CurrentDb.OpenRecordset(strSQL41, dbOpenDynaset, dbSeeChanges)
    Me.INPRD41.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL42 As String
    strSQL42 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3322"
    Set rst = CurrentDb.OpenRecordset(strSQL42, dbOpenDynaset, dbSeeChanges)
    Me.INPRD42.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL43 As String
    strSQL43 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3323"
    Set rst = CurrentDb.OpenRecordset(strSQL43, dbOpenDynaset, dbSeeChanges)
    Me.INPRD43.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL44 As String
    strSQL44 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3324"
    Set rst = CurrentDb.OpenRecordset(strSQL44, dbOpenDynaset, dbSeeChanges)
    Me.INPRD44.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL45 As String
    strSQL45 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3325"
    Set rst = CurrentDb.OpenRecordset(strSQL45, dbOpenDynaset, dbSeeChanges)
    Me.INPRD45.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL46 As String
    strSQL46 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3326"
    Set rst = CurrentDb.OpenRecordset(strSQL46, dbOpenDynaset, dbSeeChanges)
    Me.INPRD46.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL47 As String
    strSQL47 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3327"
    Set rst = CurrentDb.OpenRecordset(strSQL47, dbOpenDynaset, dbSeeChanges)
    Me.INPRD47.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL48 As String
    strSQL48 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3328"
    Set rst = CurrentDb.OpenRecordset(strSQL48, dbOpenDynaset, dbSeeChanges)
    Me.INPRD48.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL49 As String
    strSQL49 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3329"
    Set rst = CurrentDb.OpenRecordset(strSQL49, dbOpenDynaset, dbSeeChanges)
    Me.INPRD49.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL50 As String
    strSQL50 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3330"
    Set rst = CurrentDb.OpenRecordset(strSQL50, dbOpenDynaset, dbSeeChanges)
    Me.INPRD50.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL51 As String
    strSQL51 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3331"
    Set rst = CurrentDb.OpenRecordset(strSQL51, dbOpenDynaset, dbSeeChanges)
    Me.INPRD51.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL52 As String
    strSQL52 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3332"
    Set rst = CurrentDb.OpenRecordset(strSQL52, dbOpenDynaset, dbSeeChanges)
    Me.INPRD52.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL53 As String
    strSQL53 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3333"
    Set rst = CurrentDb.OpenRecordset(strSQL53, dbOpenDynaset, dbSeeChanges)
    Me.INPRD53.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL54 As String
    strSQL54 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3334"
    Set rst = CurrentDb.OpenRecordset(strSQL54, dbOpenDynaset, dbSeeChanges)
    Me.INPRD54.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL55 As String
    strSQL55 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3335"
    Set rst = CurrentDb.OpenRecordset(strSQL55, dbOpenDynaset, dbSeeChanges)
    Me.INPRD55.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL56 As String
    strSQL56 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3336"
    Set rst = CurrentDb.OpenRecordset(strSQL56, dbOpenDynaset, dbSeeChanges)
    Me.INPRD56.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL57 As String
    strSQL57 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3337"
    Set rst = CurrentDb.OpenRecordset(strSQL57, dbOpenDynaset, dbSeeChanges)
    Me.INPRD57.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL58 As String
    strSQL58 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3338"
    Set rst = CurrentDb.OpenRecordset(strSQL58, dbOpenDynaset, dbSeeChanges)
    Me.INPRD58.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL59 As String
    strSQL59 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3339"
    Set rst = CurrentDb.OpenRecordset(strSQL59, dbOpenDynaset, dbSeeChanges)
    Me.INPRD59.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL60 As String
    strSQL60 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3340"
    Set rst = CurrentDb.OpenRecordset(strSQL60, dbOpenDynaset, dbSeeChanges)
    Me.INPRD60.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL61 As String
    strSQL61 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3341"
    Set rst = CurrentDb.OpenRecordset(strSQL61, dbOpenDynaset, dbSeeChanges)
    Me.INPRD61.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL62 As String
    strSQL62 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3342"
    Set rst = CurrentDb.OpenRecordset(strSQL62, dbOpenDynaset, dbSeeChanges)
    Me.INPRD62.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL63 As String
    strSQL63 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3343"
    Set rst = CurrentDb.OpenRecordset(strSQL63, dbOpenDynaset, dbSeeChanges)
    Me.INPRD63.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL64 As String
    strSQL64 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3344"
    Set rst = CurrentDb.OpenRecordset(strSQL64, dbOpenDynaset, dbSeeChanges)
    Me.INPRD64.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL65 As String
    strSQL65 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3345"
    Set rst = CurrentDb.OpenRecordset(strSQL65, dbOpenDynaset, dbSeeChanges)
    Me.INPRD65.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL66 As String
    strSQL66 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3346"
    Set rst = CurrentDb.OpenRecordset(strSQL66, dbOpenDynaset, dbSeeChanges)
    Me.INPRD66.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL67 As String
    strSQL67 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3347"
    Set rst = CurrentDb.OpenRecordset(strSQL67, dbOpenDynaset, dbSeeChanges)
    Me.INPRD67.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL68 As String
    strSQL68 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3348"
    Set rst = CurrentDb.OpenRecordset(strSQL68, dbOpenDynaset, dbSeeChanges)
    Me.INPRD68.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL69 As String
    strSQL69 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3349"
    Set rst = CurrentDb.OpenRecordset(strSQL69, dbOpenDynaset, dbSeeChanges)
    Me.INPRD69.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL70 As String
    strSQL70 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3350"
    Set rst = CurrentDb.OpenRecordset(strSQL70, dbOpenDynaset, dbSeeChanges)
    Me.INPRD70.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL71 As String
    strSQL71 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3351"
    Set rst = CurrentDb.OpenRecordset(strSQL71, dbOpenDynaset, dbSeeChanges)
    Me.INPRD71.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL72 As String
    strSQL72 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3352"
    Set rst = CurrentDb.OpenRecordset(strSQL72, dbOpenDynaset, dbSeeChanges)
    Me.INPRD72.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL73 As String
    strSQL73 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3353"
    Set rst = CurrentDb.OpenRecordset(strSQL73, dbOpenDynaset, dbSeeChanges)
    Me.INPRD73.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL74 As String
    strSQL74 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3354"
    Set rst = CurrentDb.OpenRecordset(strSQL74, dbOpenDynaset, dbSeeChanges)
    Me.INPRD74.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL75 As String
    strSQL75 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3355"
    Set rst = CurrentDb.OpenRecordset(strSQL75, dbOpenDynaset, dbSeeChanges)
    Me.INPRD75.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL76 As String
    strSQL76 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3356"
    Set rst = CurrentDb.OpenRecordset(strSQL76, dbOpenDynaset, dbSeeChanges)
    Me.INPRD76.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL77 As String
    strSQL77 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3357"
    Set rst = CurrentDb.OpenRecordset(strSQL77, dbOpenDynaset, dbSeeChanges)
    Me.INPRD77.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL78 As String
    strSQL78 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3358"
    Set rst = CurrentDb.OpenRecordset(strSQL78, dbOpenDynaset, dbSeeChanges)
    Me.INPRD78.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL79 As String
    strSQL79 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3359"
    Set rst = CurrentDb.OpenRecordset(strSQL79, dbOpenDynaset, dbSeeChanges)
    Me.INPRD79.Caption = rst![Nom du produit]
    rst.Close
    Dim strSQL80 As String
    strSQL80 = "SELECT ID, [Nom du produit], [PrixVente1] FROM Produits WHERE Produits.ID=3360"
    Set rst = CurrentDb.OpenRecordset(strSQL80, dbOpenDynaset, dbSeeChanges)
    Me.INPRD80.Caption = rst![Nom du produit]
    rst.Close
    
    Dim i As Integer
    For i = 1 To 80
    If Me.Controls("INPRD" & i).Caption Like "NOUV*" Then
    Me.Controls("INPRD" & i).Visible = False
    End If
    Next i
    End Sub


    Claude Larocque

    Friday, August 28, 2015 12:06 PM

Answers

  • Do you really need 42 forms? Couldn't you use a single form and change what it displays depending on which button was clicked?

    Anyway, you could do something like this - I don't know if it will improve the situation:

    Form 1:
    
    Private Sub Form_Load()
        Dim dbs As DAO.Database
        Dim rst As DAO.Recordset
        Dim strSQL As String
        Set dbs = CurrentDb
        strSQL = "SELECT ID, [Nom du produit] FROM Produits WHERE ID Between 1 And 80"
        Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset, dbSeeChanges)
        Do While Not rst.EOF
            With Me.Controls("INPRD" & rst!ID)
                .Caption = rst![Nom du produit]
                If rst![Nom du produit] Like "NOUV*" Then
                    .Visible = False
                End If
            End With
            rst.MoveNext
        Loop
        rst.Close
    End Sub
    
    Form 2:
    
    Private Sub Form_Load()
        Dim dbs As DAO.Database
        Dim rst As DAO.Recordset
        Dim strSQL As String
        Set dbs = CurrentDb
        strSQL = "SELECT ID, [Nom du produit] FROM Produits WHERE ID Between 81 And 160"
        Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset, dbSeeChanges)
        Do While Not rst.EOF
            With Me.Controls("INPRD" & (rst!ID - 80))
                .Caption = rst![Nom du produit]
                If rst![Nom du produit] Like "NOUV*" Then
                    .Visible = False
                End If
            End With
            rst.MoveNext
        Loop
        rst.Close
    End Sub
    
    ...
    
    Form 42:
    
    Private Sub Form_Load()
        Dim dbs As DAO.Database
        Dim rst As DAO.Recordset
        Dim strSQL As String
        Set dbs = CurrentDb
        strSQL = "SELECT ID, [Nom du produit] FROM Produits WHERE ID Between 3281 And 3360"
        Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset, dbSeeChanges)
        Do While Not rst.EOF
            With Me.Controls("INPRD" & (rst!ID - 3280))
                .Caption = rst![Nom du produit]
                If rst![Nom du produit] Like "NOUV*" Then
                    .Visible = False
                End If
            End With
            rst.MoveNext
        Loop
        rst.Close
    End Sub


    Regards, Hans Vogelaar (http://www.eileenslounge.com)

    Friday, August 28, 2015 12:34 PM
  • I have a form named "Détails commandeBT" on which I have 42 buttons that open each a form when clicking on them. The problem is on each of these form I have 80 buttons I open 80 recordsets in order to have a caption appears on their command buttons, so if on opening the "Détails commandeBT" I would like these 42 forms to open, that will make 3360 (42 x 80) recordsets, no Wonder why it can open so many databases.

    Hi Claude,

    We have had already discussions about structure in code and generalization. I think the above problem can be solved with a few simple loops and a few simple lines of code. Hans pointed you already in the good direction.

    In all my applications I use only one form to display any recordset, so it should be possible to generalize the 42 different forms to one, in one way or the other. What is the difference between the 42, and what is the command that you use to open them?

    Unfortunately, today I have not too much time to study your problem, but tomorrow I can give it a try.

    Imb.

    Hi Claude,

    This is all untested, so you have to verify all things in your own environment.

    When you select one of the 42 buttons, then you open the-one-form (not 42 different) with the 80 buttons, and pass the button-number through OpenArgs.

    In the Open or Load event of the 80-buttons-form, you pick up then number of the 42-buttons-form, assign it to ff, and run:

       Load_form Me, ff

    Sub Load_form(cur_form as form, ff As Integer)
    
      Dim strSQL As String
      Dim offset As Integer
      Dim rst As Recordset
      Dim x As Integer
      
      offset = ff * 80
      strSQL = "SELECT ID, [Nom du porduit], [PrixVente1] FROM Produits" _
             & " WHERE ID > " & offset _
             & " AND ID <= " & offset + 80 _
             & " ORDER BY ID"
    
      Set rst = CurrentDb.OpenRecordset(strSQL)
      Do While (Not rst.EOF)
        x = rst!ID - offset
        cur_form("INPRD" & x).Caption = rst![Nom du produit]
        If (Left(rst![Nom du produit], 4) = "NOUV") Then cur_form("INPRD" & x).Visible = False
        rst.MoveNext
      Loop
    
    End Sub

    Probably you need to do some more, for instance assign the strSQL to the RecordSource of the form, assign fieldnames to the ControlSource of the different controls, eventually use the Tag of each control to store the ID of the record.

    If you need further assistance, let me know.

    Imb.

    Saturday, August 29, 2015 7:50 AM

All replies

  • Do you really need 42 forms? Couldn't you use a single form and change what it displays depending on which button was clicked?

    Anyway, you could do something like this - I don't know if it will improve the situation:

    Form 1:
    
    Private Sub Form_Load()
        Dim dbs As DAO.Database
        Dim rst As DAO.Recordset
        Dim strSQL As String
        Set dbs = CurrentDb
        strSQL = "SELECT ID, [Nom du produit] FROM Produits WHERE ID Between 1 And 80"
        Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset, dbSeeChanges)
        Do While Not rst.EOF
            With Me.Controls("INPRD" & rst!ID)
                .Caption = rst![Nom du produit]
                If rst![Nom du produit] Like "NOUV*" Then
                    .Visible = False
                End If
            End With
            rst.MoveNext
        Loop
        rst.Close
    End Sub
    
    Form 2:
    
    Private Sub Form_Load()
        Dim dbs As DAO.Database
        Dim rst As DAO.Recordset
        Dim strSQL As String
        Set dbs = CurrentDb
        strSQL = "SELECT ID, [Nom du produit] FROM Produits WHERE ID Between 81 And 160"
        Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset, dbSeeChanges)
        Do While Not rst.EOF
            With Me.Controls("INPRD" & (rst!ID - 80))
                .Caption = rst![Nom du produit]
                If rst![Nom du produit] Like "NOUV*" Then
                    .Visible = False
                End If
            End With
            rst.MoveNext
        Loop
        rst.Close
    End Sub
    
    ...
    
    Form 42:
    
    Private Sub Form_Load()
        Dim dbs As DAO.Database
        Dim rst As DAO.Recordset
        Dim strSQL As String
        Set dbs = CurrentDb
        strSQL = "SELECT ID, [Nom du produit] FROM Produits WHERE ID Between 3281 And 3360"
        Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset, dbSeeChanges)
        Do While Not rst.EOF
            With Me.Controls("INPRD" & (rst!ID - 3280))
                .Caption = rst![Nom du produit]
                If rst![Nom du produit] Like "NOUV*" Then
                    .Visible = False
                End If
            End With
            rst.MoveNext
        Loop
        rst.Close
    End Sub


    Regards, Hans Vogelaar (http://www.eileenslounge.com)

    Friday, August 28, 2015 12:34 PM
  • I have a form named "Détails commandeBT" on which I have 42 buttons that open each a form when clicking on them. The problem is on each of these form I have 80 buttons I open 80 recordsets in order to have a caption appears on their command buttons, so if on opening the "Détails commandeBT" I would like these 42 forms to open, that will make 3360 (42 x 80) recordsets, no Wonder why it can open so many databases.

    Hi Claude,

    We have had already discussions about structure in code and generalization. I think the above problem can be solved with a few simple loops and a few simple lines of code. Hans pointed you already in the good direction.

    In all my applications I use only one form to display any recordset, so it should be possible to generalize the 42 different forms to one, in one way or the other. What is the difference between the 42, and what is the command that you use to open them?

    Unfortunately, today I have not too much time to study your problem, but tomorrow I can give it a try.

    Imb.

    Friday, August 28, 2015 3:05 PM
  • I have a form named "Détails commandeBT" on which I have 42 buttons that open each a form when clicking on them. The problem is on each of these form I have 80 buttons I open 80 recordsets in order to have a caption appears on their command buttons, so if on opening the "Détails commandeBT" I would like these 42 forms to open, that will make 3360 (42 x 80) recordsets, no Wonder why it can open so many databases.

    Hi Claude,

    We have had already discussions about structure in code and generalization. I think the above problem can be solved with a few simple loops and a few simple lines of code. Hans pointed you already in the good direction.

    In all my applications I use only one form to display any recordset, so it should be possible to generalize the 42 different forms to one, in one way or the other. What is the difference between the 42, and what is the command that you use to open them?

    Unfortunately, today I have not too much time to study your problem, but tomorrow I can give it a try.

    Imb.

    Hi Claude,

    This is all untested, so you have to verify all things in your own environment.

    When you select one of the 42 buttons, then you open the-one-form (not 42 different) with the 80 buttons, and pass the button-number through OpenArgs.

    In the Open or Load event of the 80-buttons-form, you pick up then number of the 42-buttons-form, assign it to ff, and run:

       Load_form Me, ff

    Sub Load_form(cur_form as form, ff As Integer)
    
      Dim strSQL As String
      Dim offset As Integer
      Dim rst As Recordset
      Dim x As Integer
      
      offset = ff * 80
      strSQL = "SELECT ID, [Nom du porduit], [PrixVente1] FROM Produits" _
             & " WHERE ID > " & offset _
             & " AND ID <= " & offset + 80 _
             & " ORDER BY ID"
    
      Set rst = CurrentDb.OpenRecordset(strSQL)
      Do While (Not rst.EOF)
        x = rst!ID - offset
        cur_form("INPRD" & x).Caption = rst![Nom du produit]
        If (Left(rst![Nom du produit], 4) = "NOUV") Then cur_form("INPRD" & x).Visible = False
        rst.MoveNext
      Loop
    
    End Sub

    Probably you need to do some more, for instance assign the strSQL to the RecordSource of the form, assign fieldnames to the ControlSource of the different controls, eventually use the Tag of each control to store the ID of the record.

    If you need further assistance, let me know.

    Imb.

    Saturday, August 29, 2015 7:50 AM