|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 1999
Messaggi: 458
|
mi serve un aiuto in access ( please)
Come si fà ad accodare un record ad una tabella per un numero di volte pari al valore di un campo.
ESEMPIO: Se un tabella creata per registrare delle prenotazioni e inserisco i dati delle persona e il numero di giorni. Vorrei accodare ad un'altra tabella tanti record uguali a quello di prima per il numero di volte uguale ai giorni. Tempo fà lo facevo con db3plus e mi veniva bene ma con access non so da dove cominciare. grazie mille
__________________
A7v266-e XP2200 ddr 512 Kingston Ibm 80,Matrox g550,sblive 5.1, dc10+ Case Super micro p4 ali.300 Winxp pro cd-rom + master |
|
|
|
|
|
#2 |
|
Junior Member
Iscritto dal: May 2003
Città: Napoli
Messaggi: 16
|
la cosa più semplice penso che sia utilizzare un'applicazione che faccia accesso ai database di access ed all'interno quindi inserire codice SQL che faccia un'insert sulla seconda tabella in base al valore della prima!
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Feb 2002
Città: Portici
Messaggi: 92
|
Mi dispiace, ma credo che non si possa fare una cosa del genere da Access.
Devi crearti un'applicazione che ti faccia da DBMS e gestire da codice le varie interazioni tra le tabelle del tuo Data Base. Puoi usare ambienti di sviluppo tipo C++ Builder, Java, Visual Basic etc... Ti crei prima il tuo Data Base con Access e poi lo gestisci con l'applicazione che ti sei realizzato. Spero di esserti stato utile. ciao |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Feb 2002
Città: Portici
Messaggi: 92
|
Mi dispiace, ma credo che non si possa fare una cosa del genere da Access.
Devi crearti un'applicazione che ti faccia da DBMS e gestire da codice le varie interazioni tra le tabelle del tuo Data Base. Puoi usare ambienti di sviluppo tipo C++ Builder, Java, Visual Basic etc... Ti crei prima il tuo Data Base con Access e poi lo gestisci con l'applicazione che ti sei realizzato. Spero di esserti stato utile. ciao |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Feb 2001
Città: Nordest
Messaggi: 217
|
Re: mi serve un aiuto in access ( please)
Quote:
In questo esempio ho usato la libreria Microsoft DAO (in alternativa puoi usare ADO) da caricare attraverso il menu Strumenti/Riferimenti: Codice:
Public Sub AddRecords(id As Long)
'id è la chiave primaria di Tabella1
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim i As Integer
'crea recordset su Tabella1
Set rs1 = CurrentDb.OpenRecordset("Tabella1", dbOpenDynaset)
'cerca il record in Tabella1
rs1.FindFirst "ID = " & CStr(id)
'se trova il record...
If Not rs1.NoMatch Then
'crea recordset su Tabella2
Set rs2 = CurrentDb.OpenRecordset("Tabella2", dbOpenDynaset)
'ciclo sul totale di giorni
'per ogni giorno aggiunge un record alla Tabella2
For i = 1 To rs1("NumeroGiorni")
'nuovo record
rs2.AddNew
'elenco di campi da copiare o da impostare
rs2("NomeCampo1") = rs1("NomeCampoA")
rs2("NomeCampo2") = rs1("NomeCampoB")
rs2("NomeCampo3") = i
'etc
'scrive record
rs2.Update
Next
MsgBox "Records creati!"
'... altrimenti...
Else
MsgBox "Record origine non trovato"
End If
'chiude gli oggetti
rs1.Close
rs2.Close
Set rs1 = Nothing
Set rs2 = Nothing
End Sub
Nella tua maschera dovrai inserire un pulsante per la creazione dei record nella Tabella2, collegato ad un evento anch'esso scritto in VBA: Codice:
Private Sub Comando6_Click()
Call AddRecords(ID.Value)
End Sub
__________________
Chi non cerca trova. |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 1999
Messaggi: 458
|
Per tas
Ti ringrazio moltissimo per l'aiuto e vedo che la procedura somiglia vagamente a quella che facevo in db3plus.
Se posso abusare della tua cortesia ti spiego in dettaglio cosa devo fare. TABELLA PRENOTAZIONI: DATA: 01/07/2003 CLIENTE: ROSSI GIORNI : 4 CAMERA: 10 PREZZO: 100.00 Io dovrei in questo caso creare 4 record nella tabella STORICO quanti sono i giorni con la data che va avanti fino ad arrivare al 05/07/2003. GRAZIE UN MILIONE DI €
__________________
A7v266-e XP2200 ddr 512 Kingston Ibm 80,Matrox g550,sblive 5.1, dc10+ Case Super micro p4 ali.300 Winxp pro cd-rom + master |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Feb 2001
Città: Nordest
Messaggi: 217
|
Re: Per tas
Se avessi l'elenco esatto dei campi delle tue tabelle potrei essere più preciso. Ho supposto queste tabelle:
Prenotazioni: ID, Data, Cliente, Giorni, Camera, Prezzo Storico: ID, Data, Cliente, Camera, Prezzo In entrambe le tabelle, ID è un contatore e chiave primaria. Codice:
Public Sub AddRecords(id As Long)
'id è la chiave primaria di Prenotazioni
'questa sub richiede DAO
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim i As Integer
'crea recordset su Prenotazioni
Set rs1 = CurrentDb.OpenRecordset("Prenotazioni", dbOpenDynaset)
'cerca il record in Prenotazioni
rs1.FindFirst "ID = " & CStr(id)
'se trova il record...
If Not rs1.NoMatch Then
'crea recordset su Storico
Set rs2 = CurrentDb.OpenRecordset("Storico", dbOpenDynaset)
'ciclo sul totale di giorni
'per ogni giorno aggiunge un record alla Storico
For i = 1 To rs1("Giorni")
'nuovo record
rs2.AddNew
'elenco di campi da copiare o da impostare
rs2("Data") = rs1("Data") + i
rs2("Cliente") = rs1("Cliente")
rs2("Camera") = rs1("Camera")
rs2("Prezzo") = rs1("Prezzo")
'scrive record
rs2.Update
Next
MsgBox "Records creati!"
'... altrimenti...
Else
MsgBox "Record origine non trovato"
End If
'chiude gli oggetti
rs1.Close
rs2.Close
Set rs1 = Nothing
Set rs2 = Nothing
End Sub
__________________
Chi non cerca trova. |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Nov 1999
Messaggi: 458
|
Sei grande.
ho provato ed ho risolto. Grazie davvero molto Ciao
__________________
A7v266-e XP2200 ddr 512 Kingston Ibm 80,Matrox g550,sblive 5.1, dc10+ Case Super micro p4 ali.300 Winxp pro cd-rom + master |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:19.



















