Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Modifica record in database Access
Forum - Visual Basic 6 - Modifica record in database Access

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
lucas95 (Normal User)
Rookie


Messaggi: 33
Iscritto: 11/11/2011

Segnala al moderatore
Postato alle 13:02
Giovedì, 09/02/2012
Salve ragazzi,
sto cercando di modificare un determinato record dentro un database Access. In particolare se nel programma inserisco in 2 TextBox, cognome/nome di un giocatore e poi la squadra mi apre una form con tutte le sue caratteristike e su questo non ci sono problemi. Ora se devo modificare ad esempio la squadra di questo giocatore:

Text1 = Borriello Marco
Text2 = Roma

Ora dovrei modificare la squadra in "Juventus". Quindi devo posizionarmi nel campo "Squadra" di quel giocatore. Allora ho scritto:

Codice sorgente - presumibilmente VB.NET

  1. Private Sub cmdModifica_Click()
  2. Set cn = New ADODB.Connection
  3. Set rs = New ADODB.Recordset
  4.  
  5. cn.Open str
  6. rs.Open "SELECT Squadra FROM SerieA WHERE Squadra'" & txtSquadra.Text & "'", cn, 1
  7.  
  8. If rs.EOF then
  9. MsgBox "Squadra non trovata!"
  10. ElseIf rs.EOF = False Then
  11. MsgBox "Squadra trovata!"
  12. End If
  13.  
  14. rs.Close
  15. cn.Close
  16. End Sub



In pratica in questo modo vedo se c'è la squadra in txtSquadra. Ora dovrei modificare la squadra...come posso farlo? Ho creato una text:  "txtSquadraNew"...e poi un command "cmdModifica"(vedi sopra)...se premo su questo pulsante mi dice se la squadra è esatta, io invece devo fare in modo che se l'utente scrive in:

txtSquadraNew.Text = "Juventus"

Quando clicca su "cmdModifica", modifichi la squadra e ovviamente salvi. Dovrei farlo con il metodo Update, ma come?


Grazie! ;)

PM Quote
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Segnala al moderatore
Postato alle 13:15
Giovedì, 09/02/2012
per esempio:
Codice sorgente - presumibilmente Visual Basic 6

  1. UPDATE <Tabella>
  2. SET <nome campo> = <nuovo valore>
  3. [WHERE <condizione>]


per esempio se abbiamo una tabella Persone(Nome, Cognome, DataNascita, CF)  CF=codice fiscale
e vogliamo cambiare il nome, cognome e data di nascita di una certa persona che ha codice fiscale = XXX
diamo il comando SQL come segue:
Codice sorgente - presumibilmente Visual Basic 6

  1. UPDATE Persone
  2. SET Cognome = 'Rossi', Nome = 'Mario', DataNascita = '1960-3-1'
  3. WHERE CF = 'RSSMRA60C01H501F'



PM Quote
Avatar
lucas95 (Normal User)
Rookie


Messaggi: 33
Iscritto: 11/11/2011

Segnala al moderatore
Postato alle 13:41
Giovedì, 09/02/2012
Cioè questo:

Codice sorgente - presumibilmente Visual Basic 6

  1. rs.Open "UPDATE SerieA SET Squadra = "Juventus" WHERE Squadra = "Roma", cn, 1




???

PM Quote
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Segnala al moderatore
Postato alle 14:27
Giovedì, 09/02/2012
Testo quotato

Postato originariamente da lucas95:

Cioè questo:

Codice sorgente - presumibilmente Visual Basic 6

  1. rs.Open "UPDATE SerieA SET Squadra = "Juventus" WHERE Squadra = "Roma", cn, 1




???



in teoria stai usando un Recordset una specie di contenitore ovvero contiene il risultato di una query per esempio SELECT campo FROM tabella; ma nel nostro caso basta solo eseguire la query nel database dovrebbe esserci un metodo executeQuery(String query);
Io non conosco bene VB.net
Ho trovato un esempio qui:
http://www.mrwebmaster.it/vbnet/guide/approccio-database-v ...

esempio
Codice sorgente - presumibilmente VB.NET

  1. Dim objconn As OleDbConnection
  2. Dim stringaconn As String
  3. Dim stringasql As String ="UPDATE ecc..."
  4. Dim objcomm As OleDbCommand
  5. stringaconn="Provider=Microsoft.JET.OLEDB.4.0;Data Source="
  6. stringaconn=stringaconn & "c:\test\prova.mdb"
  7. objconn=New OleDbConnection(stringaconn)
  8. objconn.Open()
  9.  
  10. objcomm=New OleDbCommand(stringasql,objconn)
  11.  
  12. Dim risputente As Integer
  13.  
  14. risputente=objcomm.ExecuteNonQuery()
  15. If risputente=1 Then
  16.  msgbox("query eseguita con successo")
  17. End If


