[windows] Programmare spegnimento automatico ad una determinata ora

Obiettivo: Programmare lo spegnimento automatico del computer ad una determinata ora, per esempio alle ore 20 tutti i giorni.

All’interno di Windows è possibile configurare delle attività programmate. Per farlo clicchiamo col destro sul tasto Start e selezioniamo Gestione computer.

Spostiamo su Utilità di pianificazione e poi tra le opzioni a destra scegliamo Crea attività di base.

Seguiamo la procedura guidata e diamo un nome alla nostra pianificazione, per esempio “Spegnimento automatico ore 20”

Scegliamo quando attivare l’attività, per esempio Ogni giorno.

A questo punto ci verrà chiesta la data e l’ora, nonché il numero di ricorrenze.

Scegliamo avvio programma dalla schermata successiva.

A questo punto selezioniamo il programma shutdown.exe e passiamogli il parametro -s

Il parametro -s avvierà lo spegnimento entro 60 secondi dall’esecuzione, altrimenti possiamo impostare lo spegnimento ad un tempo prefissato con il parametro -t, per esempio -t 30 per avviare lo spegnimento entro 30 secondi, o -t 0 per avviarlo immediatamente.

Premiamo avanti e poi fine.

 

Vedi articolo

[windows] Migrare utenti su un nuovo dominio, senza migrazione del dominio

Per quelli a cui piace complicarsi la vita, ecco come migrare i computer e gli utenti da un dominio all’altro, preservando configurazioni e file.

Scenario: abbiamo dei computer con degli utenti di dominio, con Windows Server, che vogliamo spostare su un nuovo dominio, senza però effettuare la migrazione del dominio stesso

Anzitutto assicuriamoci di avere sui computer l’utente amministratore locale accessibile. Qualora non ci fosse, o non se ne ricordasse la password, possiamo ripristinarlo seguendo questa guida.

Qualora l’utente administrator non fosse abilitato, ricordiamoci che possiamo attivarlo (eventualmente anche dalla modalità di ripristino) digitando:

A questo punto sul nostro computer avremo un utente di dominio, che chiameremo CONTOSO\Mario, e un utente locale Administrator.

  1. Attacchiamo il computer alla rete con il nuovo dominio, chiamato NEWCONTOSO, dove abbiamo creato un nuovo utente NEWCONTOSO\Mario
  2. Entriamo come amministratore locale
  3. Apriamo C:\Users ed individuiamo la cartella che apparteneva all’utente CONTOSO\Mario, supponiamo che sia mario.contoso
  4. Apriamo Esegui (WIN + R) e digitiamo regedit per aprire l’editor del registro
  5. Raggiungiamo l’elenco dei profili su HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\
  6. Qui compariranno varie voci del tipo S-1-5-21-XXXX dei profili degli utenti, cerchiamo le voci corrispondenti alla cartella mario.contoso alla voce ProfileImagePath
  7. Cancelliamo la voce del registro associata al profilo utente del precedente dominio
  8. Per evitare ogni forma di conflitto rinominiamo la cartella C:\Users\mario.contoso in qualcosa tipo C:\Users\mario.contoso__
  9. Scarichiamo CCleaner e facciamo una pulizia del registro
  10. Apriamo il Panello di controllo e creiamo un nuovo utente amministratore del computer, chiamato Mario, come l’utente che intendiamo registrare
  11. Andiamo sopra C:\Users\mario.contoso__ e clicchiamo col destro, andiamo su Proprietà > Sicurezza > Avanzate, qui andiamo su Autorizzazioni > Cambia autorizzazioni, se non esiste aggiungiamo il nuovo utente amministratore Mario e diamogli completa autorizzazione sulla cartella, spuntiamo anche le voci Includi autorizzazioni ereditarietà dell’oggetto padre di questo oggetto e Sostituisci tutte le autorizzazioni degli oggetti figlio con autorizzazioni ereditabili derivate da questo oggetto, premiamo OK e attendiamo. Se ci fossero degli errori ignoriamoli e diamo Continua fino alla fine. Poi andiamo su Proprietario > Modifica, se non vediamo l’utente Mario aggiungiamolo premendo Altri utenti o gruppi… altrimenti selezioniamolo e spuntiamo Sostituisci proprietario in sottocontenitori ed oggetti
  12. Adesso facciamo logout dall’account amministratore ed entriamo con l’utente amministratore locale Mario
  13. A questo punto apriamo il prompt dei comandi (WIN+R e poi cmd) e digitiamo il comando:

    In questo modo prendiamo il controllo della cartella
  14. Sistemiamo i permessi in modo che il nostro utente locale Mario abbia accesso completo
  15. Adesso usciamo da Mario (mi raccomando disconnettiamo l’utente) e torniamo su Administrator
  16. Una volta dentro andiamo su Esplora risorse e selezioniamo la visualizzazione dei file nascosti
  17. Adesso tagliamo (CTRL+X) le cartelle AppData, Documents, Pictures, Videos, Desktop (ed eventuali altre) dalla cartella C:\Users\mario.contoso__ e spostiamoli nella cartella dell’utente Mario locale, probabilmente C:\Users\mario
  18. Diamo OK a tutti gli alert, tentiamo Riprova laddove possibile, altrimenti diamo Ignora
  19. Riavviamo il computer
  20. A questo punto possiamo procedere a configurare il nuovo dominio, utilizzando il Computer Connector di Windows Server
  21. Una volta eseguita la connessione ci chiederà quali utenti vogliamo far migrare i profili, selezioniamo la seconda voce Configura il computer per me e per altri utenti
  22. Selezioniamo l’utente NEWCONTOSO\Mario e andiamo avanti
  23. Nella scelta del profilo selezioniamo il profilo locale Mario
  24. Proseguiamo e concludiamo la configurazione con le altre opzioni a nostra scelta
Vedi articolo

[xamarin] Pubblicare app iOS in beta su TestFlight da Visual Studio 2017 su Windows

Obiettivo: Pubblicare la beta di una app per iOS, sviluppata con C# e Xamarin su Visual Studio 2017 per Windows

Per molti sarà una banalità, ma ho trovato che la pubblicazione di app iOS da Windows (ok, capisco che me la sto proprio cercando) è una piccola avventura, a differenza di quando si lavora su Android. Anzitutto dobbiamo assicurarci di avere tutti gli ingredienti necessari per poter procedere. Questi comprendono:

Xamarin e Visual Studio 2017 su Windows (nel mio caso specifico Windows 10)

Un Mac con installati Visual Studio 2017 ed Xcode per poter compilare al app.

Application Loader 3.0 (scaricabile da qui) per poter caricare la app online sull’Apple Store.

Un account Apple Developer e uno su iTunes Connect.

Una volta preparata la nostra app e testata sulla macchina virtuale di Xcode, possiamo cominciare a pensare alla sua pubblicazione. Come ho accennato prima tutte le guide online in merito si riferiscono principalmente a Visual Studio 2017 con Xamarin già installati sul Mac, mentre io mi ostino per volerci lavorare da Windows.

Quello che voglio fare è distribuire la app in beta verso alcuni utenti registrati per TestFLight, in modo da poter effettuare un debugging realistico rispetto all’utilizzo degli utenti.

Per poterlo fare anzitutto devo aggiungere degli utenti su iTunes Connect.

Indirizzo: https://itunesconnect.apple.com/

Per farlo mi sposto nell’apposita sezione.

Una volta dentro, da Utenti di iTunes Connect premo sul tasto più e aggiungo un nuovo utente.

A questo punto posso inserire l’indirizzo email col quale ho registrato il mio iPhone sul quale voglio fare le prove, mettendo un nome e cognome come riferimento.

Adesso mi verrà chiesto di selezionare un ruolo per il mio utente.

Scegliendo il ruolo mi verrà detto quali saranno le sue possibilità di accesso, quello che mi interessa è che sia disponibile per TestFlight.

Fatto questo possiamo salvare e spostarci a configurare la parte di Apple Developer.

Indirizzo: https://developer.apple.com/

Anzitutto aggiungiamo il dispositivo sul quale vogliamo far agire l’utente. Spostiamoci su Devices > All (indirizzo: https://developer.apple.com/account/ios/device/) e clicchiamo sul tasto più per aggiungere un dispositivo. Ci verranno chiesti un nome descrittivo e un UDID. Per trovare l’UDID suggerisco la seguente guida.

A questo punto registriamo un identificatore per la nostra app, andando su Identifiers > App IDs (indirizzo: https://developer.apple.com/account/ios/identifier/bundle/create).

Il Bundle ID è quello che abbiamo stabilito nel file Info.plist alla seguente chiave:

Dove com.miodominio.NomeApp è il formato di dominio inverso, un po’ come succede anche su Android.

Una volta aggiunta la app, con le opportune configurazioni, aggiungiamo i certificati per la distribuzione.

Andiamo su Certificates > All e premiamo sul tasto più per aggiungerne uno.

Selezioniamo App Store and Ad Hoc e seguiamo la procedura guidata. Alla fine della procedura ci sarà dato un file di certificato da installare sul Mac dove abbiamo Xcode ed il resto.

NOTA: La medesima cosa si può fare anche da Xcode, andando su Preferenze > Account > Gestisci certificati e cliccando sul tasto aggiungi.

Ora spostiamoci a creare un Provisioning Profiles di distribuzione.

Per farlo andiamo su Provisioning Profiles > Distribution (indirizzo: https://developer.apple.com/account/ios/profile/production)

Clicchiamo sul tasto più per aggiungere un profilo e selezioniamo un profilo di distribuzione Ad Hoc.

Seguiamo le istruzioni. Alla fine ci verrà dato un file con estensione *.mobileprovision che dobbiamo mettere sul nostro Mac e cliccarci due volta sopra per installarlo. Apparentemente non succederà nulla, ma il profilo sarà stato installato.

Fatte tutte queste belle cose arriva l’avventura finale. Compilare la app da Visual Studio 2017 che gira su Windows.

Per poterlo fare correttamente è necessario apportare alcune modifiche.

Anzitutto apriamo Info.plist e assicuriamoci di aver impostato correttamente i parametri di compatibilità.

Assicuriamoci di aver impostato correttamente la lingua:

Ma soprattutto di aver inserito il parametro per il beta testing:

Adesso apriamo Entitlements.plist e assicuriamoci di inserire anche qui il medesimo parametro:

Spostiamoci sulle proprietà della nostra app e configuriamola nel modo seguente:

In questo modo l’esportazione avverrà nella cartella bin\iPhone\Ad-Hoc dentro la radice del progetto, dove verrà creato un file con estensione *.ipa.

Assicuriamoci anche che sia visibile l’identità giusta della firma ed il corretto profilo di provisioning. A tale proposito, qualora non fosse possibile vederli, consiglio di aprire e chiudere Visual Studio o lanciare una compilazione sul Mac collegato in rete.

Assicuriamoci anche di aver configurato la giusta impostazione di compilazione, che nel mio caso risulta così:

Se abbiamo fatto tutto come si deve troveremo nella suddetta cartella, bin\iPhone\Ad-Hoc, il nostro file *.ipa.

Spostiamolo sul nostro Mac e apriamo Application Loader.

Clicchiamo su Delivery Your App e poi su Choose. Scegliamo il file *.ipa da caricare e attendiamo la fine del caricamento.

Se tutto è andato bene la nostra app diventerà disponibile per il test agli utenti che abbiamo selezionato precedentemente.

Errori comuni

Di seguito riporto alcuni errori comuni che sono stati generati da Application Loader o inviati via email al momento dell’invio della app in testing:

  1. Missing beta entitlement – Your app does not include the beta-reports-active entitlement. If you intend to distribute this build via TestFlight for beta testing, please re-build this app with an App Store Distribution provisioning profile. Do not use ad-hoc profiles.
    SOLUZIONE: inserire <key>beta-reports-active</key> nei file Info.plist e Entitlement.plist come descritto precedentemente
  2. the bundle contains a key that is not included in the provisioning profile beta-reports-active
    SOLUZIONE: c’è un errore nel profilo di compilazione, assicurarsi che sia di Distribuzione, come detto prima; maggiori informazioni si trovano qui
  3. Your app does not include the beta-reports-active entitlement
    SOLUZIONE: vedere punto 1, stesso problema
  4. Errore Invalid architecture: ARMv7. 32-bit architectures are not supported when deployment target is 11 or later
    SOLUZIONE: questo è un errore di Visual Studio, per risolverlo è necessario configurare correttamente la Compilazione iOS nelle impostazioni del Progetto, come illustrato in precedenza, inoltre bisogna inserire UIRequiredDeviceCapabilities in Info.plist
  5. ipa file too large
    SOLUZIONE: in questo caso non dipende assolutamente dal file, ma può dipendere dai certificati (vedi all’inizio) oppure dalla velocità della connessione da cui facciamo l’upload; assicuriamoci che il profilo di Provisioning e i certificati siano installati sulla macchina con Xcode.
Vedi articolo

[windows] Ripristinare password di account locale su Windows 7/8

Problema: Ripristinare la password di un account locale, per esempio Administrator oppure un altro account, su un computer con Windows 7 oppure Windows 8

Questo esempio vale anche per Windows 8 (non ho ancora provato su Windows 10), mentre mi avvarrò di un Windows 7 per illustrare la procedura. Anzitutto procuriamoci un disco di installazione di Windows 7, con il quale poter avviare il ripristino del computer. Nel caso non si disponga di tale disco lo si può anche scaricare online, per esempio da qualche torrent, perché quello che ci interessa non è installare un nuovo sistema operativo, ma solo ripristinare quello corrente, quindi non è indispensabile disporre di una copia originale o di codici di licenza.

In secondo luogo assicuriamoci che sia possibile avviare il disco dal BIOS, tipicamente cambiando l’ordine di boot dalla configurazione del BIOS (nella maggior parte dei PC si accede al BIOS premendo F2 oppure CANC/DEL) oppure accedendo al menu di boot (tipicamente premendo F12 all’avvio).

Una volta inserito il disco premiamo INVIO per accedere al disco, anziché avviare il sistema operativo:

A questo punto sarà avviato il sistema di ripristino, selezioniamo la lingua:

Premiamo avanti, a questo punto selezioniamo dalla voce in basso l’opzione per il ripristino del computer.

Verranno cercati i sistemi operativi ripristinabili. Selezioniamo a questo punto il sistema operativo che ci interessa (tipicamente ce ne sarà uno solo) e procediamo:

Premiamo avanti. A questo punto si apriranno le opzioni di ripristino:

Clicchiamo su Prompt dei comandi

A questo punto notiamo che ci troviamo nell’unità X:, il sistema operativo è stato probabilmente montato sull’unità D: (attenzione! tipicamente non si tratta di C:, anche se sul computer originale Windows era montato su C:). Per visualizzare tutte le unità montate basta digitare:

Ci verrà mostrato qualcosa di simile a questo:

Possiamo entrare in D: digitando semplicemente D: e premendo INVIO. Utilizzando il comando dir possiamo accertarci di essere nel volume giusto.

A questo punto vogliamo sostituire Sticky Keys con il Prompt dei comandi sul nostro PC originale. Sticky Keys si avvia premendo ripetutamente il tasto SHIFT, in questo modo senza dover accedere al PC avvieremo il prompt dei comandi. Per maggiori informazioni su Sticky Keys suggerisco la pagina di Wikipedia.

Per fare la sostituzione digitiamo sul prompt dei comandi:

In questo modo faremo una copia di backup del file sethc.exe nella radice del sistema e poi lo sostituiremo con cmd.exe.

Il risultato dovrebbe apparire così se tutto è andato bene:

Usciamo dal prompt dei comandi digitando exit, dopodiché premiamo il tasto riavvio.

Una volta riavviato il sistema premiamo per 5 volte rapidamente il tasti SHIFT finché non compare il prompt, di fronte alla schermata di login.

Adesso digitiamo:

In questo modo verranno visualizzati gli account registrati sul PC.

Nel mio caso sono disponibili gli utenti Administrator, Guest, Mario e SVEN. Immaginiamo di voler cambiare la password per l’utente Mario. Quindi digitiamo:

Al posto di USERNAME e PASSWORD digitiamo il nome utente e la nuova password.

Nel mio caso ho digitato Mario e come password Pappapero4321.

Se tutto è andato bene possiamo accedere con il nostro utente e la nuova password.

A questo punto è importante ripristinare sethc.exe per motivi di sicurezza. Se si prova a farlo dal sistema operativo avviato si otterrà un errore.

Per fare il ripristino è necessario ripetere i primi passaggi e accedere al sistema di ripristino. A quel punto digitiamo:

Così ripristineremo la copia che abbiamo salvato sulla radice nella posizione originale.

Vedi articolo

[windows] Copiare cartelle e file preservando i permessi e le condivisioni sulla destinazione

Problema: Copiare dati e cartelle di un profilo, come per esempio AppData, su un altro profilo senza copiare anche i relativi permessi e preservando i permessi e le condivisioni del profilo di destinazione

Senza entrare nel merito del perché si potrebbe voler fare qualcosa del genere (molto utile in realtà quando si fa la migrazione dei profili) è sufficiente utilizzare robocopy.

Nello specifico il seguente comando:

/E serve a copiare tutto il contenuto, comprese le sottocartelle vuote

/R:0 serve per saltare eventuali errori, dovuti magari a mancanza di permessi

Potremmo aggiungere anche il /COPY:flag[s] per copiare solo determinate caratteristiche (di predefinito è su /COPY:DAT, D=Data, A=Attributi, T=Timestamps, eventualmente S=Informazioni di sicurezza dei NFTS ACLs, O=Informazioni sul proprietario, U=Auditing info)

Vedi articolo

[excel] Copiare solo celle visibili e non quelle nascoste

Problema: Quando si seleziona un gruppo di celle e si copiano normalmente, vengono copiate anche le celle nascoste, mentre si vorrebbero copiare solamente le celle visibili

Immaginiamo di avere un intervallo di celle come il seguente:

Se adesso decidessimo di nascondere la terza riga avremmo il seguente risultato:

Selezionando l’intervallo A1:B5 e copiando (per esempio con CTRL+C) copieremo in realtà anche la riga 3 che è nascosta. Lo stesso vale quando si utilizzano i filtri sulle celle.

Per copiare invece solamente le celle visibili dobbiamo fare nel modo seguente:

  1. Selezioniamo l’intervallo che vogliamo copiare come faremmo normalmente
  2. Nella scheda Home spostiamoci su Trova e seleziona e selezioniamo Vai a formato speciale…
  3. Nella finestra selezioniamo Solo celle visibili e premiamo Ok
  4. Eseguiamo la copia come faremmo normalmente (o banalmente premendo CTRL+C)

Adesso abbiamo copiato solo le celle visibili e possiamo incollarle dove vogliamo.

Per maggiori approfondimenti consiglio la guida ufficiale di Office: Copiare solo le celle visibili

Vedi articolo

[windows server] Spostare la cartella dei file di aggiornamento di WSUS

Obiettivo: spostare la cartella di archiviazione degli aggiornamenti di WSUS in una nuova posizione

Tipicamente i file di aggiornamento gestiti dal server WSUS si trovano nella posizione C:\Comsys WSUS.

Per cambiare tale cartella è sufficiente trovare il programma wsusutil.exe ed effettuare lo spostamento nel modo in cui segue:

  1. WIN+R per aprire ESEGUI e digitare CMD per aprire il prompt dei comandi
  2. Spostarsi nella cartella di wsusutil.exe tipicamente dovrebbe trovarsi in C:\Program Files\Update Services\Tools
  3. Digitare quindi CD C:\Program Files\Update Services\Tools
  4. Creare quindi la nuova cartella di destinazione dei file di aggiornamento, per esempio su un disco F creando una cartella F:\WSUS
  5. Digitare quindi wsusutil.exe movecontent F:\WSUS F:\move.log
  6. Questo comando avvierà lo spostamento dei file dalla posizione attuale a quella nuova
Vedi articolo

[python] Radiazione di Hawking e tempo che impiega un buco nero ad evaporare

In memoria di Stephen Hawking propongo un modesto esercizio in Python per calcolare il tempo di evaporazione di un buco nero, secondo la radiazione di Hawking.

In questo caso utilizzeremo le librerie scipy e numpy di Python.

Il mio esempio sarà fatto sotto Windows. Anzitutto installiamo quindi le librerie necessarie utilizzando pip, nella PowerShell digitiamo:

Una volta fatto avviamo un nuovo progetto in python e andiamo anzitutto a calcolare la suddetta formula. L’equazione di evaporazione di un buco nero, che si trovasse in una condizione ideale (ovvero nessuna aggiunta di energia, quindi ipoteticamente in un universo completamente vuoto e senza radiazione di fondo) è la seguente:

t_{ev} = \frac{5120 \pi G^2 M_0^3}{\hbar c^4}

Per scriverla in Python digitiamo:

Faccio notare che da scipy importiamo le costanti fisiche e matematiche che possiamo utilizzare secondo la seguente tabella.

M0 è l’ipotetica massa iniziale di un buco nero di massa solare, nello specifico di 1,98892 * 10^{30} kg .

Il risultato dovrebbe essere:

Il risultato è in secondi, possiamo convertirlo in miliardi di anni digitando:

Il risultato è qualcosa come 2 * 10^{58} miliardi di anni, molto più dell’attuale vita dell’universo stimata attorno ai 13 miliardi di anni.

Adesso proviamo ad inserire l’equazione in un grafico, dove vogliamo confrontare vari tipi di buco nero in base alla massa ed il tempo di evaporazione.

Per farlo anzitutto convertiamo la nostra precedente equazione in una funzione digitando:

Ricordiamoci che il risultato della funzione è in secondi. A questo punto prepariamo i valori del nostro asse x, che saranno le masse di diversi buchi neri. Prendiamo 100 valori tra 0 e 1030.

Sull’asse Y calcoliamo i corrispondenti valori:

Adesso impacchettiamo tutto in un grafico generato con matplotlib.

Il risultato sarà qualcosa di simile a questo:

Vedi articolo

[vba] Classe per interrogare in SQL un foglio excel

Obiettivo: creare una classe per poter interrogare tramite query SQL un foglio excel, leggendo e scrivendo i dati come se lavorassimo con tabelle SQL

Questo esercizio riprende il punto direttamente da questo precedente: Interrogare foglio di Excel con SQL in VBA

Dopo aver visto come poter interrogare con query SQL un foglio excel, vediamo come creare una classe ad hoc che ci permetta di leggere e scrivere i dati mediante query SQL. Per farlo anzitutto aggiungiamo una nuova classe:

Premendo ALT+F11 apriamo l’editor Visual Basic, ci posizioniamo su un qualunque punto del progetto a sinistra e clicchiamo col destro (per esempio su Form), poi scegliamo Inserisci ⇒ Modulo classe. A questo punto verrà creata una nuova classe. Per rinominarla è sufficiente selezionarla e poi spostarsi nel riquadro delle proprietà.

A questo punto incolliamo dentro la classe appena creata (tenendo presente poi il nome scelto) il seguente codice:

Faccio notare come nel metodo dbout dobbiamo fare un’operazione un po’ superflua in apparenza, ovvero contare prima le righe e le colonne, per poi ridimensionare il vettore result. Questa operazione è necessaria perché ReDim, in VBA, non permette di ridimensionare l’intera matrice (vettore di vettori), ma solo l’ultima dimensione. Quindi, per esempio, result(4,10) potrebbe diventare result(4,20), ma non result(5,10) oppure result(5,20). Un’alternativa sarebbe quella di creare una funzione che trasponga il vettore e lo modifichi, ritrasponendolo di nuovo, ma dal punto di vista del calcolo credo sarebbe molto più oneroso che fare così.

Fatto questo potremo utilizzare la nostra nuova classe nella maniera seguente.

Una volta creata la classe può essere esportata, oppure importata nel modo seguente:

Per chi volesse è possibile scaricare la classe già pronta cliccando qui: DbSQL.zip

Hash MD5: A2A18A42BB11AEA86DF1AB4F547B4414

La classe è stata testata su Excel 2016.

Vedi articolo

Interrogare foglio di Excel con SQL in VBA

Obiettivo: interrogare e filtrare il contenuto di un foglio excel come se fosse una tabella di un database SQL

Prepariamo anzitutto un file Excel creando un foglio con dei dati come quelli di seguito:

Questo foglio lo chiamiamo DATI. Faccio notare che nella prima riga ho inserito le intestazioni della nostra tabella.

In un secondo foglio andiamo a creare un pulsante che richiamerà un form. L’idea sarebbe quella di creare un metodo di inserimento che guidi l’utente e gli permetta di filtrare una vasta base dati, eseguendo anche dei comandi di ricerca. Il risultato sarà il seguente:

Se proviamo a cercare qualcosa, per esempio “Mar” l’elenco dovrà essere filtrato e otterremo il risultato seguente:

Fatte queste premesse vediamo come realizzare l’interrogazione del foglio mediante VBA (sorvolo sull’elementare creazione del form).

Anzitutto creiamo una Sub che caricherà i valori nella combobox (cmbSeleziona) e nella listbox (lbSeleziona).

Faccio notare che in questo caso la query filtra solamente i valori in base al Nome, inoltre il parametro nome può essere passato in via opzionale, permettendo quindi anche di visualizzare tutti i campi se non c’è nessun nome da filtrare.

Ricordiamoci che per poter eseguire la connessione ADO abbiamo bisogno di importare l’opportuna libreria dai riferimenti.

A questo punto completiamo il nostro codice aggiungendo:

In questo modo ad ogni modifica (change) di txtCerca, che è la textbox di ricerca in cima al form, verrà interrogato il nostro foglio per produrre un risultato.

Il medesimo metodo LoadSelect, questa volta senza argomenti, lo aggiungiamo anche all’avvio del form, per caricare il contenuto completo senza filtri.

Qui è possibile scaricare il file creato con Excel 2016.

Vedi articolo