Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Sub o cosa

  1. #1
    Utente di HTML.it L'avatar di fiber81
    Registrato dal
    Oct 2002
    Messaggi
    328

    Sub o cosa

    Per modificare i margini di un report in A97, faccio in questo modo

    Type str_DEVMODE
    RGB As String * 94
    End Type

    Type type_DEVMODE
    strNomeDispositivo As String * 16
    intVersioneSpec As Integer
    intVersioneDriver As Integer
    intDimensione As Integer
    intDriverExtra As Integer
    lngCampi As Long
    intOrientamento As Integer
    intDimensFoglio As Integer
    intLunghezzaFoglio As Integer
    intLarghezzaFoglio As Integer
    intScala As Integer
    intCopie As Integer
    intOriginePredef As Integer
    intQualitàStampa As Integer

    intColore As Integer
    intDuplex As Integer
    intRisoluzione As Integer
    intOpzioneTT As Integer
    intFascicola As Integer
    strNomeMaschera As String * 16
    lngTitolo As Long
    lngBit As Long
    lngPW As Long
    lngPH As Long
    lngDFI As Long
    lngDFr As Long
    End Type


    Sub ModificaOrient(strNome As String)
    Const DM_PORTRAIT = 1
    Const DM_LANDSCAPE = 2
    Dim StringaPer As str_DEVMODE
    Dim DM As type_DEVMODE
    Dim strModalitàExtraPer As String
    Dim rpt As Report
    DoCmd.OpenReport strNome, acDesign ' Apre il report in
    visualizzazione Struttura.
    Set rpt = Reports(strNome)

    strModalitàExtraPer = rpt.PrtDevMode
    StringaPer.RGB = strModalitàExtraPer
    LSet DM = StringaPer
    DM.lngCampi = DM.lngCampi Or DM.intOrientamento ' Inizializza campi.
    If strNome = "Esami" Then
    DM.intOrientamento = DM_LANDSCAPE
    Else
    DM.intOrientamento = DM_PORTRAIT
    End If
    LSet StringaPer = DM ' Aggiorna la proprietà.
    Mid(strModalitàExtraPer, 1, 94) = StringaPer.RGB
    rpt.PrtDevMode = strModalitàExtraPer

    DoCmd.Close acReport, strNome, acSaveYes

    End Sub

    Se nell'argomento della sub aggiungo per esempio una stringa che poi mi
    indica che orientamento applicare al report già passato, quando chiamo la
    sub da una qualsiasi altra parte mi da errore, anzi non me lo fa neanche
    scrivere, lo evidenzia subito di rosso. Perchè?Dove sbaglio?
    Grazie

  2. #2
    la SUB e la chiamata (CALL) debbono avere gli stessi argomenti, in numero e tipo. accertati che corrispondano.

  3. #3
    Utente di HTML.it L'avatar di fiber81
    Registrato dal
    Oct 2002
    Messaggi
    328
    corrispondono, è solo che mi dice 'previsto ='

  4. #4

  5. #5
    Utente di HTML.it L'avatar di fiber81
    Registrato dal
    Oct 2002
    Messaggi
    328
    allora il tutto risiede in un modulo, io chiamo la sub da un form su click di un pulsante. Se la chiamo passandogli solo strNome funziona, se aggiungo come argomento nella sub un altra variabile, e dal form aggiungo anche questa nuova variabile mi dice previsto =
    Spero di essere stato + chiaro

  6. #6
    no, non lo sei stato

    originale

    codice:
    SUB mySub(sStringa as String)
    'istruzioni
    END SUB
    ....
    Dim sOneString
    sOneString = "ciccio"
    CALL mySub(sOneString)
    ....
    modificato

    codice:
    SUB mySub(sStringa as String, iNumero as Integer)
    'istruzioni
    END SUB
    ....
    Dim sOneString, iOneNumber
    sOneString = "ciccio"
    iOneNumber=10
    CALL mySub(sOneString, iOneNumber)
    ....
    dove ti da' errore?

  7. #7
    Utente di HTML.it L'avatar di fiber81
    Registrato dal
    Oct 2002
    Messaggi
    328
    Errore me lo dava qui : mySub(sOneString, iOneNumber)
    ma con CALL mySub(sOneString, iOneNumber) funziona tutto bene, scusa la mia ignoranza ma si impara sempre qualcosa di nuovo.

    Grazie mille

  8. #8

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.