text:
Ami ha scritto:

Ciao Erika,
come stai ?
Spero bene.
Mi sono scontrato anche io con questo problema recentemente.
Avevo provato anche io con DoEvents o a cambiare la chiave di registro
come ti hanno consigliato ma senza successo.
Ho però risolto prendendo spunto dal ArchiFoto di @Alex.
Prova in questo modo :
copia questi due moduli nel tuo db :
'================================================
' Module:        mGDIpEx.bas
' Author:        (*)
' Dependencies:  -
' Last revision: 2004.08.02
'================================================
'
' (*) From great stuff:
'
'     +
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=37541&lngWId=1
'       by Avery
'     + Also thanks to Vlad Vissoultchev
'
' GDI+ PNG (Load/Save) and JPEG (Save) support
' High-quality scaling
'
' In case lower versions than Windows XP, needed:
'
'     Platform SDK Redistributable: GDI+ RTM
'
http://www.microsoft.com/downloads/release.asp?releaseid=32738
Option Explicit
'-- GDI+ API:
Public Enum GpImageFormat
    [ImageGIF] = 0
    [ImageJPEG] = 1
    [ImagePNG] = 2
    [ImageTIFF] = 3
End Enum
Public Enum GpStatus
    [ok] = 0
    [GenericError] = 1
    [InvalidParameter] = 2
    [OutOfMemory] = 3
    [ObjectBusy] = 4
    [InsufficientBuffer] = 5
    [NotImplemented] = 6
    [Win32Error] = 7
    [WrongState] = 8
    [Aborted] = 9
    [FileNotFound] = 10
    [ValueOverflow ] = 11
    [AccessDenied] = 12
    [UnknownImageFormat] = 13
    [FontFamilyNotFound] = 14
    [FontStyleNotFound] = 15
    [NotTrueTypeFont] = 16
    [UnsupportedGdiplusVersion] = 17
    [GdiplusNotInitialized ] = 18
    [PropertyNotFound] = 19
    [PropertyNotSupported] = 20
End Enum
Public Type GdiplusStartupInput
    GdiplusVersion           As Long
    DebugEventCallback       As Long
    SuppressBackgroundThread As Long
    SuppressExternalCodecs   As Long
End Type
'//
Private Enum GpUnit
    [UnitWorld]
    [UnitDisplay]
    [UnitPixel]
    [UnitPoint]
    [UnitInch]
    [UnitDocument]
    [UnitMillimeter]
End Enum
Private Enum QualityMode
    [QualityModeInvalid] = -1
    [QualityModeDefault] = 0
    [QualityModeLow] = 1
    [QualityModeHigh] = 2
End Enum
Private Enum PixelOffsetMode
    [PixelOffsetModeInvalid] = -1
    [PixelOffsetModeDefault]
    [PixelOffsetModeHighSpeed]
    [PixelOffsetModeHighQuality]
    [PixelOffsetModeNone]
    [PixelOffsetModeHalf]
End Enum
Private Enum InterpolationMode
    [InterpolationModeInvalid] = [QualityModeInvalid]
    [InterpolationModeDefault] = [QualityModeDefault]
    [InterpolationModeLowQuality] = [QualityModeLow]
    [InterpolationModeHighQuality] = [QualityModeHigh]
    [InterpolationModeBilinear]
    [InterpolationModeBicubic]
    [InterpolationModeNearestNeighbor]
    [InterpolationModeHighQualityBilinear]
    [InterpolationModeHighQualityBicubic]
End Enum
Private Enum EncoderParameterValueType
    [EncoderParameterValueTypeByte] = 1
    [EncoderParameterValueTypeASCII] = 2
    [EncoderParameterValueTypeShort] = 3
    [EncoderParameterValueTypeLong] = 4
    [EncoderParameterValueTypeRational] = 5
    [EncoderParameterValueTypeLongRange] = 6
    [EncoderParameterValueTypeUndefined] = 7
    [EncoderParameterValueTypeRationalRange] = 8
End Enum
Private Enum EncoderValue
    [EncoderValueColorTypeCMYK] = 0
    [EncoderValueColorTypeYCCK] = 1
    [EncoderValueCompressionLZW] = 2
    [EncoderValueCompressionCCITT3] = 3
    [EncoderValueCompressionCCITT4] = 4
    [EncoderValueCompressionRle] = 5
    [EncoderValueCompressionNone] = 6
    [EncoderValueScanMethodInterlaced]
    [EncoderValueScanMethodNonInterlaced]
    [EncoderValueVersionGif87]
    [EncoderValueVersionGif89]
    [EncoderValueRenderProgressive]
    [EncoderValueRenderNonProgressive]
    [EncoderValueTransformRotate90]
    [EncoderValueTransformRotate180]
    [EncoderValueTransformRotate270]
    [EncoderValueTransformFlipHorizontal]
    [EncoderValueTransformFlipVertical]
    [EncoderValueMultiFrame]
    [EncoderValueLastFrame]
    [EncoderValueFlush]
    [EncoderValueFrameDimensionTime]
    [EncoderValueFrameDimensionResolution]
    [EncoderValueFrameDimensionPage]
End Enum
Private Type CLSID
    Data1         As Long
    Data2         As Integer
    Data3         As Integer
    Data4(0 To 7) As Byte
End Type
Private Type ImageCodecInfo
    ClassID           As CLSID
    FormatID          As CLSID
    CodecName         As Long
    DllName           As Long
    FormatDescription As Long
    FilenameExtension As Long
    MimeType          As Long
    Flags             As Long
    Version           As Long
    SigCount          As Long
    SigSize           As Long
    SigPattern        As Long
    SigMask           As Long
End Type
'-- Encoder Parameter structure
Private Type EncoderParameter
    GUID           As CLSID
    NumberOfValues As Long
    Type           As EncoderParameterValueType
    Value          As Long
End Type
'-- Encoder Parameters structure
Private Type EncoderParameters
    Count     As Long
    Parameter As EncoderParameter
End Type
'-- Encoder parameter sets
Private Const EncoderCompression      As String =
"{E09D739D-CCD4-44EE-8EBA-3FBF8BE4FC58}"
Private Const EncoderColorDepth       As String =
"{66087055-AD66-4C7C-9A18-38A2310B8337}"
Private Const EncoderScanMethod       As String =
"{3A4E2661-3109-4E56-8536-42C156E7DCFA}"
Private Const EncoderVersion          As String =
"{24D18C76-814A-41A4-BF53-1C219CCCF797}"
Private Const EncoderRenderMethod     As String =
"{6D42C53A-229A-4825-8BB7-5C99E2B9A8B8}"
Private Const EncoderQuality          As String =
"{1D5BE4B5-FA4A-452D-9CDD-5DB35105E7EB}"
Private Const EncoderTransformation   As String =
"{8D0EB2D1-A58E-4EA8-AA14-108074B7B6F9}"
Private Const EncoderLuminanceTable   As String =
"{EDB33BCE-0266-4A77-B904-27216099E717}"
Private Const EncoderChrominanceTable As String =
"{F2E455DC-09B3-4316-8260-676ADA32481C}"
Private Const EncoderSaveFlag         As String =
"{292266FC-AC40-47BF-8CFC-A85B89A655DE}"
Private Const CodecIImageBytes        As String =
"{025D1823-6C7D-447B-BBDB-A3CBC3DFA2FC}"
Private Type BITMAPINFOHEADER
    biSize          As Long
    biWidth         As Long
    biHeight        As Long
    biPlanes        As Integer
    biBitCount      As Integer
    biCompression   As Long
    biSizeImage     As Long
    biXPelsPerMeter As Long
    biYPelsPerMeter As Long
    biClrUsed       As Long
    biClrImportant  As Long
End Type
Private Type RGBQUAD
    B As Byte
    G As Byte
    R As Byte
    A As Byte
End Type
Private Type BITMAPINFO
    bmiHeader As BITMAPINFOHEADER
    bmiColors As RGBQUAD
End Type
Private Type PICTDESC
    Size       As Long
    Type       As Long
    hBmpOrIcon As Long
    hPal       As Long
End Type
Public Declare Function GdiplusStartup Lib "gdiplus" (Token As Long,
InputBuf As GdiplusStartupInput, Optional ByVal OutputBuf As Long = 0)
As GpStatus
Public Declare Function GdiplusShutdown Lib "gdiplus" (ByVal Token As
Long) As GpStatus
Private Declare Function GdipGetImageEncodersSize Lib "gdiplus"
(numEncoders As Long, Size As Long) As GpStatus
Private Declare Function GdipGetImageEncoders Lib "gdiplus" (ByVal
numEncoders As Long, ByVal Size As Long, Encoders As Any) As GpStatus
Private Declare Function GdipGetImageDecodersSize Lib "gdiplus"
(numDecoders As Long, Size As Long) As GpStatus
Private Declare Function GdipGetImageDecoders Lib "gdiplus" (ByVal
numDecoders As Long, ByVal Size As Long, Decoders As Any) As GpStatus
Private Declare Function GdipCreateFromHDC Lib "gdiplus" (ByVal hDC As
Long, hGraphics As Long) As GpStatus
Private Declare Function GdipCreateHBITMAPFromBitmap Lib "gdiplus"
(ByVal Bitmap As Long, hBmpReturn As Long, ByVal BackGround As Long) As
GpStatus
Private Declare Function GdipCreateBitmapFromGdiDib Lib "gdiplus"
(gdiBitmapInfo As BITMAPINFO, gdiBitmapData As Any, Bitmap As Long) As
GpStatus
Private Declare Function GdipLoadImageFromFile Lib "gdiplus" (ByVal
Filename As String, hImage As Long) As GpStatus
Private Declare Function GdipSaveImageToFile Lib "gdiplus" (ByVal
hImage As Long, ByVal sFilename As String, clsidEncoder As CLSID,
encoderParams As Any) As GpStatus
Private Declare Function GdipSetPixelOffsetMode Lib "gdiplus" (ByVal
hGraphics As Long, ByVal OffsetMode As PixelOffsetMode) As GpStatus
Private Declare Function GdipSetInterpolationMode Lib "gdiplus" (ByVal
hGraphics As Long, ByVal Interpolation As InterpolationMode) As
GpStatus
Private Declare Function GdipDrawImageRectRect Lib "gdiplus" (ByVal
hGraphics As Long, ByVal hImage As Long, ByVal dstX As Long, ByVal dstY
As Long, ByVal dstWidth As Long, ByVal dstHeight As Long, ByVal srcX As
Long, ByVal srcY As Long, ByVal srcWidth As Long, ByVal srcHeight As
Long, ByVal srcUnit As GpUnit, Optional ByVal imageAttributes As Long =
0, Optional ByVal Callback As Long = 0, Optional ByVal CallbackData As
Long = 0) As GpStatus
Private Declare Function GdipDrawImageRectRectI Lib "gdiplus" (ByVal
hGraphics As Long, ByVal hImage As Long, ByVal dstX As Long, ByVal dstY
As Long, ByVal dstWidth As Long, ByVal dstHeight As Long, ByVal srcX As
Long, ByVal srcY As Long, ByVal srcWidth As Long, ByVal srcHeight As
Long, ByVal srcUnit As GpUnit, Optional ByVal imageAttributes As Long =
0, Optional ByVal Callback As Long = 0, Optional ByVal CallbackData As
Long = 0) As GpStatus
Private Declare Function GdipDisposeImage Lib "gdiplus" (ByVal hImage
As Long) As GpStatus
Private Declare Function GdipDeleteGraphics Lib "gdiplus" (ByVal
hGraphics As Long) As GpStatus
Private Declare Function CLSIDFromString Lib "ole32" (ByVal lpszProgID
As Long, pCLSID As CLSID) As Long
Private Declare Function lstrlenW Lib "kernel32" (ByVal psString As
Any) As Long
Private Declare Function lstrlenA Lib "kernel32" (ByVal psString As
Any) As Long
Private Declare Function OleCreatePictureIndirect Lib "olepro32"
(lpPictDesc As PICTDESC, riid As Any, ByVal fPictureOwnsHandle As Long,
IPic As IPicture) As Long
Private Declare Function CopyMemory Lib "kernel32" Alias
"RtlMoveMemory" (Dest As Any, Src As Any, ByVal cb As Long) As Long
Private Const vbPicTypeNone = 0 'Picture is empty
Private Const vbPicTypeBitmap = 1 'Bitmap (.bmpBMP files)
Private Const vbPicTypeMetafile = 2 'Metafile (.wmfWMF files)
Private Const vbPicTypeIcon = 3 'Icon (.icoICO files)
Private Const vbPicTypeEMetafile = 4 'Enhanced Metafile (.emfEMF files)
'//
Public Function LoadPictureEx(ByVal sFilename As String) As StdPicture
  Dim gplRet        As Long
  Dim hImg          As Long
  Dim hBmp          As Long
  Dim uPictDesc     As PICTDESC
  Dim aGuid(0 To 3) As Long
  Dim varString As Variant
    '-- Load image
    varString = StrConv(sFilename, vbUnicode)
    'gplRet = GdipLoadImageFromFile(StrConv(sFilename, vbUnicode),
hImg)
     Call GdipLoadImageFromFile(varString, hImg)
    '-- Create bitmap
    gplRet = GdipCreateHBITMAPFromBitmap(hImg, hBmp, vbBlack)
    '-- Free image
    gplRet = GdipDisposeImage(hImg)
    If (gplRet = [ok]) Then
        '-- Fill struct
        With uPictDesc
            .Size = Len(uPictDesc)
            .Type = vbPicTypeBitmap
            .hBmpOrIcon = hBmp
            .hPal = 0
        End With
        '-- Fill in magic IPicture GUID
{7BF80980-BF32-101A-8BBB-00AA00300CAB}
        aGuid(0) = &H7BF80980
        aGuid(1) = &H101ABF32
        aGuid(2) = &HAA00BB8B
        aGuid(3) = &HAB0C3000
        '-- Create picture from bitmap handle
        OleCreatePictureIndirect uPictDesc, aGuid(0), -1, LoadPictureEx
    End If
