View Full Version : vb6 e access
lo_spettro
24-02-2004, 10:29
Salve ragazzi. Torno a rompervi con le mie richieste niubbe :p
Allora, in access io ho fatto un semplice db che dovrebbe gestire un piccolo magazzino. Ho creato queste tabelle:
Prodotti composta da:
IDProdotto - chiave primaria e contatore
Codice - testo
Descrizione - testo
Data di carico - data
Fornitore --> questo dato me lo prende dalla tabella fornitori
Unità di Misura --> questo dato me lo prende dalla tabella UM
Quantità di carico - numerico
Esistenza - numerico
Ora, il primo problema che ho è che non so come connetterlo a visual basic, risolto questo poi, magari mi servirebbe una mano per gestire gli scarichi.
P.S.: Avevo provato ad utilizzare mysql ma è ancora troppo difficile per me.
Grazie a tutti!
Prova a vedere se capisci un po' di + con questo esempio che avevo fatto per un altra persona :)
lo_spettro
24-02-2004, 11:01
Intanto ti ringrazio tantissimo!
Ma come devo aprire il .rar? è un file compresso? perchè winzip non me lo apre.
lo_spettro
24-02-2004, 11:13
ok! ci voleva winrar. Ora provo.
lo_spettro
24-02-2004, 11:31
Non ci ho capito niente :cry:
lo_spettro
24-02-2004, 11:47
provo ad allegarti il progetto che sto facendo per la ditta di mio papà:
maxithron
24-02-2004, 12:01
Ho scaricato il tuo progetto e, sinceramente, non mi è molto chiaro quello che vuoi fare.
Partiamo dal form principale:
1) Se ho ben capito, dai pulsanti che hai messo, vorresti che quando si clicca ad esempio su 'Cantieri', tu possa avere la possibilità di inserirne di nuovi, cercarli o eliminarli giusto?
2) Ho visto il form derivante dal carico magazzino ed è diviso in sottosezioni; devono essere indipendenti oppure un'unica sezione di carico?
3) Lo scarico non prevede niente, come vorresti gestirlo?
Magari se ci chiarisci un pò meglio questi punti, riusciamo a darti qualche aiuto in +.
lo_spettro
24-02-2004, 12:10
Originariamente inviato da maxithron
Ho scaricato il tuo progetto e, sinceramente, non mi è molto chiaro quello che vuoi fare.
Partiamo dal form principale:
1) Se ho ben capito, dai pulsanti che hai messo, vorresti che quando si clicca ad esempio su 'Cantieri', tu possa avere la possibilità di inserirne di nuovi, cercarli o eliminarli giusto?
Esatto!
2) Ho visto il form derivante dal carico magazzino ed è diviso in sottosezioni; devono essere indipendenti oppure un'unica sezione di carico?
Si, effettivamente devo creare delle sezioni
3) Lo scarico non prevede niente, come vorresti gestirlo?
Magari se ci chiarisci un pò meglio questi punti, riusciamo a darti qualche aiuto in +.
Adesso ti allego anche il form dello scarico così riesco a spiegarti meglio quello che vorrei fare e cioè, che se vado nella sezione "detergenti", posso scegliere il prodotto ed il cantiere al quale è stato dato.
Ola maxithron, è un po' che nn ci si sente... anche perchè dalle mia parti causa la nevicata mostruosa dell'alatra settimana siamo rimasti io ed altre 15000 persone denla corrente per 5 giorni!!
Cmq il mio esempietto era un esempio di collegmaneto VB + Access senza l'ausiglio di controlli supplementari (vedi il Data)
Adesso se accetti un consiglio..conviene che tuilizzi le query per lavorare bene con i database e farlo con il controllo data nn è la cosa + bella da fare.
Era per questo che ti ho mandato l'esempio, per farti capire come si collega VB con Access senza il controllo Data, così è molto + gestibile.
lo_spettro
24-02-2004, 14:02
Originariamente inviato da matpez
.
[quote]
Cmq il mio esempietto era un esempio di collegmaneto VB + Access senza l'ausiglio di controlli supplementari (vedi il Data)
Adesso se accetti un consiglio..conviene che tuilizzi le query per lavorare bene con i database e farlo con il controllo data nn è la cosa + bella da fare.
Era per questo che ti ho mandato l'esempio, per farti capire come si collega VB con Access senza il controllo Data, così è molto + gestibile.
Ed è questo che non ho capito:(
Ho visto nel modulo che mi hai dato, e volevo chiederti se sono quelle poche righe che mi connettono il database. Poi, volevo chiederti un'altra cosa,perchè non è bella cosa lavorare con il controllo data?
P.S.: perdona la mia ignoranza in materia ma, mentre con il C sto facendo progressi ogni giorno, visual basic mi è un pò difficile da capire.grazie.
lo_spettro
24-02-2004, 14:09
Poi,seguendo il tuo esempio se eseguo l'applicazione mi dà nel modulo questo errore relativo alla riga:
Public cn As ADODB.Connection
dicendomi:
Errore di compilazione:
tipo definito dall'utente non definito
lo_spettro
24-02-2004, 14:16
forse ci sono,nel senso che vedo che credo che devo inserire nel progetto un riferimento o un componente dato che ho solo adodc e non adodb. Nei riferimenti non vedo nulla, nei componenti vedo solo Microsoft ADO Data Control 6.0
Ho provato ad inserirlo ma mi da sempre lo stesso errore :muro:
Nelle reference del progetto devi caricare la voce Microsoft ActiveX Data Objects 2.7 (almeno io ho la 2.7, ma ve bene anche un altra versione)!
Così carichi la libreria che gestisce appunto ADODB che è il collegmamento e le operazioni su database! :)
Originariamente inviato da lo_spettro
forse ci sono,nel senso che vedo che credo che devo inserire nel progetto un riferimento o un componente dato che ho solo adodc e non adodb. Nei riferimenti non vedo nulla, nei componenti vedo solo Microsoft ADO Data Control 6.0
Ho provato ad inserirlo ma mi da sempre lo stesso errore :muro:
é nei riferimenti infatti non nei componenti.... i riferimenti sono DLL, i componenti sono OCX :p
lo_spettro
24-02-2004, 14:23
Originariamente inviato da matpez
é nei riferimenti infatti non nei componenti.... i riferimenti sono DLL, i componenti sono OCX :p
Ma io adesso ho messo gli stessi riferimenti che stanno nell'esempio che mi hai passato! ma mi da sempre lo stesso errore :cry:
Prova ad andare sul sito della M$ e scaricarti MDAC 2.7 ;)
lo_spettro
24-02-2004, 14:46
Originariamente inviato da matpez
Prova ad andare sul sito della M$ e scaricarti MDAC 2.7 ;)
Lo sto scaricando ma c'è una cosa che non capisco e cioè perchè con il tuo progetto funziona e con il mio no?
Nel senso che se mi mancasse qualcosa, anche dal tuo progetto mi dovrebbe dare lo stesso errore oppure sbaglio?
Ad ogni modo questo è il codice che ho copiato nel modulo:
Option Explicit
Public cn As ADODB.COnnection
Public rs As ADODB. Recordset
Public sSql As String
Public lVetID() As Long
lo_spettro
24-02-2004, 14:49
Scusami! Oltre ad essere ignorante non so nemmeno leggere!!
Inserivo nei riferimenti: Microsoft ADO 2.7 library for DLL & Security
anzichè: Microsoft ActiveX Data Object 2.7 Library
bene:p e adesso? :cry: :muro:
lo_spettro
24-02-2004, 14:57
OK! ora basta chiedere! Mi ci sconquasso un pò le meningi e poi stasera, se sono ancora ad un punto morto vi riposto!
Grazie sempre a tutti voi!!
lo_spettro
26-02-2004, 00:23
:cry: :cry: aiuto! sono completamente fermo!
Non riesco a fare nemmeno un piccolo passo! :muro:
Originariamente inviato da lo_spettro
:cry: :cry: aiuto! sono completamente fermo!
Non riesco a fare nemmeno un piccolo passo! :muro:
Dimmi cosa nn riesci a fare per bene?!?? :)
lo_spettro
27-02-2004, 17:55
Originariamente inviato da matpez
Dimmi cosa nn riesci a fare per bene?!?? :)
Ho capito come si fa la connessione al database ma non ho capito come aggiungere ed eliminare record.Per esempio,volevo creare il form dove mettere gli articoli da caricare ma non ho capito come fare per aggiungere nuovi record da vb. :muro:
Sono mortificato ma anche su internet a riguardo ci sono sicuramente molte guide,ma sono tutte spezzettate e non ci capisco più niente:cry:
Studiati bene la guida di SQL, solo così si possono mettere, togliere, richiamare e modificare record!
ti va?
lo_spettro
09-03-2004, 13:19
Allora Matpez, sto riprendendo il codice che mi avevi allegato ma ho un piccolo problema relativo al form dove c'è il controllo per l'autocomposizione:
Private Sub AutoComposizione(ByRef cmbAux As ComboBox, ByVal sCampo As String)
If cmbAux <> "" And bRidondanza = False Then
sSql = ""
sSql = sSql & "SELECT " & sCampo & vbCrLf
sSql = sSql & "FROM Cantieri" & vbCrLf
sSql = sSql & "WHERE " & sCampo & " like '" & cmbAux & "%'" & vbCrLf
sSql = sSql & "GROUP BY " & sCampo & vbCrLf
sSql = sSql & "ORDER BY " & sCampo & vbCrLf
Set rs = cn.Execute(sSql)
If rs.BOF = False And rs.EOF = False Then
bRidondanza = True
cmbAux.Tag = Len(cmbAux)
cmbAux = cmbAux & Mid$(rs(sCampo), Len(cmbAux) + 1)
cmbAux.SelStart = Val(cmbAux.Tag)
cmbAux.SelLength = Len(cmbAux)
cmbAux.Tag = ""
cmbAux.AddItem ""
End If
While Not (rs.EOF)
cmbAux.AddItem rs(sCampo)
rs.MoveNext
Wend
rs.Close
bRidondanza = False
End If
End Sub
Quando eseguo l'applicazione mi evidenzia la riga che ho messo in neretto appena digito qualcosa nella combo box dicendomi:
Errore di Run-Time91
Variabile oggetto o variabile del blocco width non impostata
lo_spettro
09-03-2004, 14:38
ma perchè diavolo ogni volta che deve eseguire:
Set rs = cn.Execute(sSql)
Mi da quell'errore?
:muro:
lo_spettro
09-03-2004, 14:42
Ho Trovato!!! Ho Trovato!!!!
Il problema era che io caricavo il db così:
Dim db as .....
Dim rs as ....
INVECE DI:
Set cn = New....
Set rs = New....
Ah dimenticavo, dopo la riga Set rs = cn.Execute(sSql) mettici questo pezzo di codice, serve per pulire la combo solo delle parole messe nella lista, se utilizzi il metodo clear alora lui ti pulisce anche quella che stavi scrivendo :)
'svuoto tutta la combo
'NB: non utilizzo il metodo clear perchè svuota anche il campo testo
While cboAux.ListCount > 0
cboAux.RemoveItem cboAux.ListCount - 1
Wend
lo_spettro
12-03-2004, 10:42
potresti farmi un esempio di come funziona il metodo per aggiungere un record?
ad esempio, sul mio form ho il combo dei fornitori ed un pulsante di comando per aggiungere un record. Che evento ci deve andare nel bottone?
E poi un'altra cosuccia, per fare in modo che il combo venga popolato dall'elenco dei fornitori appena si apre il form, come dovrei procedere?
grazie.
lo_spettro
12-03-2004, 12:18
Allora, la popolazione della combo l'ho risolta.
Mi resta da fare quest'operazione:
ho la combo ed una casella di testo:
se inserisco un fornitore nella casella di testo, non ho capito come aggiungerlo al database e a farlo poi uscire nella lista dei fornitori nella combo.
il codice è questo:
Private Sub cmdAddNew_Click()
Dim bError As Boolean
If txtFornitore = "" Then bError = True
If bError = True Then
Call MsgBox("Inserire il fornitore!", vbCritical)
End If
sSql = ""
sSql = sSql & "SELECT Fornitore" & vbCrLf
sSql = sSql & "FROM Fornitori" & vbCrLf
Set rs = cn.Execute(sSql)
txtFornitore = rs("Fornitore")
sSql = ""
sSql = sSql & "INSERT INTO Fornitori(Fornitore)" & vbCrLf
sSql = sSql & "VALUES(' " & txtFornitore & " ')" & vbCrLf
Set rs = cn.Execute(sSql)
End Sub
e la tabella fornitori in access è composta da:
IDFornitore - Contatore
Fornitore - Testo
Con questo codice,mi succede che:
se metto un nuovo fornitore nella casella di testo e clikko su aggiungi,nella casella di testo mi mette in automatico l'ultimo fornitore....mi spiego meglio;
Diciamo che ho tre fornitori, ad esempio pippo poppi e pappa
se aggiungo puppa,nella casella di testo mi compare pappa e me lo duplica nella combo... :what:
perchè??? :muro:
lo_spettro
12-03-2004, 12:26
ok, ho risolto anche l'aggiunta del fornitore, non dovevo aggiungere questa riga:
txtFornitore = rs("Fornitore")
lo_spettro
12-03-2004, 16:49
adesso sono di nuovo fermo!! :muro:
per qualcuno che abbia voglia di aiutarmi allego il progettino.
In particolare ho questi problemi:
Nel form del carico detergenti riesco ad aggiungere i detergenti ma fatto questo poi, per vedere anche l'ultimo detergente caricato, devo uscire dal form e rientrarci.
Vorrei fare in modo che se dalla combobox relativa al detergente, ne scelgo uno,mi si popolino le text box.
Infine,non ho capito bene come organizzare la quantità da caricare.
Per favore,datemi una mano!!
Originariamente inviato da lo_spettro
Nel form del carico detergenti riesco ad aggiungere i detergenti ma fatto questo poi, per vedere anche l'ultimo detergente caricato, devo uscire dal form e rientrarci.
Devi creare una funzione che quando inserisci vada a ricercare il massimo indice del detergente e poi dopo con quell'ID fai una ricerca e riempi tutti i campi!
Originariamente inviato da lo_spettro
Vorrei fare in modo che se dalla combobox relativa al detergente, ne scelgo uno,mi si popolino le text box.
Basta che carichi il detergente nella lista e associ l'ItemData all'indice del detergente.
Quando nella como vi è l'envento change allora tu prendi l'ItemData di quell'elemento, ci fai un query di ricerca e riempi tutti i campi!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.