| 
 
 |  |  | auteur : Morsi |  | Dans un module et juste après Option Explicit, coller la déclaration de ces variables : | ConstMAX_IP=5Type IPINFO
     dwAddrAsLong   
    dwIndexAsLong 
    dwMaskAsLong 
    dwBCastAddrAsLong 
    dwReasmSizeAsLong 
    unused1AsInteger 
    unused2AsIntegerEndType
Type MIB_IPADDRTABLE
    dEntrysAsLongmIPInfo(MAX_IP)AsIPINFOEndType
Type IP_Array
    mBufferAsMIB_IPADDRTABLE
    BufferLenAsLongEndTypePublicDeclareSubCopyMemory Lib"kernel32"Alias _"RtlMoveMemory"(destinationAsAny, SourceAsAny,ByValLengthAsLong)PublicDeclareFunctionGetIpAddrTable Lib"IPHlpApi"_
     (pIPAdrTableAsByte, pdwSizeAsLong,ByValSortAsLong)AsLong
 | 
|   
PublicFunctionConvertAddressToString(longAddrAsLong)AsStringDimmyByte(3)AsByteDimCntAsLong
    CopyMemorymyByte(0), longAddr,4ForCnt=0To3ConvertAddressToString=ConvertAddressToString+CStr(myByte(Cnt))+"."NextCnt
    ConvertAddressToString=Left$(ConvertAddressToString,Len(ConvertAddressToString)-1)EndFunction
 | 
Maintenant, sur l'événement click du bouton IP: | 
PublicFunctionGet_IP_Click()AsStringDimRetAsLong, TelAsLongDimbBytes()AsByteDimTempList()AsStringDimTempIPAsStringDimTempiAsLongDimListingAsMIB_IPADDRTABLEDimL3AsStringOnErrorGoToEND1
    GetIpAddrTableByVal0&, Ret,TrueIfRet<=0ThenExitFunctionReDimbBytes(0ToRet-1)AsByteReDimTempList(0ToRet-1)AsStringGetIpAddrTablebBytes(0), Ret,FalseCopyMemory Listing.dEntrys,bBytes(0),4ForTel=0ToListing.dEntrys-1CopyMemory Listing.mIPInfo(Tel),bBytes(4+(Tel*Len(Listing.mIPInfo(0)))),  _Len(Listing.mIPInfo(Tel))TempList(Tel)=ConvertAddressToString(Listing.mIPInfo(Tel).dwAddr)NextTel
        TempIP=TempList(0)ForTempi=0ToListing.dEntrys-1L3=Left(TempList(Tempi),3)IfL3<>"169"AndL3<>"127"AndL3<>"192"ThenTempIP=TempList(Tempi)EndIfNextTempi
        GetWanIP=TempIPExitFunctionEND1:
GetWanIP=""EndFunction
 | 
 | 
|  |  | auteur : Morsi |  | Ajouter ce code juste après Option Explicit dans un nouveau module: | PrivateType MEMORYSTATUS
    dwLengthAsLong
    dwMemoryLoadAsLong
    dwTotalPhysAsLong
    dwAvailPhysAsLong
    dwTotalPageFileAsLong
    dwAvailPageFileAsLong
    dwTotalVirtualAsLong
    dwAvailVirtualAsLongEndTypePrivateDeclareSubGlobalMemoryStatus Lib"kernel32"(lpBufferAsMEMORYSTATUS)
 | 
Faites appel maintenant à memoireinfo() pour avoir les informations sur la RAM | Submemoireinfo()DimMemStatAsMEMORYSTATUS
    GlobalMemoryStatus MemStatMsgBox"Vous avez "&(MemStat.dwTotalPhys/1024)/1024&" Mo de RAM"MsgBox"Vous avez "&(MemStat.dwAvailPhys/1024)/1024&" Mo de RAM disponible"EndSub
 | 
 | 
|  |  | auteur : Morsi |  | Des fois, nous aurons besoin des noms de machines pour les fichiers log par exemple ou pour tracer un traitement. 
 Coller ce code après Option Explicit. | PrivateConstMAX_COMPUTERNAME_LENGTHAsLong=31PrivateDeclareFunctionGetComputerName Lib"kernel32"Alias"GetComputerNameA"_
(ByVallpBufferAsString, nSizeAsLong)AsLongPrivateDeclareFunctionGetUserName Lib"advapi32.dll"Alias _"GetUserNameA"(ByVallpBufferAsString, nSizeAsLong)AsLong
 | 
|   
PrivateFunctionrecherche_name()AsStringDimdwLenAsLongDimstrStringAsStringDimstrUserNameAsStringdwLen=MAX_COMPUTERNAME_LENGTH+1strString=String(dwLen,"X")
    strUserName=String(100,Chr$(0))
    GetComputerName strString, dwLen
    GetUserName strUserName,100strUserName=Left$(strUserName,InStr(strUserName,Chr$(0))-1)
txt_ip.Value=strUserName
    strString=Left(strString, dwLen)
    recherche_name=strStringEndFunction
 | 
| DimstrComputerNameAsStringDimstrUserNameAsStringstrComputerName=Environ("COMPUTERNAME") 
strUserName=Environ("USERNAME")
 | 
 | 
|  |  | auteur : Morsi |  | Ajouter ce code après Option Explicit : | PrivateDeclareSubGetSystemInfo Lib"kernel32"(lpSystemInfoAsSYSTEM_INFO)PrivateType SYSTEM_INFO
    dwOemIDAsLong
    dwPageSizeAsLong
    lpMinimumApplicationAddressAsLong
    lpMaximumApplicationAddressAsLong
    dwActiveProcessorMaskAsLong
    dwNumberOrfProcessorsAsLong
    dwProcessorTypeAsLong
    dwAllocationGranularityAsLong
    dwReservedAsLongEndType
 | 
Ensuite faites appel à getsysinfo() | PrivateSubgetsysinfo()DimSInfoAsSYSTEM_INFO
    GetSystemInfo SInfoMsgBox"Processeur de type "&str$(SInfo.dwProcessorType)EndSub
 | 
 | 
|  |  | auteur : mout1234 |  | Pour faire cela il faut simuler la touche Shift à l'aide de l'API keybd_event.
 Pensez à mettre la référence => Microsoft DAO 3.x Object Lirary
 
 
 Code mettre dans un nouveau module:
 
 | Declare Subkeybd_event Lib"user32"(ByValbVkAsByte,ByValbScanAsByte,ByValdwFlagsAsLong,ByValdwExtraInfoAsLong)SubOpenDB()DimdbAsDatabaseDimappAccessAsAccess.ApplicationConstcsts="D:\Mes documents\BaseTests.mdb"keybd_event vbKeyShift,0,0,0SetappAccess=NewAccess.ApplicationappAccess.Visible=TrueappAccess.OpenCurrentDatabasecsts
    appAccess.DoCmd.OpenForm"MonForm"keybd_event vbKeyShift,0,2,0EndSub
 | 
 | 
