Sandro Bizioli


Chi sogna di giorno conosce molte cose che sfuggono a chi sogna soltanto di notte. (E.A.Poe)
Mappa

Query parametriche con DAO

Pur essendo assai datato esistono ancora molti applicativi scritti in VB6, ad esempio, che si interfacciano con database Access attraverso DAO (Data Access Object).Ad esempio, se volessimo estrarre tutti i clienti dal classico database Northwind.mdb scriveremmo qualcosa del genere: Private Sub myTest    Dim MyDB As DAO.Database   Dim MySet As DAO.Recordset   Set MyDB = CurrentDB()   Set MySet = MyDB.OpenRecordset("Select * from Employees", dbOpenDynaset)E 
Leggi tutto il post...
Categoria: VB6
venerdì, 29 mag 2009 Ore. 16.55

Verificare l'esistenza di un controllo in VB6 (Exists)

Può capitare, anche non lavorando necessariamente con oggetti creati a run-time, di dover verificare se all'interno della nostra form esiste già un determinato controllo.Per l'occorrenza ecco qui una routine un po' datata, ma sempre efficace. Ad esempio, supponiamo di dover verificare se esiste l'elemento di indice 5 di un array di controlli.
 Leggi tutto il post...

Categoria: VB6
martedì, 14 apr 2009 Ore. 11.29

Recuperare il numero di elementi contenuti in un array. (getArrayDim)

Dato un ipotetico array, sia esso di valori o di controlli, la funzione restituisce il numero di elementi che lo compongono.La funzione restituirà -1 qualora l'elemento passato non fosse un array AggiornamentoLa funzione getArrayDim era già stata trattata nel post "Verificare se un array è nothing". Nella versione proposta qui di seguito, è stata aggiunta la possibilità di analizzare anche array di controlli. Per completezza si consiglia di consultare tale post dove, tra le altre cose, veniva  
Leggi tutto il post...
Categoria: VB6
venerdì, 10 apr 2009 Ore. 16.14

Verificare se un array è nothing

Di un Array possiamo conoscere l'indice superiore o quello inferiore, ridimensionarne la struttura, scorrerne gli elementi ecc. ecc.. Tramite la funzione isArray() è anche possibile ricavare se una variabile è un array oppure no.
Dim mioArray() Leggi tutto il post...

Categoria: VB6
venerdì, 13 feb 2009 Ore. 14.38

Pad (riempimento) in VB6

A differenza di Vb.Net che espone le proprietà .PadLeft e .PadRight di una stringa, VB6 non ha una funzione Pad (riempimento) simile e, alla fine, bisogna un po' arrangiarsi. La funzione Pad qui riportata si preoccupa di effettuare tale operazione.Ho preferito non utilizzare due funzioni distinte per il PadLeft e PadRight, ma una sola Pad che discriminasse le due operazioni in base al valore dei parametri passati.Più precisamente, se passo un numero negativo come lunghezza della stringa ri 
Leggi tutto il post...
Categoria: VB6
lunedì, 19 mag 2008 Ore. 15.10

Errore 53 (File Not Found) chiamando una funzione di DLL custom.

Questo errore viene sollevato nel momento in cui si fa riferimento ad una funzione di una DLL caricata attraverso la dichiarazione:Private Declare Function theFunction Lib "custom.DLL" (Byval par1 as string, par2 as string ....) as long Il messaggio d'errore "File Not Found" indicherà il nome stesso della nostra DLL anche se questa è regolarmente presente nella directory specificata od in una di quelle del path di ricerca.In realtà non è la DLL a non essere trovata bensì una sua dipendenza. Pe 
Leggi tutto il post...
Categoria: VB6
venerdì, 14 mar 2008 Ore. 17.04

Array multidimensionali in VB6