PM Quote
Avatar
lucas95 (Normal User)
Rookie


Messaggi: 33
Iscritto: 11/11/2011

Segnala al moderatore
Postato alle 15:20
Giovedì, 09/02/2012
Ma non è codice VB.NET il mio, ma VB6. Sinceramente non ho capito l'esempio. Ripeto a me serve capire come posso modificare il contenuto di un record in un database Access. Nel database sono presenti:

1)ID
2)Nominativo
3)Squadra
4)Min Giocati
5)Gol
6)CartR
7)CartG

Come detto prima...inserisco in due TextBox il nome/cognome e squadra...si apre una form con tutte le caratteristike. In questa form c'è anke una Text(txtSquadraNew) e un pulsante(cmdModifica). Se in txtSquadraNew scrivo una nuova squadra e clicco su Modifica, quest'ultimo deve modificare la squadra di quel giocatore.


Grazie!

Ultima modifica effettuata da lucas95 il 09/02/2012 alle 15:22
PM Quote
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Segnala al moderatore
Postato alle 15:36
Giovedì, 09/02/2012
Allora non capisci ...DEVI ESEGUIRE LA QUERY SCRITTA IN SQLLLL!!!!!!!!!!!!!!!!!!!!!!!!!
che cavolo centrano le textbox e le altre componenti mah!!
Non hai il manuale vb6  a portata di mano??
Cerca come eseguire una query in Access con vb6
è un metodo del tipo:
Codice sorgente - presumibilmente Plain Text

  1. cn.Execute "UPDATE bla bla "


Ultima modifica effettuata da Bonny il 09/02/2012 alle 15:37
PM Quote
Avatar
lucas95 (Normal User)
Rookie


Messaggi: 33
Iscritto: 11/11/2011

Segnala al moderatore
Postato alle 17:39
Giovedì, 09/02/2012
Non c'è bisogno di innervosirsi, se uno non capisce cosa intendevi. Cerchiamo di avere toni adeguati. Tu parli di VB.NET, quando uso VB6; ma comunque leggo ancora meglio la sezione "Linguaggio SQL"...se non riesco...o mi blocco da qualche parte scrivo nuovamente sul forum!


Grazie lo stesso!

PM Quote
Avatar
lucas95 (Normal User)
Rookie


Messaggi: 33
Iscritto: 11/11/2011

Segnala al moderatore
Postato alle 18:48
Giovedì, 09/02/2012
Allora:

Codice sorgente - presumibilmente VB.NET

  1. Private Sub cmdModifica_Click()
  2. Dim valore As String
  3.  
  4. valore = txtSquadraNew.Text
  5. Set cn = New ADODB.Connection
  6. Set rs = New ADODB.Recordset
  7.  
  8. cn.Open str
  9. rs.Open "SerieA", cn
  10. Do Until rs.EOF = False
  11. If valore <> "" Then
  12. cn.Execute "UPDATE SerieA SET Squadra = 'Juventus' WHERE Squadra='Roma'"
  13. End If
  14. rs.MoveNext
  15. Loop
  16.  
  17.  
  18. rs.Close
  19. cn.Close
  20. End Sub




Dove sbaglio???

PM Quote
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Segnala al moderatore
Postato alle 21:16
Giovedì, 09/02/2012
Hai ragione scusami però continuo a vedere cose strane ..
Dunque eseguire una query sql del tipo UPDATE modifica alcuni campi di un record di una tabella.
esempio:
Codice sorgente - presumibilmente Visual Basic 6

  1. UPDATE <Tabella> SET <nome campo> = <nuovo valore> [WHERE <condizione>]
  2. /*tradotta in italiano aggiorno il campo <nome campo> con il nuovo valore <nuovo valore> nella tabella <Tabella> dove per esempio il campo squadra è uguale a 'juventus'*/


Una volta data questa istruzione per mezzo di vb6 ad Access il campo verrà modificato, quindi non capisco il senso di quel ciclo anche cmq il recordSet fa una copia dei record in Ram..
Anche se io conoscessi bene il vb6 e ti scrivo il codice che senso avrebbe..
Secondo me non hai capito concettualmente come interrogare il db.

Ultima modifica effettuata da Bonny il 09/02/2012 alle 21:19
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo