PDA

Visualizza versione completa : Errore Visual Basic Su Database


Cucciolo
14-06-2003, 21.25.36
Ciao Amici!!
ho un pproblemino... anzi un problemone..
Ho Access 2000 e Visual Basic 6.0

Creo un database con access 2000, lo collego al progetto fatto in Visual Basic ma mi da un'errore...

Qualcuno sa come posso risolverlo?

LoryOne
15-06-2003, 11.41.40
Puoi provare ad esporatare il DB in fomato Access 97 e vedere se da lo stess errore.

Ciao :)

Cucciolo
15-06-2003, 17.34.05
Ho provato ma nn c'e' l'opzione access97, c'e' solo l'opzione "Database microsoft Access".

Ho provato anche a creare un database vuoto da Visual Basic con l'utility Visual Data Manager per poi salvarlo con una versione precedente e poi aprirlo e modificarlo con access ma dice...

Scegliendo di non convewrtirlo, non lo apre.

LoryOne
16-06-2003, 09.00.01
Forse mi sono spigato male.
Intendevo dire che il database che hai creato con Access 2000 lo devi esportare "nella precedente versione di Access".

Poi aprire il database esportato ed usare quello.
Se usi i DAO assicurati di utilizzare i 3.5

Mi pare che i DB creati con Access 2000 si possano gestire con i DAO 3.6.

Ciao :)

Krakatau
16-06-2003, 12.34.39
Perchè imvece non usi ADO...

ti connetti come ad un DB relazionale...

usi l'SQL per le query e le modifiche...

non hai problemi di sorta con la versione (Access) del .mDB

MinM
16-06-2003, 14.37.47
Ciao,

in tools ---> Database Utilities --> Convert Database

et voilat :)

Cucciolo
16-06-2003, 20.47.04
Grazie Amici!!!
ci sono riuscito!!

Ma ora c'e' un'altro problemino...
non riesco ad inserire i campi nel database, o meglio, ci riesco solo quando la tabella nel database non e' vuota. Inolte ogni tanto si ferma all'istruzione Data1.Recordset.AddNew e mi da errore...
E' giusto cosi?

Private Sub Command1_Click()
Data1.Recordset.AddNew
Data1.Recordset.Fields("Codice") = Text1.Text
Data1.Recordset.Update
Data1.Recordset.MoveNext
End Sub
-----------------------------------------------------------

e poi volevo chiedervi come si inserisci un nuovo record in un database all'inizio e alla fine

grazie!

LoryOne
17-06-2003, 09.50.11
Quando utilizzi i controlli data di vincolo è più conveniente che tu associ il contenuto di una casella di testo ad una colonna del database.

In questo modo il codice Data1.Recordset.Fields("Codice") = Text1.Text diventa superfluo.

Devi impostare il DataSource di Text1 su Data1 ed il DataField sulla colonna Codice.

I controlli data di vincolo possono essere una comodità quando è necessario sfogliare il database ma risultano estremamente ostici da gestire.
Per carpirne i segreti è necessaria una pratica notevole perchè ricchi di "bachi" concettuali.
Riuscire a capire perchè ti da un errore è un'impresa ardua perchè i parametri in gioco sono molteplici e legati alla concezione del software ed alle opzioni impostate in fase di progettazione.

Sono due i consigli che ti do:

1) Utilizza i controlli data di vincolo solo per mostrare il contenuto di un database, mentre per la modifica, la cancellazione e l' inserimento di nuovi record utilizza il linguaggio SQL.
Il tutto almeno fino a quando non avrai imparato bene "i vincoli" concettuali legati al controllo.

2) Utilizza l'autocomposizione VB Data From Wizard che trovi nel menu Aggiunte-->Gestione Aggiunte
Costruisci il progetto del software sulla base della struttura impostata dall'autocomposizione

Ciao :)

Cucciolo
17-06-2003, 15.57.13
Ok Grazie,
ci sono riuscito con dacontrol, pero' quando mando in esecuzione il programma associa ai text, i valori del primo record.
Non si puo' fare in modo che quando il programma va in esecuzione vadi direttamente alla fine su un record vuoto?

Private Sub Form_Load()
Data1.Recordset.MoveLast 'Si ferma qui
data1.recorset.movenext
data1.recorset.addnew
End Sub

facendo cosi non funziona perchè esce un errore:
-------------------------------------------
errore di run-time 91

variabile o variabile del blocco with non impostata

<Fine> <Debug>
-------------------------------------------------

LoryOne
17-06-2003, 16.05.52
Approfondisci le conoscenze sugli eventi reposition e validate.

Non serve utilizzare un movelast per eseguire un addnew
Il movelast va dopo l'update.

Ciao :)

Cucciolo
17-06-2003, 22.02.38
faro' il possibile...

l'errore era causato perche prima bosogna mettergli l'istruzione
Data1.refresh

grazie x il ostro aiuto!