Ancora qualche precisazione sull'utilizzo degli array in VB6.Nel post precedente abbiamo visto come era possibile impostare gli indici inferiori e superiori di un array e come fosse possibile recuperarne le informazioni attraverso le funzioni Lbound e Ubound. Proseguiamo con altre precisazioni.Atrraverso l'istruzione ReDim è possibile riallocare lo spazio di memorizzazione per un array dinamico, ma solo se questo è stato dichiarato senza dimensioni.Es.Dim myArray() As IntegerReDim myArray(0 To  
Leggi tutto il post...
Categoria: VB6
mercoledì, 25 lug 2007 Ore. 15.20

Valore massimo di un array - getMax

Nell'ultimo periodo mi è giunta più di una richiesta per ottenere il valore massimo all'interno degli elementi di un array o, più semplicemente, tra due valori posti a confronto.Ecco qui una semplicissima quanto rozza funzione che può tornare utile. La funzione ha un unico parametro obbligatorio denominato Value1 di tipo variant che potrà rappresentare il nostro insieme di array o semplicemente il primo valore di confronto.Se si passa un array di elementi, verrà attuato un contronto in funzione 
Leggi tutto il post...
Categoria: VB6
martedì, 12 giu 2007 Ore. 15.01

Array - alcune precisazioni

In VB6 quando si dimensiona un array è possibile specificarne sia l'indice inferiore che quello superiore.Es.Dim myArray(4 to 9) as Integer Questa dichiarazione dimensionerà un array di interi di 6 elementi avente indice inferiore uguale a 4 e quello superiore a 9.Omettendo l'indice inferiore si assume come tale quello definito nella dichiarazione Option Base [0/1] Es.Option Base 0Dim myArray(9) as Integer L'array di interi conterrà 10 elementi ed avrà come indice inferiore 0 Option Base 1Dim  
Leggi tutto il post...
Categoria: VB6
mercoledì, 06 giu 2007 Ore. 11.03

Attenzione ai loop mal gestiti.

Istrizione utilizzata per ripetere un blocco di codice fino a quando una condizione booleana resta o non diventa True. Fino a qui nulla di strano. Il problema può nascere da un suo improprio utilzzo.Che cosa accade alla nostra applicazione se la condizione di uscita dal loop non si presentasse mai?Mi spiego meglio: ho visto che molto spesso si tende ad utilizzare questo loop come cuore dell'applicazione, vale a dire che al suo interno vi sono una serie di operazioni che continuano ad essere rip 
Leggi tutto il post...
Categoria: VB6
giovedì, 15 mar 2007 Ore. 13.39

Verificare se un file è aperto in modo esclusivo.

Ecco un paio di sistemi molto semplici per verificare se è possibile accedere ad un file o se questo è stato aperto in modo esclusivo da qualche altra applicazione. I sorgenti sono compatibili con Visual Basic 5 e Visual Basic 6 La prima funzione sfrutta le consuete API di Windows: Private Const GENERIC_READ As Long = &H80000000Private Const INVALID_HANDLE_VALUE As Long = -1Private Const OPEN_EXISTING As Long = 3Private Const FILE_ATTRIBUTE_NORMAL As Long = &H80  Private De 
Leggi tutto il post...
Categoria: VB6
lunedì, 05 mar 2007 Ore. 17.23

Recuperare il nome della directory temporanea di Windows

Ancora un'API di Windows, questa volta per recuperare il nome della directory temporanea del sistema.Il sorgente è compatibile con Visual Basic 5 e Visual Basic 6 Public Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long }}-->  }}-->Public Function GetTempDir() As String }}-->'*********************************************************************************** }}-->'Func.: }}-->    &n 
Leggi tutto il post...
Categoria: VB6
giovedì, 01 mar 2007 Ore. 17.29

Recuperare il nome del pc attualmente in uso.

Altro semplice esempio questa volta per recuperare il nome del computer in uso.Il sorgente è compatibile con Visual Basic 5 e Visual Basic 6 Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, ByRef nSize As Long) As Long Public Function GetPCName() As String'**************************************************************************'Func.: GetPCName (Creazione SB-29/03/2000; Mod.: )'Desc.: Restituisce il nome del PC in uso'Par. :'Ret. : Il nome 
Leggi tutto il post...
Categoria: VB6
martedì, 27 feb 2007 Ore. 15.06

Recuperare il nome dell'utente attualmente loggato

Questo semplice esempio restituisce il nome dell'utente attualmente loggato a Windows.Il sorgente è compatibile con Visual Basic 5 e Visual Basic 6   Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, byRef nSize As Long) As Long Public Function GetUName() As String'***********************************************************************'Func.: GetUName (SB-29/03/2000; Mod.: )'Desc.: Restituisce l'user name d'accesso a Windows'Par 
Leggi tutto il post...
Categoria: VB6
martedì, 27 feb 2007 Ore. 13.55