End Function
'Public Function SaveDIB(DIB As cDIB, _
'                        ByVal sFilename As String, _
'                        ByVal lEncoder As GpImageFormat, _
'                        Optional ByVal JPEG_Quality As Long = 90, _
'                        Optional ByVal TIFF_ColorDepth As Long = 24, _
'                        Optional ByVal TIFF_Compression As Long =
[EncoderValueCompressionNone] _
'                        ) As Boolean
'
'  Dim gplRet       As Long
'  Dim uInfo        As BITMAPINFO
'  Dim hImg         As Long
'  Dim uEncCLSID    As CLSID
'  Dim uEncParams   As EncoderParameters
'  Dim aEncParams() As Byte
'
'    '-- Prepare struct
'    With uInfo.bmiHeader
'        .biSize = Len(uInfo.bmiHeader)
'        .biPlanes = 1
'        .biBitCount = 32
'        .biWidth = DIB.Width
'        .biHeight = DIB.Height
'    End With
'
'    '-- Create bitmap
'    gplRet = GdipCreateBitmapFromGdiDib(uInfo, ByVal DIB.lpBits, hImg)
'
'    '-- Get image encoder
'    Select Case lEncoder
'
'        Case [ImageGIF]
'            '-- GIF encoder
'            Call pvGetEncoderClsID("image/gif", uEncCLSID)
'            ReDim aEncParams(1 To Len(uEncParams))
'
'        Case [ImageJPEG]
'            '-- JPEG encoder
'            Call pvGetEncoderClsID("image/jpeg", uEncCLSID)
'            '-- Set encoders params. (Quality)
'            uEncParams.Count = 1: ReDim aEncParams(1 To
Len(uEncParams))
'            With uEncParams.Parameter
'                .NumberOfValues = 1
'                .Type = [EncoderParameterValueTypeLong]
'                .GUID = pvDEFINE_GUID(EncoderQuality)
'                .Value = VarPtr(JPEG_Quality)
'            End With
'            Call CopyMemory(aEncParams(1), uEncParams,
Len(uEncParams))
'
'        Case [ImagePNG]
'            '-- PNG encoder
'            Call pvGetEncoderClsID("image/png", uEncCLSID)
'            ReDim aEncParams(1 To Len(uEncParams))
'
'        Case [ImageTIFF]
'            '-- TIFF encoder
'            Call pvGetEncoderClsID("image/tiff", uEncCLSID)
'            '-- Set encoders params. (Compression/Color depth)
'            uEncParams.Count = 2: ReDim aEncParams(1 To
Len(uEncParams) + Len(uEncParams.Parameter))
'            With uEncParams.Parameter
'                .NumberOfValues = 1
'                .Type = [EncoderParameterValueTypeLong]
'                .GUID = pvDEFINE_GUID(EncoderCompression)
'                .Value = VarPtr(TIFF_Compression)
'            End With
'            Call CopyMemory(aEncParams(1), uEncParams,
Len(uEncParams))
'            With uEncParams.Parameter
'                .NumberOfValues = 1
'                .Type = [EncoderParameterValueTypeLong]
'                .GUID = pvDEFINE_GUID(EncoderColorDepth)
'                .Value = VarPtr(TIFF_ColorDepth)
'            End With
'            Call CopyMemory(aEncParams(Len(uEncParams) + 1),
uEncParams.Parameter, Len(uEncParams.Parameter))
'    End Select
'
'    '-- Kill previous
'    On Error Resume Next
'       Kill sFilename
'    On Error GoTo 0
'
'    '-- Encode
'    gplRet = GdipSaveImageToFile(hImg, StrConv(sFilename, vbUnicode),
uEncCLSID, aEncParams(1))
'
'    '-- Free image
'    gplRet = GdipDisposeImage(hImg)
'
'    '-- Success
'    SaveDIB = (gplRet = [OK])
'End Function
'
'Public Function ScaleDIB(DIB As cDIB, _
'                         ByVal NewWidth As Long, _
'                         ByVal NewHeight As Long, _
'                         Optional ByVal HighQuality As Boolean = False
_
'                         ) As Boolean
'
'  Dim gplRet    As Long
'  Dim sDIB      As New cDIB
'  Dim uInfo     As BITMAPINFO
'  Dim hGraphics As Long
'  Dim hImg      As Long
'
'  Dim OldWidth  As Long
'  Dim OldHeight As Long
'
'    If (DIB.hDIB <> 0) Then
'
'        '-- Buffer DIB
'        If (sDIB.Create(NewWidth, NewHeight)) Then
'
'            '-- Get source dimensions
'            OldWidth = DIB.Width
'            OldHeight = DIB.Height
'
'            '-- Create 'surface'
'            gplRet = GdipCreateFromHDC(sDIB.hDC, hGraphics)
'
'            '-- Create bitmap
'            With uInfo.bmiHeader
'                .biSize = Len(uInfo.bmiHeader)
'                .biPlanes = 1
'                .biBitCount = 32
'                .biWidth = DIB.Width
'                .biHeight = DIB.Height
'            End With
'            gplRet = GdipCreateBitmapFromGdiDib(uInfo, ByVal
DIB.lpBits, hImg)
'
'            '-- Scale
'            If (HighQuality) Then
'                gplRet = GdipSetInterpolationMode(hGraphics,
[InterpolationModeHighQualityBicubic])
'              Else
'                gplRet = GdipSetInterpolationMode(hGraphics,
[InterpolationModeNearestNeighbor])
'            End If
'            gplRet = GdipSetPixelOffsetMode(hGraphics,
[PixelOffsetModeHighQuality])
'            gplRet = GdipDrawImageRectRectI(hGraphics, hImg, 0, 0,
NewWidth, NewHeight, 0, 0, OldWidth, OldHeight, [UnitPixel])
'
'            '-- Clean up
'            gplRet = GdipDisposeImage(hImg)
'            gplRet = GdipDeleteGraphics(hGraphics)
'
'            '-- Success
'            If (gplRet = [OK]) Then
'
'                '-- Get from Buffer
'                If (DIB.Create(NewWidth, NewHeight)) Then
'                    DIB.LoadBlt sDIB.hDC
'                    ScaleDIB = True
'                End If
'            End If
'        End If
'    End If
'End Function
'========================================================================================
' Private
'========================================================================================
Private Function pvGetEncoderClsID(strMimeType As String, ClassID As
CLSID) As Long
  Dim Num      As Long
  Dim Size     As Long
  Dim lIdx     As Long
  Dim ICI()    As ImageCodecInfo
  Dim Buffer() As Byte
    pvGetEncoderClsID = -1 ' Failure flag
    '-- Get the encoder array size
    Call GdipGetImageEncodersSize(Num, Size)
    If (Size = 0) Then Exit Function ' Failed!
    '-- Allocate room for the arrays dynamically
    ReDim ICI(1 To Num) As ImageCodecInfo
    ReDim Buffer(1 To Size) As Byte
    '-- Get the array and string data
    Call GdipGetImageEncoders(Num, Size, Buffer(1))
    '-- Copy the class headers
    Call CopyMemory(ICI(1), Buffer(1), (Len(ICI(1)) * Num))
    '-- Loop through all the codecs
    For lIdx = 1 To Num
        '-- Must convert the pointer into a usable string
        If (StrComp(pvPtrToStrW(ICI(lIdx).MimeType), strMimeType,
vbTextCompare) = 0) Then
            ClassID = ICI(lIdx).ClassID ' Save the Class ID
            pvGetEncoderClsID = lIdx      ' Return the index number for
success
            Exit For
        End If
    Next lIdx
    '-- Free the memory
    Erase ICI
    Erase Buffer
End Function
Private Function pvGetDecoderClsID(strMimeType As String, ClassID As
CLSID) As Long
  Dim Num      As Long
  Dim Size     As Long
  Dim lIdx     As Long
  Dim ICI()    As ImageCodecInfo
  Dim Buffer() As Byte
    pvGetDecoderClsID = -1 'Failure flag
    '-- Get the encoder array size
    Call GdipGetImageDecodersSize(Num, Size)
    If (Size = 0) Then Exit Function ' Failed!
    '-- Allocate room for the arrays dynamically
    ReDim ICI(1 To Num) As ImageCodecInfo
    ReDim Buffer(1 To Size) As Byte
    '-- Get the array and string data
    Call GdipGetImageDecoders(Num, Size, Buffer(1))
    '-- Copy the class headers
    Call CopyMemory(ICI(1), Buffer(1), (Len(ICI(1)) * Num))
    '-- Loop through all the codecs
    For lIdx = 1 To Num
        '-- Must convert the pointer into a usable string
        If (StrComp(pvPtrToStrW(ICI(lIdx).MimeType), strMimeType,
vbTextCompare) = 0) Then
            ClassID = ICI(lIdx).ClassID ' Save the Class ID
            pvGetDecoderClsID = lIdx      ' Return the index number for
success
            Exit For
        End If
    Next lIdx
    '-- Free the memory
    Erase ICI
    Erase Buffer
End Function
Private Function pvDEFINE_GUID(ByVal sGuid As String) As CLSID
'-- Courtesy of: Dana Seaman
'   Helper routine to convert a CLSID(aka GUID) string to a structure
'   Example ImageFormatBMP = {B96B3CAB-0728-11D3-9D7B-0000F81EF32E}
    Call CLSIDFromString(StrPtr(sGuid), pvDEFINE_GUID)
End Function
'-- From
www.mvps.org/vbnet
'   Dereferences an ANSI or Unicode string pointer
'   and returns a normal VB BSTR
Private Function pvPtrToStrW(ByVal lpsz As Long) As String
  Dim sOut As String
  Dim lLen As Long
    lLen = lstrlenW(lpsz)
    If (lLen > 0) Then
        sOut = StrConv(String$(lLen, vbNullChar), vbUnicode)
        Call CopyMemory(ByVal sOut, ByVal lpsz, lLen * 2)
        pvPtrToStrW = StrConv(sOut, vbFromUnicode)
    End If
End Function
Private Function pvPtrToStrA(ByVal lpsz As Long) As String
  Dim sOut As String
  Dim lLen As Long
    lLen = lstrlenA(lpsz)
    If (lLen > 0) Then
        sOut = String$(lLen, vbNullChar)
        Call CopyMemory(ByVal sOut, ByVal lpsz, lLen)
        pvPtrToStrA = sOut
    End If
End Function
-----------------------------------------------------------
Option Compare Database
Option Explicit
Private Type POINTAPI
    x As Long
    Y As Long
End Type
Public Type RECTL
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
Private Type SIZEL
    cx As Long
    cy As Long
End Type
Private Declare Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory" _
(Destination As Any, Source As Any, ByVal Length As Long)
'Create our own copy of the metafile, so it doesn't get wiped out by
subsequent clipboard updates.
Declare Function CopyEnhMetaFile Lib "gdi32" Alias "CopyEnhMetaFileA"
(ByVal hemfSrc As Long, ByVal lpszFile As String) As Long
Private Declare Function PlayEnhMetaFile Lib "gdi32" (ByVal hDC As
Long, ByVal hEMF As Long, lpRect As RECTL) As Long
Private Declare Function apiCloseEnhMetaFile Lib "gdi32" _
Alias "CloseEnhMetaFile" (ByVal hDC As Long) As Long
'Private Declare Function apiCreateEnhMetaFile Lib "gdi32" _
'Alias "CreateEnhMetaFileA" (ByVal hDCref As Long, _
'ByVal lpFileName As String, ByVal lpRect As Any, ByVal lpDescription
As String) As Long
'' lprect as RECT changed to as BYVAL as Any to allow for NULL
Private Declare Function apiCreateEnhMetaFileRECT Lib "gdi32" _
Alias "CreateEnhMetaFileA" (ByVal hDCref As Long, _
ByVal lpFileName As String, ByRef lpRect As RECTL, ByVal lpDescription
As String) As Long
Private Declare Function apiDeleteEnhMetaFile Lib "gdi32" _
Alias "DeleteEnhMetaFile" (ByVal hEMF As Long) As Long
Private Declare Function GetEnhMetaFileBits Lib "gdi32" _
(ByVal hEMF As Long, ByVal cbBuffer As Long, lpbBuffer As Byte) As Long
Private Declare Function apiSelectObject Lib "gdi32" _
 Alias "SelectObject" (ByVal hDC As Long, ByVal hObject As Long) As
Long
Private Declare Function apiGetDC Lib "user32" _
  Alias "GetDC" (ByVal hwnd As Long) As Long
Private Declare Function apiReleaseDC Lib "user32" _
  Alias "ReleaseDC" (ByVal hwnd As Long, _
  ByVal hDC As Long) As Long
Private Declare Function apiDeleteObject Lib "gdi32" _
  Alias "DeleteObject" (ByVal hObject As Long) As Long