|  |  | auteur : Cafeine |  | Voici un module pour récupérer une addresse MAC distante :
 
 | OptionExplicitPrivateDeclareFunctioninet_addr Lib"WSOCK32.DLL"_
  (ByValsAsString)AsLongPrivateDeclareFunctionSendARP Lib"iphlpapi.dll"_
  (ByValDestIPAsLong, _ByValSrcIPAsLong, _
   pMacAddrAsLong, _
   PhyAddrLenAsLong)AsLongPrivateDeclareSubCopyMemory Lib"KERNEL32"_
   Alias"RtlMoveMemory"_
  (dstAsAny, _
   srcAsAny, _ByValbcountAsLong)PrivateConstRESOURCETYPE_ANY=&H0PrivateConstRESOURCE_CONNECTED=&H1PrivateType NETRESOURCE
   dwScopeAsLong
   dwTypeAsLong
   dwDisplayTypeAsLong
   dwUsageAsLong
   lpLocalNameAsLong
   lpRemoteNameAsLong
   lpCommentAsLong
   lpProviderAsLongEndTypePrivateDeclareFunctionWNetOpenEnum Lib"mpr.dll"Alias _"WNetOpenEnumA"(ByValdwScopeAsLong,ByValdwTypeAsLong, _ByValdwUsageAsLong, lpNetResourceAsAny, lphEnumAsLong) _AsLongPrivateDeclareFunctionWNetEnumResource Lib"mpr.dll"Alias _"WNetEnumResourceA"(ByValhEnumAsLong, lpcCountAsLong, _
   lpBufferAsAny, lpBufferSizeAsLong)AsLongPrivateDeclareFunctionWNetCloseEnum Lib"mpr.dll"( _ByValhEnumAsLong)AsLongPrivateDeclareFunctionlstrlen Lib"KERNEL32"Alias"lstrlenA"_
   (ByVallpStringAsAny)AsLongPrivateDeclareFunctionlstrcpy Lib"KERNEL32"Alias"lstrcpyA"_
   (ByVallpString1AsAny,ByVallpString2AsAny)AsLongPrivateConstWS_VERSION_REQD=&H101PrivateConstWS_VERSION_MAJOR=WS_VERSION_REQD\&H100And&HFF&PrivateConstWS_VERSION_MINOR=WS_VERSION_REQDAnd&HFF&PrivateConstMIN_SOCKETS_REQD=1PrivateConstSOCKET_ERROR=-1PrivateConstWSADescription_Len=256PrivateConstWSASYS_Status_Len=128PrivateType HOSTENT
    hNameAsLong
    hAliasesAsLong
    hAddrTypeAsInteger
    hLengthAsInteger
    hAddrListAsLongEndTypePrivateType WSADATA
    wversionAsInteger
    wHighVersionAsIntegerszDescription(0ToWSADescription_Len)AsByteszSystemStatus(0ToWSASYS_Status_Len)AsByte
    iMaxSocketsAsInteger
    iMaxUdpDgAsInteger
    lpszVendorInfoAsLongEndTypePrivateDeclareFunctionWSAGetLastError Lib"WSOCK32.DLL"()AsLongPrivateDeclareFunctionWSAStartup Lib"WSOCK32.DLL"(ByVal_
wVersionRequiredAsInteger, lpWSADataAsWSADATA)AsLongPrivateDeclareFunctionWSACleanup Lib"WSOCK32.DLL"()AsLongPrivateDeclareFunctiongethostname Lib"WSOCK32.DLL"(ByValhostname$, _ByValHostLenAsLong)AsLongPrivateDeclareFunctiongethostbyname Lib"WSOCK32.DLL"(ByVal_
hostname$)AsLongPrivateDeclareSubRtlMoveMemory Lib"KERNEL32"(hpvDestAsAny,ByVal_
hpvSource&,ByValcbCopy&)PublicFunctionGetRemoteMACAddress(ByValpIPDistanteAsString)AsStringDimlAddrAsLongDimlMacAddrAsLongDimlMacAddrByte()AsByteDimlPhyAddrLenAsLongDimlCptAsInteger
lAddr=inet_addr(pIPDistante)IflAddr<>-1ThenlPhyAddrLen=6IfSendARP(lAddr,0&, lMacAddr, lPhyAddrLen)=0ThenIf(lMacAddr<>0)And(lPhyAddrLen<>0)ThenReDimlMacAddrByte(0TolPhyAddrLen-1)
            
            CopyMemorylMacAddrByte(0), lMacAddr,ByVallPhyAddrLen
            
            GetRemoteMACAddress=""ForlCpt=LBound(lMacAddrByte)ToUBound(lMacAddrByte)
                GetRemoteMACAddress=GetRemoteMACAddress&Right("00"&Hex(lMacAddrByte(lCpt)),2)&IIf(lCpt=UBound(lMacAddrByte),"","-")NextEndIfEndIfEndIfEndFunctionPublicFunctionLetterToUNC(DriveLetterAsString)AsStringDimhEnumAsLongDimNetInfo(1023)AsNETRESOURCEDimentriesAsLongDimnStatusAsLongDimLocalNameAsStringDimUNCNameAsStringDimiAsLongDimrAsLong
 
nStatus=WNetOpenEnum(RESOURCE_CONNECTED, RESOURCETYPE_ANY, _0&,ByVal0&, hEnum)
 
LetterToUNC="Drive Letter Not Found"If((nStatus=0)And(hEnum<>0))Thenentries=1024nStatus=WNetEnumResource(hEnum, entries,NetInfo(0), _CLng(Len(NetInfo(0)))*1024)IfnStatus=0ThenFori=0Toentries-1LocalName=""IfNetInfo(i).lpLocalName<>0ThenLocalName=Space(lstrlen(NetInfo(i).lpLocalName)+1)
            r=lstrcpy(LocalName,NetInfo(i).lpLocalName)EndIfIfLen(LocalName)<>0ThenLocalName=Left(LocalName, (Len(LocalName)-1))EndIfIfUCase$(LocalName)=UCase$(DriveLetter)ThenUNCName=""IfNetInfo(i).lpRemoteName<>0ThenUNCName=Space(lstrlen(NetInfo(i).lpRemoteName) _+1)
               r=lstrcpy(UNCName,NetInfo(i).lpRemoteName)EndIfIfLen(UNCName)<>0ThenUNCName=Left(UNCName, (Len(UNCName) _-1))EndIfLetterToUNC=UNCNameExitForEndIfNextiEndIfEndIfnStatus=WNetCloseEnum(hEnum)EndFunctionPrivateFunctionhibyte(ByValwParamAsInteger)
    hibyte=wParam\&H100And&HFF&EndFunctionPrivateFunctionlobyte(ByValwParamAsInteger)
    lobyte=wParamAnd&HFF&EndFunctionPrivateSubSocketsInitialize()DimWSADAsWSADATADimiReturnAsIntegerDimsLowByteAsString, sHighByteAsString, sMsgAsStringiReturn=WSAStartup(WS_VERSION_REQD, WSAD)IfiReturn<>0ThenMsgBox"Winsock.dll is not responding."EndEndIfIflobyte(WSAD.wversion)<WS_VERSION_MAJOROr(lobyte(WSAD.wversion)=_
        WS_VERSION_MAJORAndhibyte(WSAD.wversion)<WS_VERSION_MINOR)ThensHighByte=Trim$(Str$(hibyte(WSAD.wversion)))
        sLowByte=Trim$(Str$(lobyte(WSAD.wversion)))
        sMsg="Windows Sockets version "&sLowByte&"."&sHighByte
        sMsg=sMsg&" is not supported by winsock.dll "MsgBoxsMsgEndEndIfIfWSAD.iMaxSockets<MIN_SOCKETS_REQDThensMsg="This application requires a minimum of "sMsg=sMsg&Trim$(Str$(MIN_SOCKETS_REQD))&" supported sockets."MsgBoxsMsgEndEndIfEndSubPrivateSubSocketsCleanup()DimlReturnAsLong
    lReturn=WSACleanup()IflReturn<>0ThenMsgBox"Socket error "&Trim$(Str$(lReturn))&" occurred in Cleanup "EndEndIfEndSubPublicFunctionGetIpFromHost(ByValpHostNameAsString)AsVariantDimhostnameAsString*256Dimhostent_addrAsLongDimhostAsHOSTENTDimhostip_addrAsLongDimtemp_ip_address()AsByteDimiAsIntegerDimip_addressAsStringDimlCptAsIntegerDimlResult()AsStringOnErrorGoToGestion_Erreurs
    SocketsInitializeIfLeft(pHostName,2)="\\"ThenpHostName=Right(pHostName,Len(pHostName)-2)EndIfIfInStr(pHostName,"\")>0ThenpHostName=Left(pHostName,InStr(pHostName,"\")-1)EndIfhostname=Trim$(pHostName&vbNullChar)
    hostent_addr=gethostbyname(hostname)Ifhostent_addr=0ThenMsgBox"Winsock.dll is not responding."ExitFunctionEndIfRtlMoveMemory host, hostent_addr,LenB(host)
    RtlMoveMemory hostip_addr, host.hAddrList,4lCpt=0DoReDimtemp_ip_address(1Tohost.hLength)
        RtlMoveMemorytemp_ip_address(1), hostip_addr, host.hLengthFori=1Tohost.hLengthip_address=ip_address&temp_ip_address(i)&"."Nextip_address=Mid$(ip_address,1,Len(ip_address)-1)ReDimlResult(lCpt)lResult(lCpt)=ip_address
        lCpt=lCpt+1ip_address=""host.hAddrList=host.hAddrList+LenB(host.hAddrList)
        RtlMoveMemory hostip_addr, host.hAddrList,4LoopWhile(hostip_addr<>0)Gestion_Erreurs:
    SocketsCleanup
    GetIpFromHost=lResultEndFunction
 | 
Il y a trois fonctions :  
- LetterToUNC qui transforme une lettre de disque en nom réseau- GetIpFromHost qui recherche les adresses IP d'un serveur- GetRemoteMACAddress qui recherche l'addresse MAC à partir d'une IP Y a juste à rechercher la lettre du disque sur lequel est la base distante pour remplacer le "Q:" que j'ai mis en dur dans le code.
 
 
 |  | lien :  Comment obtenir l'adresse MAC de la carte réseau ? lien :
  http://access.developpez.com/sources/?page=reseau#mac1 lien :
  http://access.developpez.com/sources/?page=reseau#mac2 
 | 
|  |  | auteur : Cafeine |  | comment récupérer le résultat de la calculatrice de windows et plus généralement comment retrouver une fenêtre Windows par son nom ou sa classe.
 
 
 Code à mettre dans un module :
 
 | OptionExplicitPrivateDeclareFunctionGetDesktopWindow Lib"user32"()AsLongPrivateDeclareFunctionGetWindow Lib"user32"_
  (ByValhWndAsLong, _ByValwCmdAsLong)AsLongPrivateDeclareFunctionGetWindowText Lib"user32"_
   Alias"GetWindowTextA"_
  (ByValhWndAsLong, _ByVallpStringAsString, _ByValcchAsLong)AsLongPrivateDeclareFunctionGetClassName Lib"user32"_
   Alias"GetClassNameA"_
  (ByValhWndAsLong, _ByVallpClassNameAsString, _ByValnMaxCountAsLong)AsLongPrivateConstGW_HWNDFIRST=0PrivateConstGW_HWNDLAST=1PrivateConstGW_HWNDNEXT=2PrivateConstGW_HWNDPREV=3PrivateConstGW_OWNER=4PrivateConstGW_CHILD=5PublicFunctionGetWdwLike(ByValhWndStartAsLong, _
                                WindowTextAsString, _
                                ClassnameAsString)AsLongDimhWndAsLongDimsWindowTextAsStringDimsClassnameAsStringDimrAsLong
  
  
   Static levelAsIntegerIflevel=0ThenIfhWndStart=0ThenhWndStart=GetDesktopWindow()EndIflevel=level+1hWnd=GetWindow(hWndStart, GW_CHILD)DoUntilhWnd=0CallGetWdwLike(hWnd, WindowText, Classname)
      
     
      sWindowText=Space$(255)
      r=GetWindowText(hWnd, sWindowText,255)
      sWindowText=Left(sWindowText, r)
        
      sClassname=Space$(255)
      r=GetClassName(hWnd, sClassname,255)
      sClassname=Left(sClassname, r)If(sWindowText Like WindowText)And_
         (sClassname Like Classname)ThenGetWdwLike=hWndEndIfhWnd=GetWindow(hWnd, GW_HWNDNEXT)Looplevel=level-1EndFunctionPublicFunctionGetCalcResult()AsDoubleDimCalchWndAsLong, ReshWndAsLongDimsTxtAsString, rAsStringOnErrorResumeNextCalchWnd=GetWdwLike(0,"*","SciCalc")
ReshWnd=GetWdwLike(CalchWnd,"*.*","Static")
 
sTxt=Space$(255)
r=GetWindowText(ReshWnd, sTxt,255)
GetCalcResult=CDbl(Left(sTxt, r))EndFunction
 | 
 | 
|  |  | auteur : Cafeine |  | Voici une solution en utilisant les API.
 
 
 Coller ce code dans un nouveau module :
 
 | PrivateDeclareFunctionFoldString Lib"kernel32.dll"Alias _"FoldStringA"(ByValdwMapFlagsAsLong,ByVallpSrcStrAsLong, _ByValcchSrcAsLong,ByVallpDestStrAsLong,ByValcchdestAsLong)AsLongFunctionOteAccents(ByValstrAsString)AsStringDimiAsInteger
    OteAccents=Space(Len(str))Fori=0To(Len(str)-1)*2Step2FoldString&H40,StrPtr(str)+i,1,StrPtr(OteAccents)+i,1NextiEndFunction
 | 
 |  | lien :  Comment ignorer les accents dans une requête SQL ? 
 | 
|  |  | auteur : LedZeppII |  | Pour réduire une fenêtre d'une application autre qu' Access il faut passer par des API
 
 
 ces déclarations sont à mettre au début du module :
 
 | 
ConstWM_SYSCOMMANDAsLong=&H112ConstSC_MINIMIZEAsLong=&HF020&ConstSC_MAXIMIZEAsLong=&HF030&ConstSC_RESTOREAsLong=&HF120&PrivateDeclareFunctionPostMessage Lib"User32.dll"Alias"PostMessageA"( _ByValhwndAsLong,ByValMSGAsLong,ByValwParamAsLong,ByVallParamAsLong)AsLongPrivateDeclareFunctionFindWindow1 Lib"User32.dll"Alias"FindWindowA"( _ByVallpClassNameAsLong,ByVallpWindowNameAsString)AsLong
 | 
Il faut utiliser la fonction suivante pour fermer la fenêtre, celle-ci fonctionne
 avec le titre de la fenêtre à réduire :
 
 | FunctionAppMinimize(AppTitleAsString)AsBooleanDimhwndAsLong
hwnd=FindWindow1(0, AppTitle&vbNullChar)Ifhwnd<>0ThenPostMessage hwnd, WM_SYSCOMMAND, SC_MINIMIZE,0AppMinimize=TrueElseAppMinimize=FalseEndIfEndFunction
 | 
Pour comprendre le fonctionnement vous pouvez faire un essai avec le Bloc-notes, ouvrez Bloc-notes, la fenêtre s'appelle : "Sans titre - Bloc-Notes".
 
 
 mettez ce code sur un événement de votre choix :
 
 | Subquicktest()DimAppTitleAsString, tmrAsLong
AppTitle="Sans titre - Bloc-Notes"AppActivate AppTitle
tmr=TimerWhile((Timer-tmr)<2)WendAppMinimize AppTitleEndSub
 | 
Ouvrez votre Application Access en pleine fenêtre et la fenêtre Bloc-notes
 en niveau inférieur, sur appel du code ci-dessus la fenêtre Bloc-notes se réduira après timer écoulé.
 
 
 | 
|  |  | auteur : Arkham46 |  | Pour ce faire il faut utiliser l'API OleTranslateColor | PrivateDeclareFunctionOleTranslateColor Lib"olepro32.dll"_
          (ByValOLE_COLORAsLong,ByValhPaletteAsLong, pccolorrefAsLong)AsLongPrivateFunctionGetColor(pColorAsLong)AsLongIfpColor<0ThenCallOleTranslateColor(pColor,0, pColor)EndIfGetColor=pColorEndFunctionPublicFunctionLongToRGB(ByValpLongAsLong, pRedAsLong, pGreenAsLong, pBlueAsLong)AsBoolean
    pLong=GetColor(pLong)OnErrorGoToGestion_Erreurs:
    pBlue=Int(pLong/65536)
    pGreen=Int((pLong-(65536*pBlue))/256)
    pRed=pLong-((pBlue*65536)+(pGreen*256))Gestion_Erreurs:IfErr.Number=0ThenLongToRGB=TrueEndFunction
 | 
 | 
|  |  | auteur : LedZeppII |  | Pour savoir si la touche shift est activée au démarrage.Mettre dans la section Déclarations d'un module de code :
 | 
ConstVK_LSHIFTAsLong=&HA0ConstVK_RSHIFTAsLong=&HA1PrivateDeclareFunctionGetKeyState Lib"user32.dll"(ByValnVirtKeyAsInteger)AsBytePublicFunctionIsShiftKeyDown()AsBoolean
IsShiftKeyDown=FalseIf(GetKeyState(VK_LSHIFT)And&H80)=&H80ThenIsShiftKeyDown=TrueIf(GetKeyState(VK_RSHIFT)And&H80)=&H80ThenIsShiftKeyDown=TrueEndFunction
 | 
A mettre dans un module de code | PublicFunctionInit()IfIsShiftKeyDownThenIfInputBox("Mot de Passe ")="123"Then...EndIfEndIfEndFunction
 | 
Ensuite il faut créer une Macro qui sera nommée Autoexec | Action : ExécuterCode                 Nom fonction : Init()
 | 
 | 
|  |  | auteur : Mahefasoa |  | Pour réduire la fenêtre active dans Access, il suffit d'utiliser la méthode Minimize, mais pour réduire la fenêtre de l'application Microsoft Access, l'un des moyens possibles est l'appel des APIs. Voici le code à placer dans un module global:
 | 
PublicConstSW_MINIMIZE=6PublicType POINTAPI
        xAsLong
        yAsLongEndTypePublicType RECTLeftAsLong
        TopAsLongRightAsLong
        BottomAsLongEndTypePublicType WINDOWPLACEMENT
        LengthAsLong
        flagsAsLong
        showCmdAsLong
        ptMinPositionAsPOINTAPI
        ptMaxPositionAsPOINTAPI
        rcNormalPositionAsRECTEndTypePublicDeclareFunctionSetWindowPlacement Lib"user32"(ByValhwndAsLong, lpwndplAsWINDOWPLACEMENT)AsLongDimRectanAsRECTSubReduire()
    
    DoCmd.MinimizeDimWinEstAsWINDOWPLACEMENTDimPuntoAsPOINTAPIDimrtnAsLong
    Punto.x=100Punto.y=100WinEst.Length=Len(WinEst)
    WinEst.showCmd=SW_MINIMIZE
    WinEst.ptMinPosition=Punto
    WinEst.ptMaxPosition=Punto
    WinEst.rcNormalPosition=Rectan
    
    rtn=SetWindowPlacement(Application.hWndAccessApp, WinEst)EndSub
 | 
L'appel de la procédure se fait par un Call Reduire à l'événement sur clic d'un bouton. 
 | 
 
 
						Consultez les autres F.A.Q's
					 
 Les sources présentés sur cette pages sont libre de droits,
			et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
			Copyright ©2004 
			Developpez LLC. Tout droits réservés Developpez LLC.
			Aucune reproduction, même partielle, ne peut être faite de ce site et de
			l'ensemble de son contenu : textes, documents et images sans l'autorisation
			expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
			de prison et jusqu'à 300 000 E de dommages et intérets.
			Cette page est déposée à la SACD. |