Condividi:
Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!
Moderatori: Anthony47, Triumph Of Steel, archimede
di zanatta77 » 30/06/13 20:40
Ciao a tutti sto cercando di implementare la rubrica telefonica che ho realizzato, ma sono fermo su un punto e più precisamente si tratta, del modo di memorizzare aggiungendo definitivamente a delle variabili dichiarate altre variabili.
In particolare quello che vorrei fare è oltre ad aggiungere cognomi,nomi e numeri manualmente, vorrei poterlo fare anche in fase di esecuzione del programma.
Inserisco la stringa in modo da rendere il tutto più comprensibile si spera.....
- Codice: Seleziona tutto
Public Class Form1
Dim cognome(1000) As String 'nell'esempio ci sono solo 15 cognomi in tutto ma vorrei aggiungerne un bel po' .....
Dim nome(1000) As String
Dim numeri(1000) As String
Dim la As Object
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
MsgBox("Buongiorno." & vbCrLf & _
"Per una consultazione telefonica" & vbCrLf &
"Scriva il cognome dell'interessato nella parte richiesta, al termine prema con il tasto sx del mouse a centro del telefono.", MsgBoxStyle.Information)
If TextBox1.Text = "" Then
TextBox1.Text = "Cognome"
End If
End Sub
Private Sub Label2_Click(sender As Object, e As System.EventArgs) Handles Label2.Click
Timer1.Start()
ProgressBar1.Style = ProgressBarStyle.Marquee
cognome(1) = "ABRATE"
cognome(2) = "ABBATI"
cognome(3) = "ACCORTI"
cognome(4) = "AGRINI"
cognome(5) = "ACCORTI"
cognome(6) = "ANTIMO"
cognome(7) = "ALLUISI"
cognome(8) = "AROS"
cognome(9) = "ANGINI"
cognome(10) = "ANTICO"
cognome(11) = "AGRAFFA"
cognome(12) = "SENESI"
cognome(13) = "ANZIMO"
cognome(14) = "AROSTIDE"
cognome(324) = TextBox3.Text
nome(1) = "Ivan"
nome(2) = "Giovanni"
nome(3) = "Santino"
nome(4) = "Alessandro"
nome(5) = "Francesco"
nome(6) = "Germano"
nome(7) = "GIUSEPPE"
nome(8) = "Salvatore"
nome(9) = "Daniele"
nome(10) = "Rosanna"
nome(11) = "Gaetano"
nome(12) = "Vincenzo"
nome(13) = "Antonio"
nome(14) = "Salvatore"
nome(15) = TextBox4.Text
numeri(1) = "339-4079251"
numeri(2) = "338-4083878"
numeri(3) = "335-7074367"
numeri(4) = "334-9076482"
numeri(5) = "336-1080341"
numeri(6) = "338-5078367"
numeri(7) = "336-7074599"
numeri(8) = "335-5079935"
numeri(9) = "338-6075122"
numeri(10) = "338-9079812"
numeri(11) = "338-7477250"
numeri(12) = "338-6079868"
numeri(13) = "338-2052159"
numeri(14) = "339-4472560"
numeri(15) = TextBox1.Text()
If TextBox1.Text = cognome(1) Then
Label1.Text = numeri(1)
Label3.Text = cognome(1)
Label4.Text = nome(1)
ElseIf TextBox1.Text = cognome(2) Then
Label1.Text = numeri(2)
Label3.Text = cognome(2)
Label4.Text = nome(2)
ElseIf TextBox1.Text = cognome(3) Then
MsgBox("Attenzione con questo cognome risultano più persone, la preghiamo d'inserire anche il nome della persona desiderata. ", MsgBoxStyle.Exclamation)
ElseIf TextBox1.Text = cognome(3) & nome(3) Then
Label1.Text = numeri(3)
Label3.Text = cognome(3)
Label4.Text = nome(3)
ElseIf TextBox1.Text = cognome(4) Then
Label1.Text = numeri(4)
Label3.Text = cognome(4)
Label4.Text = nome(4)
ElseIf TextBox1.Text = cognome(5) Then
MsgBox("Attenzione con questo cognome risultano più persone, la preghiamo d'inserire anche il nome della persona desiderata. ", MsgBoxStyle.Exclamation)
ElseIf TextBox1.Text = cognome(5) & nome(5) Then
Label1.Text = numeri(5)
Label3.Text = cognome(5)
Label4.Text = nome(5)
ElseIf TextBox1.Text = cognome(6) Then
Label1.Text = numeri(6)
Label3.Text = cognome(6)
Label4.Text = nome(6)
ElseIf TextBox1.Text = cognome(7) Then
Label1.Text = numeri(7)
Label3.Text = cognome(7)
Label4.Text = nome(7)
ElseIf TextBox1.Text = cognome(8) Then
Label1.Text = numeri(8)
Label3.Text = cognome(8)
Label4.Text = nome(8)
ElseIf TextBox1.Text = cognome(9) Then
Label1.Text = numeri(9)
Label3.Text = cognome(9)
Label4.Text = nome(9)
ElseIf TextBox1.Text = cognome(10) Then
Label1.Text = numeri(10)
Label3.Text = cognome(10)
Label4.Text = nome(10)
ElseIf TextBox1.Text = cognome(11) Then
Label1.Text = numeri(11)
Label3.Text = cognome(11)
Label4.Text = nome(11)
ElseIf TextBox1.Text = cognome(12) Then
Label1.Text = numeri(12)
Label3.Text = cognome(12)
Label4.Text = nome(12)
ElseIf TextBox1.Text = cognome(13) Then
Label1.Text = numeri(13)
Label3.Text = cognome(13)
Label4.Text = nome(13)
ElseIf TextBox1.Text = cognome(14) Then
Label1.Text = numeri(14)
Label3.Text = cognome(14)
Label4.Text = nome(14)
Else
TextBox1.Text = "Cognome"
Label1.Text = ""
Label3.Text = ""
Label4.Text = ""
End If
End Sub
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
TextBox1.Text = ""
Label1.Text = ""
Label3.Text = ""
Label4.Text = ""
ProgressBar1.Style = ProgressBarStyle.Blocks
If Timer1.Interval = 15000 Then
Timer1.Stop()
End If
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
TextBox2.Visible = True
TextBox2.Text = "Key code"
End Sub
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
'Quello che vorrei fare con questo pulsante è semplicemente premendolo prendere la risultante dei TextBox3_Text,TextBox4_Text,TextBox5_Text e aggiungerli definitivamente alle variabili esistenti cognome,nome,numeri dandogli l'ultimo numero utile+1 per poi avere il delete dei 3 TextBox scritti precedentemente.
'Così facendo dovrei avere la possibilità di aggiungere in rubrica nuovi utenti durante l'esecuzione del programma.
End Sub
Private Sub TextBox2_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox2.TextChanged
If TextBox2.Text = "FIAT" Then
TextBox3.Visible = True
TextBox4.Visible = True
TextBox5.Visible = True
Button3.Visible = True
End If
End Sub
Private Sub TextBox3_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox3.TextChanged
Text = cognome.Last + 1
End Sub
Private Sub TextBox4_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox4.TextChanged
Text = nome.Last + 1
End Sub
Private Sub TextBox5_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox5.TextChanged
Text = numeri.Last + 1
End Sub
End Class
Windows 8
Office 2010
-