Altro metodo per il calcolo della Pasqua - EasterDay in VB

Dopo aver visto come calcolare il giorno di Pasqua con SQL Server ora diamo un'occhiata a questa semplice funzione VB6 che, in modo molto simile, ottiene lo stesso risultato. Private Function EasterDay(Optional ByVal Y As Integer = 2007) As Date'***********************************************************************************'Func.:     EasterDay  (Mod SB-16/02/2007; Mod.:             )'Desc.:   
Leggi tutto il post...
Categoria: VB6
venerdì, 16 feb 2007 Ore. 18.28

Anno bisestile in VB6

Dopo aver visto come ricavare se un anno è bisestile o no in SQL Server, vediamo come fare la stessa operazione con Visual Basic 6.Eseguendo lo stesso calcolo la nostra funzione diventa: Function IsLeapYear(ByVal yr As Integer) As Boolean   IsLeapYear = (Day(DateAdd("d", -1, "1/3/" & yr)) = 29)End Function Altra possibilità è quella di eseguire un calcolo più dettagliato sull'anno in questo modo: Private Function IsLeapYear(ByVal yr As Integer) As Boolean  'Controlla se l'a 
Leggi tutto il post...
Categoria: VB6
mercoledì, 17 gen 2007 Ore. 18.14

Pixel RGB color under cursor

Come possiamo recuperare il valore RGB del pixel che si trova sotto il cursore del mouse?Nell'esempio seguente sfrutteremo tre API di Windows e poche riche di codice.Apriamo un nuovo progetto VB6 con un form ed un controllo timer in esso e copiamo il seguente codice. Una volta avviato nella caption del titolo della form verranno riportati i valori RGB del pixel sotto il puntatore del mouse, in qualsiasi parte dello schermo esso si trovi.Option ExplicitPrivate Type POINTAPI    X As 
Leggi tutto il post...
Categoria: VB6
venerdì, 05 gen 2007 Ore. 17.36

Come sapere se sono in debug mode. Review

Nel precedente post avevo trattato la possibilità di verificare se il nostro codice in esecuzione fosse in modalità debug oppure no.Mi sono accorto, però, che le routine d'esempio avevano qualche problema rendendo inutile la funzione isDebugMode. Il motivo è proprio nella chiamata debug.assert.Diamo un'occhiata al codice difettoso:Public Function isDebugMode() As Boolean    Debug.Assert Not myCheck(isDebugMode)End FunctionPrivate Function myCheck(ByVal bValue As Boolean) As B 
Leggi tutto il post...
Categoria: VB6
martedì, 10 ott 2006 Ore. 18.57

Come sapere se sono in debug mode.

Scrivendo applicazioni in VB6 potrebbe tornar utile sapere se il codice in esecuzione è in modalità debug oppure no, magari per far eseguire particolari istruzioni solo una volta che il programma sarà compilato.Un sistema veloce è quello di affidarsi all'oggetto debug; infatti sappiamo che le istruzioni debug.print e debug.assert vengono scartate una volta compilato il nostro sorgente e le seguenti due routine sfruttano proprio tale situazione.Public Function isDebugMode() As Boolean   
Leggi tutto il post...
Categoria: VB6
venerdì, 29 set 2006 Ore. 12.15

Oggetto Printer e caratteri asiatici.

Su alcuni applicativi realizzati in VB6 SP5 (ma sembra anche con SP6) che dovevano stampare font asiatici, nel mio caso ideogrammi coreani, si sono riscontrati gravi errori di stampa su alcuni modelli di stampanti HP recenti. (Il test è stato fatto su una HP DeskJet D2300)Più precisamente, la pagina stampata conteneva solo alcuni dei caratteri inviati all'oggetto Printer!Anche l'installazione dei più recenti drivers non ha dato nessun esito.Il sito ufficiale HP, newsgroup e Microsoft non ripotav 
Leggi tutto il post...
Categoria: VB6
giovedì, 14 set 2006 Ore. 11.14
Statistiche
  • Views Home Page: 111.534
  • Views Posts: 568.258
  • Views Gallerie: 117.516
  • n° Posts: 227
  • n° Commenti: 222
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003