|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#21 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#22 | ||||
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Probabilmente è proprio a causa del formato .accdb di Access 2007 che qualcuno non riesce a farlo funzionare. In tal caso l'Access Runtime 2007 dovrebbe risolvere. Quote:
Secondo me ci vuole qualche anno prima di arrivare a 2 GB. Detto questo, io per primo storco il naso davanti al limite dei 2 GB, e mi chiedo quando mai Ms farà qualcosa per superarlo. Quote:
Quote:
Se puoi lascia perdere il formato .accdb e crea un DB compatibile con 2003 ( .mdb ). Usato come semplice serbatoio-dati, non perdi proprio nulla, anche perchè il limite è sempre di 2 GB. Ne guadagni invece in retro-compatibilità. Se invece resti su .accdb ( formato 2007 ) prova senz'altro ad usare l'Access Runtime linkato da cionci. |
||||
|
|
|
|
|
#23 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
|
#24 |
|
Member
Iscritto dal: Nov 2009
Messaggi: 43
|
Proverò con il runtime di access 2007 linkatomi da cionci, e appena ricomincia la scuola lo faccio provare ai miei amici.*
MarcoGG: Il programma è semplice: Tu inserisci i vocaboli e il significato, esempio: (to) work --> lavorare. Poi il programma sa fare due cose: 1. Ti mischia i vocaboli e te li chiede, e alla fine dice all'utente quanti ne ha fatti giusti/sbagliati, e quali ne ha fatti sbagliati. 2. Ti fa un piccolo test a tempo (L'utente decide se vuole avere un tempo semplice/medio/difficile) e alla fine il programma gli da un voto *(Vivo in germania, e ora abbiamo ferie |
|
|
|
|
|
#25 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Se l'accesso al DB avviene per via programmatica dall'esterno ( ad esempio con VB ), non ci guadagni niente. Perciò se crei un .mdb con "formato file Access 2000" molto probabilmente risolvi ogni problema di incompatibilità. Alla fine che tu usi un .mdb di Access 2000 o 2003, o un .mdb o .accdb di 2007, per te non cambia nulla, ma se "tieni bassa" la versione riduci a zero i rischi di incompatibilità con macchine che non hanno Access installato. Tempo fa ho fatto diverse prove con macchine virtuali, proprio con VB.NET e Access 2003 ( .mdb formato 2000 ) e ricordo che ad esempio con un Win2000 SP4 liscio ( solo con il Framework .NET ) non avevo problemi e non era nemmeno necessario aggiornare Mdac... |
|
|
|
|
|
|
#26 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
|
|
|
|
|
|
|
#27 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
|
|
|
|
|
|
|
#28 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
In teoria c'è comunque bisogno del runtime, anche per Access 2000. Bisogna installare MSADODC in quel caso.
|
|
|
|
|
|
#29 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Test scontato, ma l'ho fatto lo stesso. Sul sistema Guest c'è solo Win con il Framework .NET. Ho usato una mia applicazione scritta in VB.NET che esegue varie operazioni su un DB Access .mdb in formato Access 2000, quindi Select, Insert, Update, Delete. Nessun problema, e ricordo fosse così anche per Win2000 SP4, perciò non vedo alcun bisogno di aggiornamenti MDAC. |
|
|
|
|
|
|
#30 |
|
Member
Iscritto dal: Nov 2009
Messaggi: 43
|
Tutto ciò è strano: Dal mio amico, che ha wind. vista e il framework 3.5 (Ne sono sicuro perchè programma anche lui programma con VB) non funziona, e qualsiasi comando SQL fa errore.
Ma se voglio dargli il runtime di access, devo dargli quello linkatomi da cionci per office 2007, o ce nè uno anche per access 2003 (se uso un database .mdb!)??? |
|
|
|
|
|
#31 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
1. Se puoi metti da parte Access 2007, usa Access 2000 o 2003 e crea un .mdb formato Access 2000. 2. Da VB NON usare il vecchio ADO ( ActiveX Data Access Components ), ma solo ADO.NET in tutte le transazioni, ossia System.Data.Oledb. 3. Ovviamente la connection string verso il file .mdb NON utilizzerà più "Provider=Microsoft.ACE.OLEDB.12.0", ma sarà quella solita, utilizzata in tutte le versioni di Access fino alla 2003, ad esempio : Codice:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=; |
|
|
|
|
|
|
#32 |
|
Member
Iscritto dal: Nov 2009
Messaggi: 43
|
Conoscete qualche programma per fare i pacchetti di installazione, che installerebbe i prerequisiti (access runtime e .net framework) automaticamente??? Il programma dovrebbe essere gratis
|
|
|
|
|
|
#33 |
|
Member
Iscritto dal: Jan 2008
Città: roma
Messaggi: 296
|
ma perchè usare access e costringere l'utente di appesantire il pc con un sacco di robaccia che magari alla fine gli serve solo x fa gira sto programma ?
|
|
|
|
|
|
#34 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Vabbeh, questo thread mi ha rotto.
Fermo restando che non vedo come Vista possa creare tutti sti problemi tra Access e VB.NET ( appena ho l'occasione provo anch'io... ), butto giù un esempio veloce di DB XML, quindi niente Access, niente runtime, niente di niente, solo VB.NET secco con il suo framework. > Dichiarazioni locali : Codice:
Private DS As New DataSet
Private percorsoXml As String = Application.StartupPath & "\"
Private nomeFileXml As String = "Vocabolario.xml"
Codice:
DS.Tables.Add("Vocabolario")
Dim Vocabolo As New System.Data.DataColumn
Vocabolo.AllowDBNull = False
Vocabolo.ColumnName = "Vocabolo"
Vocabolo.DataType = System.Type.GetType("System.String")
Vocabolo.Unique = True
DS.Tables(0).Columns.Add(Vocabolo)
Dim Traduzione As New System.Data.DataColumn
Traduzione.AllowDBNull = False
Traduzione.ColumnName = "Traduzione"
Traduzione.DataType = System.Type.GetType("System.String")
Traduzione.Unique = False
DS.Tables(0).Columns.Add(Traduzione)
If My.Computer.FileSystem.FileExists(percorsoXml & nomeFileXml) Then
DS.ReadXml(percorsoXml & nomeFileXml)
Else
DS.WriteXml(percorsoXml & nomeFileXml)
End If
DS.AcceptChanges()
Codice:
lst_xml.Items.Clear()
For Each DR As DataRow In DS.Tables(0).Select("Vocabolo='Auto'")
lst_xml.Items.Add(DR("Vocabolo") & " > " & DR("Traduzione"))
Next
Codice:
Dim indice As Integer = 1
Try
Dim DR As DataRow = DS.Tables(0).Rows(indice)
MsgBox(DR("Vocabolo") & " > " & DR("Traduzione"))
Catch ex As Exception
If TypeOf ex Is IndexOutOfRangeException Then MsgBox("Indice non valido.")
End Try
Codice:
Dim nuovaRiga As DataRow = DS.Tables(0).NewRow
nuovaRiga("Vocabolo") = "Auto"
nuovaRiga("Traduzione") = "Car"
Try
DS.Tables(0).Rows.Add(nuovaRiga)
Catch ex As Exception
If TypeOf ex Is ConstraintException Then MsgBox("Vocabolo già presente in elenco. Inserimento annullato.")
Exit Sub
End Try
If DS.HasChanges = True Then
DS.WriteXml(percorsoXml & nomeFileXml)
MsgBox("Xml aggiornato.")
End If
Codice:
For Each DR As DataRow In DS.Tables(0).Rows
If DR("Vocabolo") = "Auto" Then
Try
DR("Vocabolo") = "Automobile"
Catch ex As Exception
If TypeOf ex Is ConstraintException Then MsgBox("Vocabolo già presente in elenco. Aggiornamento annullato.")
End Try
Exit For
End If
Next
If DS.HasChanges = True Then
DS.WriteXml(percorsoXml & nomeFileXml)
MsgBox("Xml aggiornato.")
End If
Codice:
For Each DR As DataRow In DS.Tables(0).Rows
If DR("Vocabolo") = "Auto" Then
DS.Tables(0).Rows.Remove(DR)
Exit For
End If
Next
If DS.HasChanges = True Then
DS.WriteXml(percorsoXml & nomeFileXml)
MsgBox("Xml aggiornato.")
End If
|
|
|
|
|
|
#35 |
|
Member
Iscritto dal: Nov 2009
Messaggi: 43
|
Grazie a tutti voi per l'aiuto. Vladix, avevi ragione: Sono partito conl piede sbagliato. Adesso metto a posto il codice (O meglio riscrivo tutto da capo).
Non so proprio come ringraziarvi. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:50.




