zanatta77
- Utente Senior
-
- Post: 127
- Iscritto il: 01/12/12 16:12
di Anthony47 » 01/07/13 01:21
Forse mi sono perso le puntate precedenti, ma mi sembra sviluppato dall' ucas.
Perche' sviluppare un elenco in vba, se avendo un elenco di nominativi su foglio1 da riga 5 in giu' basterebbe prevedere in riga 1 N celle per contenere Cognome ricercato, Nome ricercato, Citta' ricercata , Sede ricercata, etc ricercato e poi usare il filtro automatico sull' elenco sottostante per visualizzare solo i record che rispettano i criteri impostati (vuoto significa "qualsiasi").
E per aggiungere altri record dopo aver creato la struttura dati (bastano le intestazioni e un paio di righe di dati) potresti usare l' opzione Modulo (seleziona una cella delle intestazioni, Menu /Dati /Modulo).
Ciao
-

Anthony47
- Moderatore
-
- Post: 19619
- Iscritto il: 21/03/06 16:03
- Località: Ivrea
di zanatta77 » 03/07/13 01:21
Il motivo è il seguente successivamente vorrei farne un Applicazione privata con degli accorgimenti.
Sono fermo sul punto dell'inserimento in modo esecuzione dell'App. nella matrice delle variabili
Cercherò di rendere comprensibile sintetizzando l'aiuto richiesto:
ho dichiarato le seguenti variabili
Dim cognome() As String
Dim nome() As String
Dim numeri(nome() As String
Ipotiziamo che in fase di programmazione sia io ad inserire 14 variabili per tutte e 3 le variabili, ma successivamente tramite un Button dedicato in fase di "esecuzione dell'App" vorrei accedere con insert key alla visualizzazione di 3 TextBox, dove andremo ad inserire per ognuna TextBox.Text le 3 variabili da aggiungere per poi cliccare nuovamente su un Button dedicato che dovrebbe servire ad inserire (memorizzare,salvare) nelle variabili dichiarate, guardando l'ultima inserita e aggiungendo un numero (cognome.last + 1) ad esempio il contenuto del TextBox1.Text sarà cognome(15) mentre gli altri due saranno nome(15) e numeri(15) Fatto questo dovrei aver assegnato alla Matrice di variabili una nuova variabile permanente, cioè se chiudo ed esco dall'App al successivo riavvio dovrei trovarmi aggiunte le variabili e se faccio una ricerca mi troverò anche il "nome cognome e numero del 15".
Grazie
Windows 8
Office 2010
-

zanatta77
- Utente Senior
-
- Post: 127
- Iscritto il: 01/12/12 16:12
di Flash30005 » 03/07/13 07:53
Access si presta meglio al trattamento dei record
-

Flash30005
- Moderatore
-
- Post: 8518
- Iscritto il: 27/09/07 11:44
- Località: Roma +o-
di Anthony47 » 03/07/13 08:41
Per evitare incomprensioni, stai parlando di una applicazione per /su excel in vba, o in altro ambiente e con altri linguaggi di programmazione?
In generale mi pare che stai confondendo il programma (le istruzioni) con i dati (che al momento hai messo insieme al programma), che io invece "suggerirei" vengano tenuti separati, proprio perche' vorresti che il programma possa usarli ma all' occorrenza anche modificarli.
Guarda anche il messaggio di Flash, sopra.
Ciao
-

Anthony47
- Moderatore
-
- Post: 19619
- Iscritto il: 21/03/06 16:03
- Località: Ivrea
di zanatta77 » 04/07/13 14:34
Inizialmente ho provato a fare delle macro con Excel, poi visto che mi piaceva "guidare il pulman piuttosto che essere passeggero"
ho iniziato a leggere qualche manuale di visual basic e attualmente uso Visual studio 2010 express.
Ovviamente la mia è un avventura in quanto la preparazione a monte è quasi "0".
Mi affascina molto il mondo della programmazione, e quindi a mio livello cerco di fare qualche banale programmino per me o amici leggendo in rete tutto quello che trovo in merito nel tempo libero.
Adesso son fermo sul discorso matrice di una variabile modulare, che a quanto ho capito come nel mio caso sia il programmatore in fase di programmazione che l'utente in fase d'esecuzione del programma possono far variare, aggiungere o eliminare ecc ecc una variabile contenuta nella matrice.
Riuscite a darmi una dritta per far in modo che il contenuto delle 3 textbox tramite un button vadano ad aggiungere le 3 variabili che sono cognome,nome,numeri.
Praticamente in fase di esecuzione ad ogni clik del button deve memorizzare come variabili il contenuto dei 3 textbox in modo da aggiungere all'occorrenza nuovi numeri in rubrica con relativo nome e cognome.
Grazie
Windows 8
Office 2010
-

zanatta77
- Utente Senior
-
- Post: 127
- Iscritto il: 01/12/12 16:12
di Anthony47 » 06/07/13 00:51
Confermo che guidare il pulman dovrebbe essere piu' emozionante che fare il passeggero, avendo la patente D.
Non conosco Visual studio 2010 express quindi non mi cimento, tuttavia mi sento di confermare che i dati andrebbero separati dal programma.
Nella circostanza sposto comunque da Applicativi Office alla sezione Programmazione.
Ciao
-

Anthony47
- Moderatore
-
- Post: 19619
- Iscritto il: 21/03/06 16:03
- Località: Ivrea
di archimede » 06/07/13 07:50
zanatta77 ha scritto:in fase di esecuzione ad ogni clik del button deve memorizzare come variabili il contenuto dei 3 textbox in modo da aggiungere all'occorrenza nuovi numeri in rubrica con relativo nome e cognome.
Come ti è già stato detto, non puoi modificare il codice del tuo programma (perché è questo che stai chiedendo) in modo dinamico.
Quindi dovrai fare come tutti noi comuni mortali: separare i dati dal codice (cioè sciverli da qualche altra parte: foglio Excel, database, file su disco, ecc.).
Alessandro
-
archimede
- Moderatore
-
- Post: 2851
- Iscritto il: 07/11/02 12:41
- Località: Genova
-
Torna a Programmazione
Topic correlati a "[Visual studio 2010]Modif. dinamicamente contenuto variabili":
Chi c’è in linea
Visitano il forum: Nessuno e 3 ospiti