Private Declare Function GetStockObject Lib "gdi32" (ByVal nIndex As
Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA"
_
(ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Private Declare Function SetStretchBltMode Lib "gdi32" (ByVal hDC As
Long, _
ByVal nStretchMode As Long) As Long
Private Declare Function SetMapMode Lib "gdi32" (ByVal hDC As Long,
ByVal nMapMode As Long) As Long
Private Declare Function SetViewportExtEx Lib "gdi32" _
(ByVal hDC As Long, ByVal nX As Long, ByVal nY As Long, lpSize As
SIZEL) As Long
Private Declare Function SetViewportOrgEx Lib "gdi32" _
(ByVal hDC As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As
POINTAPI) As Long
Private Declare Function SetWindowOrgEx Lib "gdi32" _
(ByVal hDC As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As
POINTAPI) As Long
Private Declare Function SetWindowExtEx Lib "gdi32" _
(ByVal hDC As Long, ByVal nX As Long, ByVal nY As Long, lpSize As
SIZEL) As Long
Private Declare Function apiGetDeviceCaps Lib "gdi32" Alias
"GetDeviceCaps" _
(ByVal hDC As Long, ByVal nIndex As Long) As Long
Private Declare Function SetBkMode Lib "gdi32" (ByVal hDC As Long,
ByVal nBkMode As Long) As Long
' CONSTANTS
' StretchBlt() Modes
Private Const BLACKONWHITE = 1
Private Const WHITEONBLACK = 2
Private Const COLORONCOLOR = 3
Private Const HALFTONE = 4
Private Const MAXSTRETCHBLTMODE = 4
' Windows Message -> ScrollBar
Private Const WM_HSCROLL = &H114
Private Const WM_VSCROLL = &H115
' ScrollBar Commands
Private Const SB_LINEUP = 0
Private Const SB_LINELEFT = 0
Private Const SB_LINEDOWN = 1
Private Const SB_LINERIGHT = 1
Private Const SB_PAGEUP = 2
Private Const SB_PAGELEFT = 2
Private Const SB_PAGEDOWN = 3
Private Const SB_PAGERIGHT = 3
Private Const SB_THUMBPOSITION = 4
Private Const SB_THUMBTRACK = 5
Private Const SB_TOP = 6
Private Const SB_LEFT = 6
Private Const SB_BOTTOM = 7
Private Const SB_RIGHT = 7
Private Const SB_ENDSCROLL = 8
'  Ternary raster operations
Private Const SRCCOPY = &HCC0020 ' (DWORD) dest = source
' Predefined Clipboard Formats
Private Const CF_TEXT = 1
Private Const CF_BITMAP = 2
Private Const CF_METAFILEPICT = 3
Private Const CF_SYLK = 4
Private Const CF_DIF = 5
Private Const CF_TIFF = 6
Private Const CF_OEMTEXT = 7
Private Const CF_DIB = 8
Private Const CF_PALETTE = 9
Private Const CF_PENDATA = 10
Private Const CF_RIFF = 11
Private Const CF_WAVE = 12
Private Const CF_UNICODETEXT = 13
Private Const CF_ENHMETAFILE = 14
'  Mapping Modes
Private Const MM_TEXT = 1
Private Const MM_LOMETRIC = 2
Private Const MM_HIMETRIC = 3
Private Const MM_LOENGLISH = 4
Private Const MM_HIENGLISH = 5
Private Const MM_TWIPS = 6
Private Const MM_ISOTROPIC = 7
Private Const MM_ANISOTROPIC = 8
Private Const vbPicTypeNone = 0 'Picture is empty
Private Const vbPicTypeBitmap = 1 'Bitmap (.bmpBMP files)
Private Const vbPicTypeMetafile = 2 'Metafile (.wmfWMF files)
Private Const vbPicTypeIcon = 3 'Icon (.icoICO files)
Private Const vbPicTypeEMetafile = 4 'Enhanced Metafile (.emfEMF files)
' Stock Logical Objects
Private Const WHITE_BRUSH = 0
Private Const LTGRAY_BRUSH = 1
Private Const GRAY_BRUSH = 2
Private Const DKGRAY_BRUSH = 3
Private Const BLACK_BRUSH = 4
Private Const NULL_BRUSH = 5
Private Const HOLLOW_BRUSH = NULL_BRUSH
Private Const WHITE_PEN = 6
Private Const BLACK_PEN = 7
Private Const NULL_PEN = 8
Private Const OEM_FIXED_FONT = 10
Private Const ANSI_FIXED_FONT = 11
Private Const ANSI_VAR_FONT = 12
Private Const SYSTEM_FONT = 13
Private Const DEVICE_DEFAULT_FONT = 14
Private Const DEFAULT_PALETTE = 15
Private Const SYSTEM_FIXED_FONT = 16
Private Const STOCK_LAST = 16
' Background Modes
Private Const TRANSPARENT = 1
Private Const OPAQUE = 2
Private Const BKMODE_LAST = 2
' GetDeviceCaps
Private Const HORZSIZE = 4           '  Horizontal size in millimeters
Private Const VERTSIZE = 6           '  Vertical size in millimeters
Private Const HORZRES = 8            '  Horizontal width in pixels
Private Const VERTRES = 10           '  Vertical width in pixels
Private Const LOGPIXELSY = 90
Private Const LOGPIXELSX = 88
' How many Twips in 1 inch
Private Const TwipsPerInch = 1440
'-- GDI+
Private m_GDIpToken         As Long         ' Needed to close GDI+
'*******************************************
'DEVELOPED AND TESTED UNDER MICROSOFT ACCESS 97, 2K and 2K2
'
'
'Copyright: Lebans Holdings 1999 Ltd.
'           May not be resold in whole or part by itself, or as part of
a collection.
'           Please feel free to use any/all of this code within your
'           own applications, whether private or commercial, without
cost or obligation.
'           Please include the one line Copyright notice if you use
this function in your own code.
'
'Version:  Ver 5.0
'
'Name:      Public Function fLoadPicture(ctl As Access.Image,
'            Optional strfName As String = "", Optional AutoSize As
Boolean = False) As Boolean
'Inputs:
'           ctl -> Access Image control
'           strfName -> Optional name of Image file to load and bypass
File Dialog
'           Autosize -> flag to signify whether to autosize the control
to its contents
'
'Purpose:   Provides functionality to load JPG,GIF,BMP,EMF,WMF,CUR and
ICO
'           files on systems without the Office Graphics Filters
loaded.
'           Originally developed for Systems with Access Runtime only.
'           Supports transparency in Transparent Gifs.
'           Allows you to resize Images on Forms/Reports at runtime
'           with no loss of Image quality.
'
'Author:    Stephen Lebans
'Email:
Ste...@lebans.com
'Date:      April 12, 2003, 11:12:13 AM
'
'Called by: Anybody that wants to!
'
'How to use:See inline documentation within each function call.
'
'Notes:
'Enjoy
'Stephen Lebans
' ***************************************
' Called by the fLoadPicture function to copy the bits of the
' selected Image from a StdPicture object into our
' memory Enahnced Metafile.
' Changed to use StretchBlt and SetStretchBltMode
Function fStdPicToImageData(hStdPic As Object, ctl As Access.Image, _
Optional FileNamePath As String = "", Optional AutoSize As Boolean =
False) As Boolean
' Changed all references to StdPicture to Object
' I'm going with late binding as this is a  sample database
' and many users may not be comfortable setting references.
' If you need the faster performance you can use Early binding and
declare
' hStdPic as StdPicture.  Requires a Reference to Standard OLE Types.
' This file, OLEPRO32.DLL
' is usually found in your System folder. Goto the Menu
Tools->References
' and set a reference to the above file.
On Error GoTo ERR_SHOWPIC
' Temp Device Context for EMF creation
Dim hDCref As Long
' DC/Window extents
Dim Sz As SIZEL
Dim pt As POINTAPI
Dim rc As RECTL
' Temp var to hold API returns
Dim lngRet As Long
Dim s As String
' handle to EMF
Dim hMetafile As Long
' handle to Metafile DC
Dim hDCMeta As Long
' Array to hold binary copy of Enhanced Metafile
' we will create.
Dim arrayMeta() As Byte
' Vars to calculate resolution
Dim sngConvertX As Single
Dim sngConvertY As Single
Dim ImageWidth As Long
Dim ImageHeight As Long
Dim Xdpi As Single
Dim Ydpi As Single
Dim TwipsPerPixelX As Single
Dim TwipsPerPixelY As Single
Dim sngHORZRES As Single
Dim sngVERTRES As Single
Dim sngHORZSIZE As Single
Dim sngVERTSIZE As Single
' It must be GetDC not CreateCompatibleDC!!!
hDCref = apiGetDC(0)
' Make sure user has selected a valid supported Image type
If hStdPic.Type = 0 Then
 Err.Raise vbObjectError + 523, "fStdPicToImageData.modStdPic", _
    "Sorry...This function can only read Image files." & vbCrLf &
"Please Select a Valid Supported Image File"
End If
' Calculate the current Screen resolution.
' I used to simply use GetDeviceCaps and
' LOGPIXELSY/LOGPIXELSX. Unfortunately this does not yield accurate
results
' with Metafiles.  LOGPIXELSY will return the value of 96dpi or 120dpi
' depending on the current Windows setting for Small Fonts or Large
Fonts.
' Thanks to Feng Yuan's book "Windows Graphics Programming" for
' explaining the correct method to ascertain screen resolution.
' Let's grab the current size and resolution of our Screen DC.
sngHORZRES = apiGetDeviceCaps(hDCref, HORZRES)
sngVERTRES = apiGetDeviceCaps(hDCref, VERTRES)
sngHORZSIZE = apiGetDeviceCaps(hDCref, HORZSIZE)
sngVERTSIZE = apiGetDeviceCaps(hDCref, VERTSIZE)
' Convert millimeters to inches
sngConvertX = (sngHORZSIZE * 0.1) / 2.54
sngConvertY = (sngVERTSIZE * 0.1) / 2.54
' Convert to DPI
sngConvertX = sngHORZRES / sngConvertX
sngConvertY = sngVERTRES / sngConvertY
Xdpi = sngConvertX
Ydpi = sngConvertY
' Convert Image dimensions to Twips and Pixels
' For fun let's not convert pixels to TWIPS since
' we always do it that way. Let's be different and
' convert the StdPicture Height & Width props directly.
' These are in a Map Mode of HiMetric units, expressed in .01 mm units.
' Convert to CM
sngConvertX = hStdPic.Width * 0.001
sngConvertY = hStdPic.Height * 0.001
'Convert to Inches
sngConvertX = sngConvertX / 2.54
sngConvertY = sngConvertY / 2.54
'Convert to TWIPS
sngConvertX = sngConvertX * 1440
sngConvertY = sngConvertY * 1440
' Calculate TwipsPerPixel
TwipsPerPixelX = TwipsPerInch / Xdpi
TwipsPerPixelY = TwipsPerInch / Ydpi
' Convert to pixels
ImageWidth = sngConvertX / TwipsPerPixelX
ImageHeight = sngConvertY / TwipsPerPixelY
' Create our Enhanced Metafile - Memory Based
' Set our bounding rectangle to match that of the StdPicture object
rc.Right = hStdPic.Width
rc.Bottom = hStdPic.Height
' Since this EMF may be copied to disk let's included come creator
info.
s = "Stephen Lebans" & Chr(0) & Chr(0) & "
www.lebans.com
" & Chr(0) &
Chr(0)
hDCMeta = apiCreateEnhMetaFileRECT(hDCref, vbNullString, rc, s)
' Was the EMF creation successful?
If hDCMeta = 0 Then
    Err.Raise vbObjectError + 525, "fStdPicToImageData.modStdPic", _
    "Sorry...cannot Create Enhanced Metafile"
End If
' Setup our Metafile Device Context
' Set our mapping mode
lngRet = SetMapMode(hDCMeta, MM_TEXT) 'ANISOTROPIC) 'TEXT)
' Setup the extents for our DC
lngRet = SetWindowExtEx(hDCMeta, ImageWidth, ImageHeight, Sz)
lngRet = SetWindowOrgEx(hDCMeta, 0&, 0&, pt)
lngRet = SetWindowExtEx(hDCMeta, ImageWidth, ImageHeight, Sz)
' Setup the basics
lngRet = SetBkMode(hDCMeta, TRANSPARENT)
lngRet = apiSelectObject(hDCMeta, GetStockObject(NULL_BRUSH))
lngRet = apiSelectObject(hDCMeta, GetStockObject(NULL_PEN))
' Fixes resizing issue.
lngRet = SetStretchBltMode(hDCMeta, COLORONCOLOR)
' Use the Render method of the StdPicture object.
' Boy the MS docs on this method are not easy to digest.
' I actually found a german web site that explained it in better detail
' with examples. My problem is that I could not find a sample
' of Rendering to a Metafile DC. The MS Docs state that you must supply
' a bounding rectangle as the last argument. No matter how I tried,
' I could not get the method to accept this parameter in any
condiguration.
' Nearly ready to give up, by mistake I set the param to NULL and it
worked.
' Go figure!
' The documentation regarding the Render method is not accurate.
' You do not need to suplly a bounding RECT when rendering
' to a Metafile DC.
hStdPic.Render CLng(hDCMeta), 0&, 0&, CLng(ImageWidth),
CLng(ImageHeight), _
0&, hStdPic.Height, hStdPic.Width, -hStdPic.Height, vbNull
' You just never know...better safe than sorry!<grin>
DoEvents
' I have seen the following call fail on WIndos 98 systems.
' This happens when you have a report with a lot of Images
' and is due to a bug in the GDI with respect to Metafiles.
' Full details are on my web site in the Image handling FAQ.
hMetafile = apiCloseEnhMetaFile(hDCMeta)
If hMetafile = 0 Then
    fStdPicToImageData = False
    Exit Function
End If
' Grab the contents of the Metafile
lngRet = GetEnhMetaFileBits(hMetafile, 0, ByVal 0&)
If lngRet = 0 Then
    fStdPicToImageData = False
    Exit Function
End If
ReDim arrayMeta((lngRet - 1) + 8)
lngRet = GetEnhMetaFileBits(hMetafile, lngRet, arrayMeta(8))
' Delete EMF memory footprint.
lngRet = apiDeleteEnhMetaFile(hMetafile)
' If the first 40 bytes of a PictureData prop are
' not a BITMAPINFOHEADER structure then we will find
' a ClipBoard Format structure of 8 Bytes in length
' signifying whether a Metafile or Enhanced Metafile is present.
' The first 8 Bytes of a PictureData prop signify
' that the data is structured as one of the
' following ClipBoard Formats.
' CF_ENHMETAFILE
' CF_METAFILEPICT
' So the first 4 bytes tell us the format of the data.
' The next 4 bytes point to handle for a Memory Metafile.
' This is not needed for our construction purposes.
arrayMeta(0) = CF_ENHMETAFILE
' Copy our created PictureData bytes over to the Image Contol.
ctl.PictureData = arrayMeta
' Do we auto size the Image control to the
' dimensions of its the loaded image?
If AutoSize Then
    ' Error check to ensure we do not exceed
    ' SubForm boundaries
    If sngConvertX < ctl.Parent.Width Then
     '  If sngConvertX < Section(ctl.Section).Width Then
       ctl.Width = sngConvertX '+ 15
    Else
        ctl.Width = ctl.Parent.Width - 200
    End If
    If sngConvertY < ctl.Parent.Detail.Height Then
        ctl.Height = sngConvertY '+ 15
    Else
        ctl.Height = ctl.Parent.Detail.Height - 200
    End If
     ctl.SizeMode = acOLESizeStretch
End If
EXIT_SHOWPIC:
' Release our reference DC
lngRet = apiReleaseDC(0&, hDCref)
Exit Function
ERR_SHOWPIC:
MsgBox Err.Description, vbOKOnly, Err.Source & ":" & Err.Number
Resume EXIT_SHOWPIC
End Function
Public Function fLoadPicture(ctl As Access.Image, strfName As String,
Optional AutoSize As Boolean = False) As Boolean
' Inputs
' ctl -> Access Image control
' strfName -> Optional name of Image file to load and bypass File
Dialog
On Error GoTo Err_fLoadPicture
' Temp Vars
Dim lngRet As Long
Dim blRet As Boolean
' Our StdPicture object returned by LoadPicture
Dim hPic As Object
' Were we passed the Optional FileName and Path
' It may take a few seconds to render larger JPEGs.
' Set the MousePointer to "HOURGLASS"
Application.Screen.MousePointer = 11
' Load the Picture as a StandardPicture object
'Set hPic = LoadPicture(strfName)
'********************  START PARTE DI GESTIONE PNG
************************
Select Case Right$(strfName, 3)
    Case "bmp", "dib", "Gif", "emf", "Wmf", "ico", "cur", "jpg", "peg"
    ' Load the Picture as a StandardPicture object
    ' Use VBA LoadPicture function
    Set hPic = LoadPicture(strfName)
    Case "tif", "png"
    Dim GpInput As GdiplusStartupInput
    '-- Load the GDI+ Dll
    GpInput.GdiplusVersion = 1
    If (mGDIpEx.GdiplusStartup(m_GDIpToken, GpInput) <> [ok]) Then
      Call MsgBox("Error loading GDI+!", vbCritical)
      'Call Unload(Me)
      Exit Function
    End If
    ' Load the Picture as a StandardPicture object
    ' Use GDI+
    Set hPic = LoadPictureEx(strfName)
    ' Unload the GDI+ Dll
    Call mGDIpEx.GdiplusShutdown(m_GDIpToken)
    Case Else
    ' Unsupported Format
    ' Raise the exception
    Err.Raise vbObjectError + 518, "LoadJpegGif.modStdPic", _
    "This Image format is not supported!" & vbCrLf & strfName & vbCrLf
& _
    "Please Select a Supported Image format:" & vbCrLf & _
    "JPEG, TIFF, PNG, BMP, DIB, GIF, EMF, WMF, ICO or CUR"
End Select
'********************  STOP PARTE DI GESTIONE PNG
************************
If hPic = 0 Then
    Err.Raise vbObjectError + 514, "LoadJpegGif.modStdPic", _
    "Please Select a Supported Image format:" & vbCrLf & _
    "JPEG, TIFF, PNG, BMP, DIB, GIF, EMF, WMF, ICO or CUR"
End If
' Call our function to convert the StdPicture object
' into a DIB wrapped within an Enhanced Metafile
blRet = fStdPicToImageData(hPic, ctl, , AutoSize)
' need error handling here
' Cleanup
fLoadPicture = True
Exit_LoadPic:
' Set the MousePointer back to Default
Application.Echo True
Application.Screen.MousePointer = 0
Err.Clear
Set hPic = Nothing
Exit Function
Err_fLoadPicture:
fLoadPicture = False
Application.Screen.MousePointer = 0
MsgBox Err.Description, vbOKOnly, Err.Source & ":" & Err.Number
Resume Exit_LoadPic
End Function
Public Sub ScrollToHome(ctl As Control)
' Scroll the Form back to X:0,Y:0
' The Form is heavily Subclassed by Access.
' It does not seem to respond to SB_TOP or SB_LEFT
' so we have to resort to the following kludge.
' Temp var
Dim lngRet As Long
' Temp counter
Dim lngTemp As Long
' Be careful because of Echo Off
On Error Resume Next
' Stop Screen Redraws
Application.Echo False
For lngTemp = 1 To 9
lngRet = SendMessage(ctl.Parent.hwnd, WM_VSCROLL, SB_PAGEUP, 0&)
lngRet = SendMessage(ctl.Parent.hwnd, WM_HSCROLL, SB_PAGELEFT, 0&)
Next lngTemp
' Start Screen Redraws
Application.Echo True
End Sub
------------------------------------------------------------------
la richiami così :
Call fLoadPicture(Me.ControlloImmagine, Me.nomeImmagineEPath)
magari ci saranno altre soluzione, ma non ne ho trovate.
Se hai problemi in serata ti rimando questa soluzione nel tuo Db che
tanto da qualche parte a casa lo devo avere.
Intanto ti saluto.
Sandro
Ps. Spero che il post sia ben leggibile, sto scrivendo da Internet.


title: CRASH SU IMMAGINI COLLEGATE in MASCHERE E REPORT

author: oierpa

text:
Ami <
ts...@libero.it
> ha scritto:
> Buongiorno a tutto il NG.
>
> ho seguito le varie istruzioni dedicate all'argomento sul Sito Comune e
> ho inserito il controllo (casella di testo) Pathimmagine collegato al
> campo della tabella dove memorizzo il percorso dell'immagine e
> un'immagine non associata, con questo codice
>
> Me.immagine.picture = Me.Pathimmagine (su onCurrent nella maschera e
> onFormat nel report).
>
> Apparentemente funziona tutto, ma in realta'... il crash è in agguato:
Beata te!
ma io non capisco.
"MA" in una risposta ad un problema similie mi ha detto di aggiungere
un'immagine non associata (quella con il sole e le montagne). Ma se la
inserisco lui subito mi chiede di associarla ad un'immagine statica. Non
capisco il nesso fra inserire l'immagine statica e mettere la riga di
codice tanto famosa. Per scrivere quella riga di codice io clicco in un
punto vuote del corpo del report e con il pulsante destro apro il menu a
tendina, clicco su genera evento, e qui scrivo la riga come la tua fra
"Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer)" e
"end sub"
ma non funziona per niente!!!!
[cut]
ciao
--
oierpa
"Don' t follow me, I'm lost too!"


author: MA

text:

Quell'immagine statica ti serve solo per avere il controllo immagine, dopo
la devi eliminare



author: Carlo Costarella

text:
"oierpa" <
5301i...@mynewsgate.net
> ha scritto nel messaggio
news:200507201...@mynewsgate.net...

..."dopo la devi eliminare", l'immagine, la foto, la bmp, NON il
controllo...
Ciao, Carlo


author: Nicola

text:
Il Wed, 20 Jul 2005 11:46:39 +0000, Ami ha scritto:
> Buongiorno a tutto il NG.
>
> ho seguito le varie istruzioni dedicate all'argomento sul Sito Comune e
> ho inserito il controllo (casella di testo) Pathimmagine collegato al
> campo della tabella dove memorizzo il percorso dell'immagine e
> un'immagine non associata, con questo codice
>
> Me.immagine.picture = Me.Pathimmagine (su onCurrent nella maschera e
> onFormat nel report).
>
> Apparentemente funziona tutto, ma in realta'... il crash è in agguato:
>
> Le immagini sono tutte .jpg di dimensione minima (10K cad), i record
> sono circa 380 e uso access 2003.
>
> In pratica il problema è che se passo velocemente da un record
> all'altro, dopo qualche decina di record il caricamento dell'immagine
> si pianta e access da' errore e si chiude.
>
ti conviene agire sul registro di configurazione di windows...
vai su START, su ESEGUI, scrivi REGEDIT e dai invio..
ti posizioni sulla voce Risorse del computer e clicchi su MODIFICA/TROVA
selezioni le caselle CHIAVI e STRINGA INTERA deselezionando le atre e
trovi la voce JPEG..
ogni voce trovata avrà una sottochiave OPTIONS che devi selezionare...
sulla destra apparirà una voce nominata SHOWPROGRESSDIALOG con valore YES
che devi passare a NO...
ripeti la ricerca premendo F3 e ripeti l'operazione finchè ti viene
riferito che non vi sono altre voci...
la procedura è valida di sicuro sui sistemi da Win 2000 in su, sui
precedenti nn so...


text:
Carlo Costarella <
carloco...@libero.it
> ha scritto:
[cut]
>
> ...."dopo la devi eliminare", l'immagine, la foto, la bmp, NON il
> controllo...
>
> Ciao, Carlo
zitti zitti che qualcosa si è mosso, ora mi dice che non riesce a trovare
l'immagine ma è un messaggio incoraggiante. Il file deve essere per forza
bmp?
Il percorso deve essere assoluto?
Ho messo il percorso come relativo:
.\immagini\nomefile.jpg
e non riusciva a caricare
ora faccio un po' di prove...
sto impazzendo!



text:
[cut]
> la procedura è valida di sicuro sui sistemi da Win 2000 in su, sui
> precedenti nn so...
Ha funzionato!
non riuscivo a fare nulla, poi non trovava l'immagine, ho dato il
percorso assoluto ed è andato a posto, ma quando non c'erano immagini si
piantava, allora ne ho aggiunte di vuote e ha generato il report.
E' da lunedì mattina che cerco di fare SOLO questo!
Mi hai tolto un peso enorme, non so come ringraziarti!
ciao



text:
oierpa wrote:
> [cut]
>> la procedura č valida di sicuro sui sistemi da Win 2000 in su, sui
>> precedenti nn so...
> Ha funzionato!
> non riuscivo a fare nulla, poi non trovava l'immagine, ho dato il
> percorso assoluto ed č andato a posto, ma quando non c'erano immagini
> si piantava, allora ne ho aggiunte di vuote e ha generato il report.
> E' da lunedě mattina che cerco di fare SOLO questo!
>
> Mi hai tolto un peso enorme, non so come ringraziarti!
> ciao
fai cosě
if dir(tuopercorso) <>"" then
    tuoimmagine.picture = tuopath
else
    tuoimmagine.picture = empty
end if



author: SunRex

text:
"Roberto dalla campagna" <
r.masso...@libero.it
> ha scritto nel
messaggio news:AosDe.8077$B6.2...@twister1.libero.it...

Io avevo lo stesso problema ed ho risolto così infatti.
SunRex



author: Ami

text:
On 20 Jul 2005 07:20:56 -0700, "Sandro" <
sape...@tiscali.it
> wrote:
>Ciao Erika,
>come stai ?
>Spero bene.
Ciao! Tutto benissimo, sto dando le ultime "rifiniture" ^_^
>Mi sono scontrato anche io con questo problema recentemente.
>Avevo provato anche io con DoEvents o a cambiare la chiave di registro
>come ti hanno consigliato ma senza successo.
La chiave di registro l'avevo provata ieri sera, ma niente. E anche con
doevents... crasha regolarmente.
>Ho però risolto prendendo spunto dal ArchiFoto di @Alex.
>Prova in questo modo :
[CUT]
Mamma mia! Ora mi ci metto immediatamente!!
>Se hai problemi in serata ti rimando questa soluzione nel tuo Db che
>tanto da qualche parte a casa lo devo avere.
Grazie, spero di farcela! Vi faccio sapere subito!
Grazie ancora
Erika
>Ps. Spero che il post sia ben leggibile, sto scrivendo da Internet.
Tutto chiarissimo!
--
Per rispondermi... Togli "nospam"
To send me an email... take out "nospam"


text:
On Wed, 20 Jul 2005 19:23:03 GMT, Ami <
ts...@libero.it
> wrote:
>On 20 Jul 2005 07:20:56 -0700, "Sandro" <
sape...@tiscali.it
> wrote:
>
>>Ciao Erika,
>>come stai ?
>>Spero bene.
>
>Ciao! Tutto benissimo, sto dando le ultime "rifiniture" ^_^
>
>>Mi sono scontrato anche io con questo problema recentemente.
>>Avevo provato anche io con DoEvents o a cambiare la chiave di registro
>>come ti hanno consigliato ma senza successo.
>
>La chiave di registro l'avevo provata ieri sera, ma niente. E anche con
>doevents... crasha regolarmente.
>
>>Ho però risolto prendendo spunto dal ArchiFoto di @Alex.
>>Prova in questo modo :
>
>[CUT]
Sembra che funzioni!! Vedo le immagini. Devo ancora capire un paio di cose,
ma... per ora tutto OK
Grazie!!
Erika



text:
On Wed, 20 Jul 2005 20:25:18 GMT, Ami <
ts...@libero.it
> wrote:
>Sembra che funzioni!! Vedo le immagini. Devo ancora capire un paio di cose,
>ma... per ora tutto OK
Rieccomi!
Confermo quanto precedentemente affermato :)
Funziona benissimo.
Unico particolare: se lascio le immagini come jpg, quando carico il report
completo (tutti i 380 record) e scorro da un record all'altro, ho l'errore
"memoria insuff.", se invece uso i bmp, il report diventa molto lento, ma nessun
errore.
Immagino che sia un problema di gestione delle immagini da parte di access,
quando deve gestirne 380 al volo.
Lasciare il bmp non mi crea particolari problemi, certo che la cartella che
contiene le immagini diviene molto pesante, per quanto piccola possa essere la
foto (90x90, circa 25K a foto)
Suggerimenti?
E' anche vero che non penso che mi capitera' mai di stampare TUTTI i record per
fare un'enciclopedia...
Ciao!



text:
[cut]
> fai così
> if dir(tuopercorso) <>"" then
>     tuoimmagine.picture = tuopath
> else
>     tuoimmagine.picture = empty
> end if
>
ok ora provo.
Grazie comunque anche a te, scusa ma ieri ero di fretta e dopo la prova
sono dovuto schizzare via.
Grazie 1000!



title: Ma è possibile?!

author: Paolo

text:
Salve a tutti!!!
Premetto che le mie conoscenza di Access sono mooolto limitate..........
Vorrei sapere se è possibile realizzare una maschera che funzioni nel
seguente modo:
vorrei che digitando il codice di un prodotto nell'apposito campo cod della
maschera, questa mi andasse a leggere il record relativo a quel codice nella
tabella "Listino generale"; attraverso un apposito pulsante di comando
vorrei poi poter scrivere questo record nella tabella "Magazzino" e
ricominciare il tutto da capo con un altro prodotto semplicemente cambiando
il codice nel campo cod della maschera, o attraverso un pulsante di comando
che mi consenta di ripetere l'operazione con un altro prodotto.
Che dite,si può fare!? Ho realizzato un database che fa la stessa cosa,ma
con una query che mi chieda il cod prodotto all'avvio e col
copia/incolla.....non  è il massimo della praticità........
Grazie per l'aiuto!!!
Paolo


title: Ma è possibile?!

author: Alessandro Cara

text:
"Paolo" <
paolopa...@hotmail.com
> ha scritto nel messaggio
news:U7ok9.11561$Eu.2...@twister1.libero.it...

il messaggio non l'ho letto poiche' se il "subject" non e' esplicativo
mamma  mi ha detto di non farlo.
cmq. in Access tutto e' possibile ergo la risposta e' "SI"
--
a.cara


title: Ma è possibile?!

author: Antonio Biso

text:
"Paolo" <
paolopa...@hotmail.com
> ha scritto nel messaggio
news:U7ok9.11561$Eu.2...@twister1.libero.it...
Scrivere un subject significativo?
Certo che sì!
Antonio


title: accesse traduce il termine altezza in height

author: cheerful

text:
In una casella inserisco - origine riga: =([Peso]*[Altezza]) e non
succede nulla perchè access ha tradotto altezza in inglese.
Sostituisco [Altezza] con un altro termine e funziona.
sicuramente sbaglio io che sono alle prime armi!!!
--------------------
chee...@inwind.it
  (icq) 137101505
--------------------
togli NO se rispondi in
e-mail


text:
cheerful <
luposo...@cheerful.com
> wrote in message
3c0de1f9...@news.libero.it...
> In una casella inserisco - origine riga: =([Peso]*[Altezza]) e non
> succede nulla perchè access ha tradotto altezza in inglese.
> Sostituisco [Altezza] con un altro termine e funziona.
>
> sicuramente sbaglio io che sono alle prime armi!!!
Ci sono delle parole riservate che è meglio non usare per i nomi dei campi
Antonio


author: Roberto dal portatile

text:
"cheerful" <
luposo...@cheerful.com
> ha scritto nel messaggio
news:3c0de1f9...@news.libero.it...
> In una casella inserisco - origine riga: =([Peso]*[Altezza]) e non
> succede nulla perchè access ha tradotto altezza in inglese.
> Sostituisco [Altezza] con un altro termine e funziona.
>
> sicuramente sbaglio io che sono alle prime armi!!!
Sbagli per il fatto che usi nomi riservati di Access per nominare i tuoi
campi: nel generatore di espressioni (tuo caso), che come saprai usa la
lingua di origine della versione (a quanto pare l'italiano nel tuo caso) per
Access Altezza significa Height che è appunto una parola riservata.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


text:
"Antonio Biso" <
ch...@etruria.net
> ha scritto nel messaggio
news:lwlP7.242088$sq5.11...@news.infostrada.it...

Scusami, ma quando ho risposto non avevo visto la tua risposta. :(
Ciao
Roberto


text:
Roberto dal portatile <
r.ma...@repubblica.it
> wrote in message
9ul6lh$1qh4$1...@stargate1.inet.it...
>
> "Antonio Biso" <
ch...@etruria.net
> ha scritto nel messaggio
> news:lwlP7.242088$sq5.11...@news.infostrada.it...
> > cheerful <
luposo...@cheerful.com
> wrote in message
> > 3c0de1f9...@news.libero.it...
> > > In una casella inserisco - origine riga: =([Peso]*[Altezza]) e non
> > > succede nulla perchč access ha tradotto altezza in inglese.
> > > Sostituisco [Altezza] con un altro termine e funziona.
> > >
> > > sicuramente sbaglio io che sono alle prime armi!!!
> >
> > Ci sono delle parole riservate che č meglio non usare per i nomi dei
campi
> >
> > Antonio
>
> Scusami, ma quando ho risposto non avevo visto la tua risposta. :(
Umpf!!
Dicono tutti cosě...
Il Bettini era il principe di questa tecnica per vincere la classifica dei
post del mese...
Snort!
Antonio


text:
"Antonio Biso" <
ch...@etruria.net
> ha scritto nel messaggio
news:_NGP7.249142$sq5.12...@news.infostrada.it...
[CUT]
>
> Umpf!!
> Dicono tutti così...
> Il Bettini era il principe di questa tecnica per vincere la classifica dei
> post del mese...
> Snort!
>
> Antonio
>
Beh, non è carino che mi svergogni così pubblicamente. :-)
Ciao
Roberto


text:
Roberto dal portatile <
r.ma...@repubblica.it
> wrote in message
9uninl$3elm$1...@stargate1.inet.it...
>
> "Antonio Biso" <
ch...@etruria.net
> ha scritto nel messaggio
> news:_NGP7.249142$sq5.12...@news.infostrada.it...
> [CUT]
> >
> > Umpf!!
> > Dicono tutti cosě...
> > Il Bettini era il principe di questa tecnica per vincere la classifica
dei
> > post del mese...
> > Snort!
> >
> > Antonio
> >
>
> Beh, non č carino che mi svergogni cosě pubblicamente. :-)
>
> Ciao
Ehe eheh
antonio


title: OT - Corso Programmazione Applicativa IBM AS400.

author: Riccardo Battistutta

text:
Società di informatica ricerca giovani ambosessi massimo 25 anni
a cui fare frequentare gratuitamente un corso completo di
programmazione applicativa sui sistemi IBM AS400. La durata del corso
è di due mesi full time e si terrà presso la propria sede di Milano.
Al termine del corso i partecipanti saranno avviati su progetti di
sviluppo e/o manutenzione di sistemi informativi presso la propria
sede o presso i propri clienti. Per ulteriori informazioni rivolgersi
al sig. Rinaldo Poni.
M.D.T. Srl
P.zza Bonomelli, 4
20139 Milano
Tel. 02/57407088
Fax 02/57402139
e-mail:
md...@tiscalinet.it


title: Aggiungere file .cab

author: Ferrari Rino

text:
Salve
Come poter  aggiungere un nuovo file ad un file.cab o modificarne altri e
definirne la destinazione al momento dell'estrazione .
Grazie.
Rino ferrari


title: Aggiungere file .cab

author: Sauro

text:
"Ferrari Rino" <
rinof...@virgilio.it
> ha scritto nel messaggio
news:%LJWa.10105$an6.3...@news1.tin.it...

Cabcentral su
www.greeneclipsesoftware.com


title: Aggiungere file .cab

text:
> > Salve
> > Come poter  aggiungere un nuovo file ad un file.cab o modificarne altri
e
> > definirne la destinazione al momento dell'estrazione .
> > Grazie.
> > Rino ferrari
Grazie ma volevo chidere come gestire la destinazione dei file,
mi spiego se il file da aggiungere si trova in c:\programmi\mia cartella  1
e invece la destinazione del file deve essere c:\programmi\mia cartella 2
come potet definire cio .
Rino Ferrari
>


title: Come converto un file "MDB" in un file eseguibile

author: webadri

text:
Ciao, c'è qualcuno che può
aiutarmi???????

Vorrei sapere come posso convertire un file di
access in uno eseguibile. O comunque come posso aprirlo in un ambiente
privo  di Access.


author: Rob

text:
""webadri"" <
web...@libero.it
> ha scritto nel
  messaggio
news:001701c04f4c$067c6ba0$7c9c623e@CarloSchilardi
...

Ciao, c'è qualcuno che può
  aiutarmi???????

Vorrei sapere come posso convertire un file di
  access in uno eseguibile. O comunque come posso aprirlo in un
  ambiente privo  di Access.

Prova a cambiare l'estensione da MDB a EXE!
8-|

Scherzi a parte, dai un'occhiata qua
sotto

e vedrai che la soluzione la trovi.
;-)

Sito Comune di it.comp.appl.access
http://members.xoom.it/it_db_access


author: Silvio Berruti

text:
""webadri"" <
web...@libero.it
> ha scritto nel messaggio
news:001701c04f4c$067c6ba0$7c9c623e@CarloSchilardi...
> Ciao, c'è qualcuno che può aiutarmi???????
> Vorrei sapere come posso convertire un file di access in uno eseguibile. O
comunque come posso aprirlo in > un ambiente privo  di Access.
X prima cosa, sei pregato di non postare in formato HTML. Grazie.
Trovi la risposta alla tua domanda andando a vedere il faqquone presente sul
Sito Comune (indirizzo qui sotto)
Ciao
--
Silvio
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access


author: Pleiadi

text:
> > Ciao, c'è qualcuno che può aiutarmi???????
> > Vorrei sapere come posso convertire un file di access in uno eseguibile.
O
> comunque come posso aprirlo in > un ambiente privo  di Access.
>
> X prima cosa, sei pregato di non postare in formato HTML. Grazie.
>
> Trovi la risposta alla tua domanda andando a vedere il faqquone presente
sul
> Sito Comune (indirizzo qui sotto)
>
....era un pezzo che non si leggevano tali richieste, quasi quasi ne sentivo
la mancanza!
Alfio
P.S.: a proposito, come si sprotegge un database? eh, eh.


text:
"Pleiadi" <
za...@libero.nospam.it
> ha scritto nel messaggio
news:iUOQ5.68702$BF.24...@news.infostrada.it...
> P.S.: a proposito, come si sprotegge un database? eh, eh.
Appena ho finito il compilatore te lo spiego...    :-))))



author: gestserv

text:
Silvio Berruti <
s...@gma.it
> wrote in message
8v0dio$l68$1...@fe1.cs.interbusiness.it...
>
> "Pleiadi" <
za...@libero.nospam.it
> ha scritto nel messaggio
> news:iUOQ5.68702$BF.24...@news.infostrada.it...
>
> > P.S.: a proposito, come si sprotegge un database? eh, eh.
>
> Appena ho finito il compilatore te lo spiego...    :-))))
>
perché crearlo quando c'é già al sito
www.compilotutto.com
 ? e se servisse
c'é anche
www.decompilotutto.com
 che vanta ancora più accessi...   :-))))


text:
"gestserv" <
gest...@uno.it
> ha scritto nel messaggio
news:8v0ejm$nfm$1...@fe1.cs.interbusiness.it...
>
> Silvio Berruti <
s...@gma.it
> wrote in message
> 8v0dio$l68$1...@fe1.cs.interbusiness.it...
> >
> > Appena ho finito il compilatore te lo spiego...    :-))))
> >
> perché crearlo quando c'é già al sito
www.compilotutto.com
 ? e se servisse
> c'é anche
www.decompilotutto.com
 che vanta ancora più accessi...   :-))))
>
>
Vedi c'è sempre qualcuno che, quando sei disposto a renderti utile x
l'umanità accessiana, ti smonta subito dicendoti che ci hanno già pensato!!!
;-))))
E io lo voglio fatto a modo mio, ecco...



title: Collegare delle tabelle DBF, in sola lettura

author: Andrea

text:
Ciao a tutti uso A2000,
ho la necessita' di collegare delle tabelle in dbf di un gestionale,
pero' per questioni di sicurezza devo farlo in sola lettura. Potrei
farlo tramite ODBC, ma vorrei evitare se possibile.
Avete qualche soluzione da propormi?
Grazie in anticipo
Andrea


author: Marco

text:
"Andrea" <
andrea.di...@tin.it
> ha scritto nel messaggio
news:a2807eb8.05040...@posting.google.com...

Ciao Andrea
Se tu usi delle maschere per la visualizzazione dei dati la soluzione più
semplice é impostare queste in sola lettura.
Marco


author: roberto isw 232

text:
"Marco" <
ma...@tin.it
> ha scritto nel messaggio
news:8J85e.1190080$35.43...@news4.tin.it...

Guarda che basta creare collegamento tabelle scegliendo come tipo dati
dbIII, e guarda che facendo così non si può fare nessuna modifica, se inceve
devi modificare i dati allora si che devi usare Odbc.
ciaooooooooo


author: Andrea DF

text:
roberto isw 232 ha scritto:

---------------------------------
Ho fatto come mi hai suggerito, scegliendo DBIII come driver, ma i irecord
posso comunque modificarli, ho provato anche con DBIV e DB5, uguale.
Penso di utilizzare ODBC perche' ripensandoci dovrei fare qualche
modifica, ma, altro problema sulla tabella ARTICOLI.DBF all'atto del link
mi restituisce un errore "File dell'indice non trovato", premo OK e
finisce la, ma quella tabella mi serve.
Grazie
---------------------------------
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news
 segnala gli abusi ad
ab...@newsland.it


author: ciroteo

text:
"Andrea DF" <
andrea.di...@tin.it
> ha scritto nel messaggio
news:d33bgb$l93$1...@news.newsland.it...

anche a me è successo e da lo stesso errore. Devi prima passare da excel e
poi il .dbf ti viene aperto regolarmente da access.
Io non dovendo usare i dati super aggiornati, (cioè gli stessi che usano con
gestionale della contabilità che ha questi dbf ) apro
i file con excel, collego il file come se fosse una tabella collegata e li
riaccodo ad una mia tabella in access nativa.


text:
"ciroteo" <
ciroteo_c...@libero.it
> ha scritto nel messaggio
news:d33c86$rbs$1...@hulme.interac.it...

Strano sono anni che lavoro con le tabelle collegate in questa maniera!
Quando mi sono trovato nella necessità di dover modificarli ho dovuto
rivedere il tutto, ossia come dicevo usare odbc..
ciaoo


title: Indirizzo pagine Web del newsgroup

author: Stefano B

text:
Non ricordo l'indirizzo web del sito che raccoglie le FAQ di questo
newsgroup. Qualcuno può indicarmela?
Grazie
Stefano B.


title: Indirizzo pagine Web del newsgroup

author: delta

text:
Stefano B ha scritto nel messaggio <8a2m04$clv$
1...@serv1.iunet.it
>...

http://members.xoom.it/it_db_access
ciao
flavio


title: personalizzare nomi colonne in maschera datasheet

author: mario rossi

text:
mi spiego meglio, ho una maschera con dentro una sottomaschera
la sottomaschera è in modalità datasheet
ma vorrei cambiare le intestazioni di colonna mettendo delle etichette nella form principale in alto

la domanda è:
è possibile ridimensionare la larghezza di un etichetta nella form principale in modo che sia sempre larga uguale alla larghezza della colonna della sottomaschera a cui decidi di associarla?

Grazie.


text:

ho provato a mettere questo codice in un pulsante

    Me.Commessa.Width = Forms![form1]![sottofrom1]![Commessa].Width

per capire se quando allargavo la colonna commessa della sottoform in modalità datasheet poi l'etichetta in alto di nome commessa diventava larga uguale ma non funziona
e poi sembrerebbe che il ridimensionamento delle colonne nella sottomaschera datasheet sia una cosa "on the fly" e non può essere intercettata da un evento, sbaglio?


title: mySQL è veramente freeware?

author: SiMO

text:
Gentili colleghi,
io e un mio amico stiamo sviluppando in Access 97 un gestionale per la mia
ditta. Pensiamo di usare mySQL+myODBC+Access.
In questo caso dovrei pagare la licenza di mySQL visto che lo userei in una
ditta?
Grazie


title: mySQL è veramente freeware?

author: Vittò

text:
Certamente sì, comunque la licenza è limitata a poco più di 200 dollari, e
tenuto conto che puoi inserire tutti i DB che vuoi creare, con un max di 4
tetra gigaBy e garantito per la connessione di 1.000 client.... penso valga
la pena.. (leggi manuale disponibile, gratis, dal web)
Ciao
Vittò
"SiMO" <
cella....@inwind.it
> ha scritto nel messaggio
news:B829C6B1.25C8%cella....@inwind.it...



title: assumiamo programmatore

author: gianfire

text:
Assumiamo programmatore con provata esperienza in Access2000
preferenzialmente con esperienza ASP e SQL sulla zona di bari
inviare curriculum a
gian...@altacom.it


title: personalizzare evento pulsante di spostamento

author: Silvia Slosar

text:
posso?
scusate, non so se a me vengono in mente le cose + strampalate o se dovrei preparmi a leggere tutta la bibbia vba prima di iniziare a fare
la prima mossa...
no, aspettate, cerco ancora, non voglio farmi dire "domanda già postata".....
................................................................
allora, un qualcosina ho trovato, che mi è cmq utile, però non ho trovato esattamente quello che volevo. forse non esiste....
si può aggiungere un criterio nel caso in cui si clicca su "nuovo record" con il relativo pulsante della barra di spostamento?
Ciao
Silvia.
--
www.silvietta.it
...everyone's invited!


text:
posso?
scusate, non so se a me vengono in mente le cose + strampalate o se dovrei preparmi a leggere tutta la bibbia vba prima di iniziare a fare
la prima mossa...
no, aspettate, cerco ancora, non voglio farmi dire "domanda giŕ postata".....
................................................................
allora, un qualcosina ho trovato, che mi č cmq utile, perň non ho trovato esattamente quello che volevo. forse non esiste....
si puň aggiungere un criterio nel caso in cui si clicca su "nuovo record" con il relativo pulsante della barra di spostamento?
certo, voi direte, togli quelli predefiniti e rifalli tu. ed in effetti cosě farň se non c'č soluzione, ma questi predefiniti erano piů
comodi in quanto permettono di spostarsi velocemente da un record all'altro, scrivendo semplicemente il n° del record...
grazie



author: Roberto da casa

text:
"Silvia Slosar" <
silvi...@studiomarketing.it
> ha scritto nel messaggio
news:v66cgugh9elemo7m5...@4ax.com...

A frone dell'evento "Su corrente" della tua maschera genera un codice VBA
che verifica se stai inserendo un nuovo record ovvero:
Private Sub Form_Current()
If Me.NewRecord = True Then
    MsgBox "Stai per inserire un nuovo record"
End If
End Sub
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


text:
>A frone dell'evento "Su corrente" della tua maschera genera un codice VBA
>che verifica se stai inserendo un nuovo record ovvero:
>
>Private Sub Form_Current()
>If Me.NewRecord = True Then
>    MsgBox "Stai per inserire un nuovo record"
>End If
>End Sub
bè, è cmq un piccolo passo avanti.
in realtà nel caso in cui sia stato raggiunto il n° max di record inseribili (impostato da me), vorrei che non ne aprisse uno nuovo di
record.
con questo codice, lui cmq dopo il msg, il nuovo record lo apre.
come posso fare, sul verificarsi di quell'evento, a non farlo andare avanti?
grazie



text:
"Silvia Slosar" <
silvi...@studiomarketing.it
> ha scritto nel messaggio
news:idvdgus63rre0d4nu...@4ax.com...

In questo caso imposta a No la proprietà Pulsanti spostamento della tua
maschera.
Inserisci quindi un tuo pulsante di comando per inserire nuovi record (e se
ti servono, anche altri pulsanti di comando er scorrere i record avanti ed
indietro). Se la tabella che contiene i dati si chiama Tabella1 e deve
contenere al massimo 100 record, a fronte dell'evento "Su clic" del pulsante
di comando genera un codice VBA di questo tipo:
If DCount("*", "Tabella1") >= 100 Then
    MsgBox "Non puoi inserire il centunesimo record"
Else
    DoCmd.GoToRecord , ,acLast
End If



title: Spiegazione?

author: Marina F.

text:
Ho creato un report con impostazione di raggruppamento in questo modo:
campo espressione= Idarticolo
ordinamento=crescente
Intestazione (gruppo)=no
Piè di pagina (gruppo)=no
Raggruppa secondo=caratteri iniziali
Intervallo raggruppamento=1
Stampa a sezione unita= nessuno
 Teoricamente dovrebbe ordinare campo idarticolo raggruppando e sommando gli
articoli con  il campo Idarticolo =.
Qualcuno mi sa spiegare perché se io ho due articoli con idarticolo= ma con
il prezzo diverso non mi vengono raggruppati? Esiste un modo per ottenere
questo raggruppamento?
Grazie 1000.


title: Spiegazione?

author: Roberto - Syd

text:
"Marina F." <
tecn...@libero.it
> ha scritto nel messaggio
news:bgAC7.14973$Qj6.1...@news.infostrada.it...

Per raggruppare in base a idarticolo devi impostare intestazione (gruppo)=Si
e Piè di Pagina (Gruppo)=Si, se invece vuoi il raggruppamento per idarticolo
prezzo devi cambiare il tipo di raggruppamento se ho capito bene vuoi che
nel report siano distinti l'articolo PIPPO che costa L. 1.000 dall'articolo
PIPPO che costa L. 10.000 non capisco il senso comunque per ottenere questo
devi mettere nell'impostazione campo espressione= Idarticolo & Prezzo
Ciao Roberto - Syd


title: Curioso errore di run -time

author: Vilcoyote

text:
Ho riscontrato un errore di run-time all'apertura della mia applicazione
access, il messaggio dice così:
Errore di run-time '3000',
Errore riservato (-3034);non ci sono messaggi per questo errore.
Cliccando su debug si posiziona al comando
DoCmd.OpenForm "Promemoria"
ovvero la semplice apertura di una maschera all'interno del mio programma
chiamata Promemoria. La cosa curiosa è che non variando alcun dato e codice
del programma e provando ad aprirlo più volte capita che alcune volte mi dà
l'errore altre volte si apre normalmente la maschera Promemoria senza dare
alcun errore. Qualcuno mi può dare dei chiarimenti su questo per me strano
comportamento di access? Eventualmente grazie in anticipo e ciao a tutti.


title: Curioso errore di run -time

author: Fabio Chiaro

text:
"Vilcoyote" <
vilc...@tiscali.it
> ha scritto nel messaggio
news:pqxF9.34739$3l.9...@twister1.libero.it...

Potrei pensare che non trova la tabella a cui è associata la maschera ma
dovresti fornire qualche indicazione in più.
Il programma è separato in Front End e Back End? Il Back End è in una unità
di rete? Ci sono altre macchine con lo stesso problema? Versione di Access
(runtime)? Quando dici che a volte funziona altre no vuoi dire che se chiudi
e riapri ripetutamente il programma ti funziona solo alcune volte o ad
esempio non ti funziona solo la prima volta che apri il programma dopo aver
acceso il pc?
Ciao, FABIO


title: Curioso errore di run -time

text:
> Potrei pensare che non trova la tabella a cui è associata la maschera
la tabella su cui si basa la maschera c'è anche perchè se così non fosse mi
darebbe sempre errore ad ogni avvio e non saltuariamente
> ma dovresti fornire qualche indicazione in più.
> Il programma è separato in Front End e Back End?
 Il Back End è in una unità
> di rete? Ci sono altre macchine con lo stesso problema?
Io ho provato il mio programma senza metterlo in rete ma copiandolo
interamente su più macchine e ho sempre il medesimo problema
> Versione di Access
> (runtime)?
E' Access di Microsoft Office '97
Quando dici che a volte funziona altre no vuoi dire che se chiudi
> e riapri ripetutamente il programma ti funziona solo alcune volte
esattamente
> Ciao, FABIO
Ciao.


title: E' possibile una funzione tipo composizione automatica....

author: Raffaella

text:
del numero telefonico senza utilizzare l'applicazione Microsoft?
Mi piacerebbe gestire le telefonate direttamente dal db, quindi
facendo comporre il numero telefonico (inserito in un campo) dal modem
stesso senza
dover per forza utilizzare il tool del SO.
Non so se č una idea stupida ma mi chiedo se č possibile...
Grazie a chi voglia darmi un'idea.
Raffa


text:
"Raffaella" <
senzaes...@yahoo.it
> ha scritto nel messaggio
news:b52bac3d.02091...@posting.google.com...

Tra le autocomposizioni che inseriscono i pulsanti di comando, nella
categoria Varie c'č un'azione che si chiama Composizione automatica.
Sposta il fuoco sul controllo della maschera che contiene il numero da
comporre, quindi pigia il pulsante di comando creato con l'autocomposizione.
Di fatto l'azione legata al pulsante di comando non fa altro che richiamare
ed eseguire il tool del SO, prelevando il numero telefonico da comporre dal
controllo che aveva il fuoco prima di pigiare il pulsante.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


author: Giuliano

text:
"Raffaella" <
senzaes...@yahoo.it
> ha scritto nel messaggio
news:b52bac3d.02091...@posting.google.com...

Ne dico una : potresti passare dei comandi AT al modem tramite un ActiveX
tipo XComm ( mi pare si chiami cosi' )
Ecco l'ho detta :-)
Giuliano


title: Reset casella riepilogo selezione multipla tramite pulsante di comando

text:
Ciao a tutti
Vorrei fare un pulsante di comando che permetta di cancellare tutti i valori inseriti dall'utente nelle caselle di un form. (un po come il reset dell'html)
Per le singole caselle di testo non c'è problema.
Me!casella = Null o Me!casella = ""
Ma per la casella di riepilogo (selezione multipla e singola), come faccio a far deselezionare le voci selezionate i nero?
c'è per caso la possibilità di fare anche il contrario, cioè di selezionare tutte le voci?
Grazie
--
km5000
------------------------------------------------------------------------
View this thread:
http://www.itsistemi.net/viewtopic-777878.html
Inviato via
http://www.itsistemi.net


author: Sergio MAZZA

text:
"km5000" <
km5000...@no-mx.itsistemi.net
> ha scritto nel messaggio news:km5000...@no-mx.itsistemi.net...
>
> Ciao a tutti
>
> Vorrei fare un pulsante di comando che permetta di cancellare tutti i valori inseriti dall'utente nelle caselle di un form. (un po
> come il reset dell'html)
>
> Per le singole caselle di testo non c'è problema.
> Me!casella = Null o Me!casella = ""
>
> Ma per la casella di riepilogo (selezione multipla e singola), come faccio a far deselezionare le voci selezionate i nero?
> c'è per caso la possibilità di fare anche il contrario, cioè di selezionare tutte le voci?
>
> Grazie
>
>
> --
> km5000
Utilizza la proprietà Tag (vedi help) di ogni controllo che vuoi azzerare, inserendoci una stringa identificativa (es. tagFiltro).
Poi con un ciclo per ogni controllo presente nella maschera, verifichi se  nella proprietà Tag ha la stringa "tagFiltro", verifichi
con la proprietà ControlType (vedi help) di che tipo si tratta (se casella di testo o checkbox, etc. etc.) e ti regoli di
conseguenza.
Es.
dim oCtrl as Control
for each oCtrl in Me.Controls
    if oCtrl.Tag = "tagFiltro" then
        select case oCtrl.controltype
            case acTextBox
                oCrtl = Null
            case acCheckBox
                oCtrl = 0
            case acDenti
            case acDerba
            ...
        end select
    end if
next
set oCtrl = nothing
Ciao.
--
Sergio MAZZA


text:
Grazie per il suggerimento. Molto chiaro.
Però ho due problemi
1)
il codice che mi hai passato, (dopo aver nominato tutti i tag) non funziona nonostante mi sembri corretto.
Facendo la prova con una riga statica per azzerare un textbox :
If Me.codice.Tag = "tagFiltro" Then If Me.codice.ControlType = acTextBox Then Me.codice = Null
invece funziona.
2)
Ho trovato la lista di costanti ma non riesco a trovare la lista per annullare le varie costanti.
Es:
acComboBox con selezione singola si annulla con Null
acListBox con selezione multipla: ho provato Null, "", Empty, false, 0, ecc ma non riesco a deselezionare le voci
ciao



author: Marco Pizzamiglio

text:
km5000 ha scritto:
> Ciao a tutti
> Vorrei fare un pulsante di comando che permetta di cancellare tutti i valori
inseriti dall'utente nelle caselle di un form. (un po come il reset dell'html)
> Per le singole caselle di testo non c'è problema.
> Me!casella = Null o Me!casella = ""
> Ma per la casella di riepilogo (selezione multipla e singola), come faccio a
far deselezionare le voci selezionate i nero?
> c'è per caso la possibilità di fare anche il contrario, cioè di selezionare
tutte le voci?
> Grazie
Le listbox possiedono un insieme Selected che indica, per ciascun loro
elemento, se è selezionato o meno. Ti basta scorrere quell'insieme con un
ciclo e settarne/resettarne il valore.
Vedi l'help <F1> per i dettagli.
Private Sub TUTTI_Click() 'seleziona tutte le righe della listbox
Dim n As Integer
    For n = 0 To Me.Lista.ListCount
        Me.Lista.Selected(n) = -1
    Next
End Sub
Trovi un esempio sul
www.sitocomune.com
 sez. Forms 3.69.
Ciao.
-Marco-
--
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news
 segnala gli abusi ad
ab...@newsland.it


text:
"km5000" <
km5000...@no-mx.itsistemi.net
> ha scritto nel messaggio
news:km5000...@no-mx.itsistemi.net...
>
> Grazie per il suggerimento. Molto chiaro.
>
> Però ho due problemi
> 1)
> il codice che mi hai passato, (dopo aver nominato tutti i tag) non
> funziona nonostante mi sembri corretto.
> Facendo la prova con una riga statica per azzerare un textbox :
> If Me.codice.Tag = "tagFiltro" Then If Me.codice.ControlType = acTextBox
> Then Me.codice = Null
> invece funziona.
> 2)
> Ho trovato la lista di costanti ma non riesco a trovare la lista per
> annullare le varie costanti.
> Es:
> acComboBox con selezione singola si annulla con Null
> acListBox con selezione multipla: ho provato Null, "", Empty, false, 0,
> ecc ma non riesco a deselezionare le voci
>
> ciao
>
>
> --
> km5000
Il codice che ti ho passato a me funziona, e dalla versione '97.
Le constanti non devi annullarle, non è possibile farlo e non è quello che
ti suggerivo; le costanti servono per identificare il tipo di controllo per
annullare il contenuto del controllo nel modo giusto: (es.) Null per le
caselle di testo e 0 per il gruppo di opzioni...
Ciao.
--
Sergio MAZZA


text:
Per il Probl. 1 ho semplicemente dimenticato
oCtrl
dopo il next del loop
Ma la proprietą che mi permette di deselezionale le list box non l'ho mica trovata....



text:
"km5000" <
km5000...@no-mx.itsistemi.net
> ha scritto nel messaggio
news:km5000...@no-mx.itsistemi.net...
>
> Per il Probl. 1 ho semplicemente dimenticato
> oCtrl
> dopo il next del loop
> Ma la proprietą che mi permette di deselezionale le list box non l'ho mica
> trovata....
>
>
> --
> km5000
Se la selezione multipla č "nessuna" o "estesa" puoi fare: me!nomeListBox =
Null; nell'altro caso non trovo (per ora) soluzione...
Ciao.
--
Sergio MAZZA


text:
Se la selezione multipla è “nessuna” o “estesa” puoi fare: me!nomeListBox Null; nell'altro caso non trovo (per ora) soluzione…
Trovi un esempio sul
www.sitocomune.com
 sez· Forms 3.69
Grazie a tutti  due. la l selezione/deselezione funziona alla perfezione.
Problemi risolti



text:
"Marco Pizzamiglio" <
marco.pi...@gmail.com
> ha scritto nel messaggio news:dter5s$1du$1...@news.newsland.it...
>
> Le listbox possiedono un insieme Selected che indica, per ciascun loro
> elemento, se è selezionato o meno. Ti basta scorrere quell'insieme con un
> ciclo e settarne/resettarne il valore.
> Vedi l'help <F1> per i dettagli.
>
> Private Sub TUTTI_Click() 'seleziona tutte le righe della listbox
> Dim n As Integer
>    For n = 0 To Me.Lista.ListCount
>        Me.Lista.Selected(n) = -1
>    Next
> End Sub
>
> Trovi un esempio sul
www.sitocomune.com
 sez. Forms 3.69.
> Ciao.
> -Marco-
>
>
> --
> namor at inwind punto it
Eureka!
L'ho cercata e non l'avevo trovata...
Ciao.
--
Sergio MAZZA


title: Conferma su query di comando...impostazione

author: spedysoft

text:
Nel menù Strumenti-Opzioni-Modifica/trova c'è la voce "Conferma" con varie
opzioni di spunta....
Vorrei che all'avvio del mio progr. (ho una maschera di avvio) tramite
codice impostare questa voce...
POssibile ?
Grazie


text:
"spedysoft" <
in...@spedysoft.com
> ha scritto nel messaggio
news:f6wmb.65074$vO5.2...@twister1.libero.it...
> Nel menů Strumenti-Opzioni-Modifica/trova c'č la voce "Conferma" con varie
> opzioni di spunta....
> Vorrei che all'avvio del mio progr. (ho una maschera di avvio) tramite
> codice impostare questa voce...
> POssibile ?
>
> Grazie
Per impostare a Si le tre opzioni di Conferma  del menu
Strumenti-Opzioni-Modifica/trova prova cosě:
Application.SetOption "Conferma modifiche record", True
Application.SetOption "Conferma eliminazione documenti", True
Application.SetOption "Conferma query di comando", True
per impostarle invece a No, prova cosě:
Application.SetOption "Conferma modifiche record", False
Application.SetOption "Conferma eliminazione documenti", False
Application.SetOption "Conferma query di comando", False
Per maggiori chiarimenti leggi sull'help l'argomento Metodi GetOption,
SetOption e l'argomento Impostare le opzioni da Visual Basic.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


text:
"Roberto da casa" <
r.ma...@libero.it
> ha scritto nel messaggio
news:Wzwmb.65143$vO5.2...@twister1.libero.it...
>
> "spedysoft" <
in...@spedysoft.com
> ha scritto nel messaggio
> news:f6wmb.65074$vO5.2...@twister1.libero.it...
> > Nel menů Strumenti-Opzioni-Modifica/trova c'č la voce "Conferma" con
varie
> > opzioni di spunta....
> > Vorrei che all'avvio del mio progr. (ho una maschera di avvio) tramite
> > codice impostare questa voce...
> > POssibile ?
> >
> > Grazie
>
> Per impostare a Si le tre opzioni di Conferma  del menu
> Strumenti-Opzioni-Modifica/trova prova cosě:
>
> Application.SetOption "Conferma modifiche record", True
> Application.SetOption "Conferma eliminazione documenti", True
> Application.SetOption "Conferma query di comando", True
>
> per impostarle invece a No, prova cosě:
>
> Application.SetOption "Conferma modifiche record", False
> Application.SetOption "Conferma eliminazione documenti", False
> Application.SetOption "Conferma query di comando", False
>
> Per maggiori chiarimenti leggi sull'help l'argomento Metodi GetOption,
> SetOption e l'argomento Impostare le opzioni da Visual Basic.
>
> --
> Roberto
In alternativa a quanto detto nel mio messaggio precedente, se il problema č
limitato alla conferma di una query di comando, prima della esecuzione della
query di comando in VBA scrivi:
DoCmd.SetWarnings False 'inibisce il messaggio
e dopo l'esecuzione scrivi:
DoCmd.SetWarnings True 'abilta il messaggio



title: Problemi di visualizzazione tasti

text:
Ho costruito una maschera dove lo sfondo del pie di pagina è blu e inserito
i tasti di spostamento di MSAccess 2003.
Quando vado in visualizzazione maschera, i tasti vengono visualizzati con un
bordino bianco e passando sopra il mouse il bordo sparisce.
Cosa può essere?
Cosa devo fare?
Grazie Pasquale
--------------------------------
Inviato via
http://arianna.libero.it/usenet/


title: Quesito Access

author: Ste

text:
Nella definizione dei campi di una tabella cosa significano gli attributi
'imemode' e 'ime sentence mode'?
grazie a chi mi aiuterà...


title: Quesito Access

author: Antonio Biso

text:
"Ste" <
stefa...@libero.it
> ha scritto nel messaggio
news:fMucc.19635$hc5.9...@news3.tin.it...
Risposta NG Access: scrivi un subject più significativo!!!
Antonio


title: migliorare prestazioni query

text:
ciao a tutti

è possibile migliorare le prestazioni di queste due query
senza alterare il riusltato?
Grazie per l'aiuto.

Query 1
SELECT
G.IdCarico,
Sum(FctRound(nz([Quantità],0)*nz([Prezzo],0))) AS ImportoLordo,
Sum(FctRound(Nz([IdSconto],0)*nz([Quantità],0)*nz([Prezzo],0)/100)) AS TotSconto,
Sum(H.Analisi) AS Analisi, Sum(H.SpeseVarie) AS SpeseVarie
FROM TbCarichi AS G
INNER JOIN (TbProdotti AS I
INNER JOIN DettaglioCarichi AS H
ON I.IdProdotto = H.IdProdotto) ON G.IdCarico = H.IdCarico
WHERE I.Categoria<>"Imballi"
GROUP BY G.IdCarico

Query 2
SELECT
TbCarichi.IdCarico,
IIf(nz([IdSconto],0)=0,0,[G_IdSconto].[ImportoLordo]) AS ImportoLordo,
TbCarichi.IdSconto, 0 AS IdSconto2,
G_IdSconto.TotSconto,
FctRound(IIf(nz([IdAg],0)<>0,[TotSconto]/2,[TotSconto])) AS MioSconto,
FctRound(IIf(nz([IdAg],0)<>0,[TotSconto]/2,0)) AS ScontoAg,
nz([ImportoLordo],0)-nz([MioSconto],0)-nz([ScontoAg],0) AS Netto,
[Analisi]+[SpeseVarie] AS Spese
FROM TbOrdini
INNER JOIN (TbCarichi
INNER JOIN G_IdSconto
ON TbCarichi.IdCarico = G_IdSconto.IdCarico)
ON TbOrdini.IdOrdine = TbCarichi.IdOrdine


title: SubForm Controllo Record di Baraldi (Faq 3.43 SC)

author: Announced

text:
Non c'è l'ho con te, ma diversi tuoi consigli sia sul SC che sul tuo
sito li trovati veramente utili.
Circa quanto in oggetto, utilizzo benissimo questa tua SubForm per
l'inserimento dati, la trovo molto sicura e semplificativa nello
sviluppo. Non riesco solo ad intercettare nel codice, il colore che hai
assegnato nella modalità modifica (per cambiarlo ) e, nell'Undo o
registra, il ritorno alla condizioni iniziali.
Grazie
Paolo


author: Alessandro Baraldi

text:
"Announced" <
paolosc...@alice.it
> wrote in message
news:1123506315.1...@g44g2000cwa.googlegroups.com
> Non c'è l'ho con te, ma diversi tuoi consigli sia sul SC che sul tuo
> sito li trovati veramente utili.
Non preoccuparti è normale...!
> Circa quanto in oggetto, utilizzo benissimo questa tua SubForm per
> l'inserimento dati, la trovo molto sicura e semplificativa nello
> sviluppo. Non riesco solo ad intercettare nel codice, il colore che hai
> assegnato nella modalità modifica (per cambiarlo ) e, nell'Undo o
> registra, il ritorno alla condizioni iniziali.
>
> Grazie
>
> Paolo
Dai un'occhiata alla Sub "sControlSource" se leggi bene
trovi 2 colori impostabili:
Case Associa
....
ctl.BackColor = 12632256 'Colore Grigio
Case Disassocia
....
ctl.BackColor = 10092543 'Colore Giallo
Cambiali a tuo piacere....
Ciao
@Alex
--
Posted via Mailgate.ORG Server -
http://www.Mailgate.ORG


text:
Beccati...
Grazie
Paolo


text:
Ancora una cosa...
 non riesco a far funzionare il tag su di un Gruppo di opzioni. Ho
provato ad inserire in tag il nome del Gruppo opz, ma mi da errore...in
sostanza come se non lo trovasse...
Grazie
Paolo


text:
Come non detto, mettevo nel tag il nome elemento invece del nome
dell'origine del controllo che in genere li metto uguali, in questo
caso no...
Ciao
Paolo


title: Ordinamento vettoriale

author: il barbi

text:
Mi serve una funzione VBA per ordinare il piu' velocemente
possibile in senso crescente gli elementi di un vettore
pippo(i) di interi, non c'e' una funzione di libreria? non
vorrei scriverla con istruzioni VBA, sarebbe sicuramente
inefficiente
il barbi


title: Ordinamento vettoriale

author: ALESSANDRO Baraldi

text:
"il barbi" <
ilb...@tin.it
> ha scritto nel messaggio
news:mcBMb.78847$VW.32...@news3.tin.it...

Perchè inefficiente.....???
Public Sub QuickSortFonts(varArray() As String, _
 Optional intLeft As Integer = dhcMissing, _
 Optional intRight As Integer = dhcMissing)
   'Sfrutta il metodo QuickSort per l'ordinamento
   'in questo caso si sfrutta anche la funzione
   'come ricorsiva
   Dim i As Integer
   Dim j As Integer
   Dim varTestVal As Variant
   Dim intMid As Integer
   If intLeft = dhcMissing Then intLeft = LBound(varArray)
   If intRight = dhcMissing Then intRight = UBound(varArray)
   If intLeft < intRight Then
      intMid = (intLeft + intRight) \ 2
      varTestVal = varArray(intMid)
      i = intLeft
      j = intRight
      Do
          Do While varArray(i) < varTestVal
              i = i + 1
          Loop
          Do While varArray(j) > varTestVal
              j = j - 1
          Loop
          If i <= j Then
              Call SwapElementsFont(varArray, i, j)
              i = i + 1
              j = j - 1
          End If
      Loop Until i > j
      If j <= intMid Then
          Call QuickSortFonts(varArray(), intLeft, j)
          Call QuickSortFonts(varArray(), i, intRight)
      Else
          Call QuickSortFonts(varArray(), i, intRight)
          Call QuickSortFonts(varArray(), intLeft, j)
      End If
   End If
End Sub
Ordina in maniera crescente le opzioni sono i Limiti destro e sinistro
del Vettore entro i quali effettuare l'ordinamento, se li ometti ordina
tutto il vettore.
Ciao.
@Alex.


title: Ordinamento vettoriale

text:
"ALESSANDRO Baraldi" <
ik2...@libero.it
> ha scritto nel
messaggio news:btuogc$hhc$1...@lacerta.tiscalinet.it...
>
> "il barbi" <
ilb...@tin.it
> ha scritto nel messaggio
> news:mcBMb.78847$VW.32...@news3.tin.it...
> > Mi serve una funzione VBA per ordinare il piu'
velocemente
> > possibile in senso crescente gli elementi di un vettore
> > pippo(i) di interi, non c'e' una funzione di libreria?
non
> > vorrei scriverla con istruzioni VBA, sarebbe sicuramente
> > inefficiente
> > il barbi
>
>
> Perchè inefficiente.....???
>
volevo dire inefficiente rispetto a una funzione di
libreria, che naturalmente se ci fosse sarebbe piu'
veloce... Cioe', il sorting e' una funzione molto usata a
livello di codice di sistema (gestione dell'HD, indici ecc.)
e quindi mi pareva che potesse anche essere messa a
disposizione del povero utente... Naturalmente la tua
routine e' validissima, il metodo dicotomico e' senz'altro
il migliore e l'uso della funzione come ricursiva e'
raffinato, a livello di esame for advanced programmers!
il barbi


title: Ordinamento vettoriale

text:
"il barbi" <
ilb...@tin.it
> ha scritto nel messaggio
news:f8cNb.113566$_P.41...@news4.tin.it...
> "ALESSANDRO Baraldi" <
ik2...@libero.it
> ha scritto nel
> messaggio news:btuogc$hhc$1...@lacerta.tiscalinet.it...
> >
> > "il barbi" <
ilb...@tin.it
> ha scritto nel messaggio
> > news:mcBMb.78847$VW.32...@news3.tin.it...
> > > Mi serve una funzione VBA per ordinare il piu'
> velocemente
> > > possibile in senso crescente gli elementi di un vettore
> > > pippo(i) di interi, non c'e' una funzione di libreria?
> non
> > > vorrei scriverla con istruzioni VBA, sarebbe sicuramente
> > > inefficiente
> > > il barbi
> >
> >
> > Perchè inefficiente.....???
> >
> volevo dire inefficiente rispetto a una funzione di
> libreria, che naturalmente se ci fosse sarebbe piu'
> veloce...
Quì si può discutere su questa affermazione, se come
libreria intendi anche una Dll in VB posso dimostrarti
che se ti do una Dll(VB6) con dentro quel codice è veloce
uguale.....!
Cioe', il sorting e' una funzione molto usata a
> livello di codice di sistema (gestione dell'HD, indici ecc.)
> e quindi mi pareva che potesse anche essere messa a
> disposizione del povero utente...
Concordo con te, ma non c'è nulla di NATIVO che lo realizza,
tant'è che se hai mai dato uno sguardo alle varie API ENUM_Qualcosa
(FONT, Resolution, Printer....Ecc...)
restituiscono l'intero Vettore disordinato e va fatto passare per una
Funzione di Ordinamento....!
>Naturalmente la tua
> routine e' validissima, il metodo dicotomico e' senz'altro
> il migliore e l'uso della funzione come ricursiva e'
> raffinato, a livello di esame for advanced programmers!
> il barbi
Non è mia per correttezza d'informazioni, ma non mi pare
sia nulla particolare...!
Ciao.
@Alex.


title: Ordinamento vettoriale

text:
"ALESSANDRO Baraldi" <
ik2...@libero.it
> ha scritto nel
messaggio news:bu3tqr$k8v$1...@lacerta.tiscalinet.it...
>
a proposito, su microsoft.public.access.formscoding mi hanno
dato una risposta veramente spiazzante:
"You have got the Jet engine - a pretty good sorter.  Write
the array to a
table, then query the table with the sort order you want."
che sia la soluzione piu' veloce?
 :-))
il barbi


title: Ordinamento vettoriale

text:
"il barbi" <
ilb...@tin.it
> ha scritto nel messaggio
news:qFiNb.116985$_P.42...@news4.tin.it...

Si può provare, in ogni caso analizzando gli eventi non credo.
Devi scrivere in una Tabella che non hai, quindi da creare, non temporanea
altrimenti la QRY non la puoi fare, per scrivere nel Recordset della Tabella
devi ciclare in ogni caso tutto il Vettore, alchè fai la QRY temporanea
oppure
estrai un Recordset con SELECT.........ORDER BY
a questo punto che non è velocissima, quindi ottieni un Vettore(in realtà
un recordset, in ogni caso ottimo per l'uso)......!
Se hai tempo di provarlo è un dato molto interessante......!!!!
Se posso farò lo stesso con un vettore di almeno 10000 dati Random
ci aggiorniamo....!
@Alex.


title: R:Query di selezione [access 2.0]

author: Nora Andrea

text:
Nella casella dei criteri, anzichè [Inserire societa'] mettici : LIKE "*" &
[Inserire societa'] & "*"
Così facendo riuscirai a trovare la società Rossi SRL digitando ross.
Saluti
Andrea
> ----------
> Da:	lucis[
SMTP:isab...@ats.it
]
> Risposta a:
it.comp.a...@list.deja.com
> Inviato:	domenica 5 dicembre 1999 19.33
> A:
it.comp.a...@list.deja.com
> Oggetto:	Query di selezione [access 2.0]
>
>  Message from the Deja.com forum:
>  it.comp.appl.access
>  Your subscription is set to individual email delivery
> >
> Ciao a tutti
> devo selezionare da una tabella (Fatture) solo quelle intestate ad una
> societa' che di volta in volta vorro' ricercare.
> Nella query di selezione, nel campo "societa'", alla voce criteri ho
> inserito: [Inserire societa'].
> Il problema e' che, se nella finestra di dialogo che mi appare quando
> eseguo la query inserisco il nome della societa' per intero, mi da' i
> risultati che voglio, mentre se inserisco solo una parte del nome,
> (es. ross anziche' rossi srl, - ma neanche con ross*), niente.
> Dove sbaglio?
> Chi mi puo' dare una mano?
> Grazie.
>
>
>
>  _____________________________________________________________
>  Deja.com: Before you buy.
>
http://www.deja.com/
>  * To modify or remove your subscription, go to
>
http://www.deja.com/edit_sub.xp?group=it.comp.appl.access
>  * Read this thread at
>
http://www.deja.com/thread/%3C384aae71.5905664%40news.ats.it%3E
>
 Sent via Deja.com
http://www.deja.com/
 Before you buy.


title: autorizzazioni apertura database

author: Furo

text:
Ho fatto un programma con Access 97 e messo in rete.
Ho gestito gli utenti attraverso il file mdw.
Tutto sembra fatto nel modo corretto.
Su 2 computer appare la seguente indicazione: "L'account utente corrente non
dispone delle autorizzazioni per convertire o abilitare il database".
*Su questi due computers la release di access è 2000.*
Questi due utenti possono accedere a tale programma solo come
Amministratori.
Dopodichè appaiono le seguenti scelte:
1 converti database
2 apri database. Loro usano questa.
Esiste un modo per evitare tale problema?
Furo
--------------------------------
Inviato via
http://arianna.libero.it/usenet/


title: autorizzazioni apertura database

text:

Please help.



title: [nome campo].Type

author: Cristina

text:
Ciao, ho scoperto da poco questo nuovo comando ovvero:
[nuovo campo].Type = .....
 dopo l'uguale ci andrebbe il tipo di campo, io conosco dbText, dbMemo,
dgInteger, dgLong, ecc.. ma mi serve sapere come vienen indicato il campo di
tipo contatore
Ciao


title: [nome campo].Type

text:
"Cristina" <
debb...@libero.it
> ha scritto nel messaggio
news:1AbM6.172$_L3....@news1.tin.it...

Se non ho letto male nell'help (Confronto di tipi di dati) dovrebbe essere
un dbLong...
Ciao.


title: verificare che un campo sia numerico

text:
Ciao a tutti, come faccio a verificare che un campo e' numerico?
sto preparando un modulo fattura con il campo contributo CONAI...
vorrei far si che quando e' un numero viene aggiunto al totale della fattura
altrimenti, se testo, dovrebbe essere ignorato...
grazie


title: verificare che un campo sia numerico

author: MA

text:

E' molto complicatissimo...
isnumeric(Tuovalore)
--
_ _
Ciao
MAssimiliano Amendola
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:
www.donkarl.com/it


title: verificare che un campo sia numerico

text:
"MA" <
mas...@massimilianoamendola.it
> wrote in message
news:dles5c$kq4$1...@area.cu.mi.it...

> ů
Ooops scusate...a me non funzionava x' facevo IsNumber
Grazie!!!


title: compattare db a97

author: antonio

text:
Dovrei far compattare il db in uscita dall'applicazione (sfruttando il
codice vba).
Sapete indicarmi come fare?
Ho utilizzato il comando db.engine compact database ma mi dice che il db
è aperto. Come si fa?
Grazie a tutti.


title: compattare db a97

author: Paolo opg

text:
antonio <
sittin...@libero.it
> wrote in
news:pan.2003.11.26....@libero.it
:

col 97, non puoi compattare un db aperto.
devi chiuderlo e compattarlo con un tool esterno.
sul sitocomune ce n'era qualcuno.
--
+-------
| Paolo opg
|
| janickg ( at ) hotmail ( dot ) com
| (fake address in reply-to field!)
+-------


title: compattare db a97

text:
Il Wed, 26 Nov 2003 22:34:38 +0000, Paolo opg ha scritto:
> antonio <
sittin...@libero.it
> wrote in
>
news:pan.2003.11.26....@libero.it
:
>
>> Dovrei far compattare il db in uscita dall'applicazione (sfruttando il
>> codice vba).
>> Sapete indicarmi come fare?
>> Ho utilizzato il comando db.engine compact database ma mi dice che il
>> db è aperto. Come si fa?
>> Grazie a tutti.
>>
>
> col 97, non puoi compattare un db aperto.
> devi chiuderlo e compattarlo con un tool esterno.
> sul sitocomune ce n'era qualcuno.
Si lo so, ho già provato con il tool che crea un file Compact.vps e lo fa
eseguire dalla shell ma mi dice errore l'interprete non può aprire un
formato vps.
Che si fa?


title: compattare db a97

text:


Ho provato a usare un tool del sito comune, creando il file compact.vbs e
facendolo eseguire dalla shell, ma mi dice Wscript non riconosce il file
con estensione vps.
Che si fa per ovviare al problema?
Grazie a tutti.


title: compattare db a97

text:
"antonio" <
sittin...@libero.it
> ha scritto nel messaggio
news:pan.2003.11.27....@libero.it...

Forse hai sbagliato l'estensione del file che è vbs (visual basic
scripting)...
Ciao.
--
Sergio MAZZA


title: ordine di tabulazione

author: Panta

text:
Ciao a tutti,
       ho creato una maschera in visualizzazione maschere continue dopo
tutti i campi ho messo un pulsante, vorrei impedire all'utente di passarci
sopra con il tasto tabulazione o scorrendo i vari campi con il tasto invio,
il pulsante deve essere utilizzato solo con il mouse; è una cosa fattibile?
ringrazio anticipatamente
saluti bobo


title: ordine di tabulazione

author: Roberto da casa

text:
"Panta" <
vrob...@tiscalinet.it
> ha scritto nel messaggio
news:95kh8e$ttu$1...@pegasus.tiscalinet.it...

Setta la proprietà Seleziona con tabulazione del pulsante a No.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


title: ordine di tabulazione

text:
grazie mille.
"Roberto da casa" <
r.ma...@libero.it
> ha scritto nel messaggio
news:hmkf6.105026$ew1.6...@news.infostrada.it...



title: ordine di tabulazione

author: sergio

text:
"Panta" <
vrob...@tiscalinet.it
> ha scritto nel messaggio
news:95kh8e$ttu$1...@pegasus.tiscalinet.it...

Nelle proprietà del pulsante (non nell'ordine di tabulazione) esiste quello
che cerchi:
guarda nelle proprietà/altro/"seleziona con tabulatore" e clica su "no".
Ora il pulsante non è più raggiungibile premendo il tabulatore ma solo con
il mouse, proprio come chedevi tu
Ciao
Sergio


title: Grafico che utilizza campi collegati a un'altra tabella??

author: Emiliano - EmiCAD

text:
Ciao a tutti,
ho eseguito un database, il quale è composto da due tabelle, una principale
che ha un campo realizzo con "Ricerca guidata..." che quindi è collegato a
un'altra tabella.
Dopo aver realizzato una maschera, ho deciso di inserire un grafico basato
su alcuni campi della tabella principale, tra cui anche il campo collegato
che dovrebbe inoltre fungere da legenda.
Il problema è che in legenda invece di apparire le voci inserire nella
tabella secondaria appiono gli "ID" di queste voci!!
Come devo fare per far apparire invece le scritte??
Spero in un vostro aiuto.
Rigrazio in anticipo.
Ciao a tutti da Emiliano


text:
"Emiliano - EmiCAD" <
ligh...@tin.it
> ha scritto nel messaggio
news:hK0G8.84783$5k4.1...@twister2.libero.it...
> Ciao a tutti,
> ho eseguito un database, il quale č composto da due tabelle, una
principale
> che ha un campo realizzo con "Ricerca guidata..." che quindi č collegato a
> un'altra tabella.
>
> Dopo aver realizzato una maschera, ho deciso di inserire un grafico basato
> su alcuni campi della tabella principale, tra cui anche il campo collegato
> che dovrebbe inoltre fungere da legenda.
> Il problema č che in legenda invece di apparire le voci inserire nella
> tabella secondaria appiono gli "ID" di queste voci!!
>
> Come devo fare per far apparire invece le scritte??
>
> Spero in un vostro aiuto.
> Rigrazio in anticipo.
> Ciao a tutti da Emiliano
Se la tabella che contiene i dati si chiama Tabella1.
Se il campo di Tabella1 di cui stiamo parlamdo si chiama Realizzo.
Se la tabella con cui hai effettuato la "Ricerca guidata..." di Realizzo si
chiama Tabella2 ed ha una struttura simile:
ID                Contatore e chiave primaria
Descrizione   Testo
Creati una query che contenga tutti i campi di Tabella1; aggiungi a questa
query una campo calcolato chiamato RealizzoBis cosě fatto:
RealizzoBis: DLookup("[Descrizione]"; "Tabella2"; "ID=" & [Realizzo])
Basa il grafico sulla query invece su Tabella1 e usa il campo RealizzoBis
invece che il campo Realizzo.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


title: errore con DLookUp

author: Buonuomo

text:
Ciao a tutti
sto cercando di usare l'istruzione DlookUp per la ricerca di un record ma
ottengo un messaggio di errore che mi segnala " Tipi di dati non
corrispondenti nell'espressione criterio"
l'istruzione che ho impostato è la seguente :
Dim cod, vecchio As Variant
    cod = Mid(rigo, 85, 13)
    vecchio = DLookup("[Prezzo_Vendita]", "Articoli_Anagrafica",
"[Codice_Barra] =" & cod & "")
ho provato anche ad impostare la variabile cod come String, ma non è
cambiato nulla.
Qualche sugggerimento?
P.S. Uso Access XP
Grazie


title: errore con DLookUp

text:
"Buonuomo" <
buon...@libero.it
> ha scritto nel messaggio
news:caKja.10523$DT4.3...@twister1.libero.it...

Ho dimenticato di specificare che il campo Codice_Barra è di tipo testo
Ciao