Discussione:
Aggiornamento dati da stored procedure
(troppo vecchio per rispondere)
BFS
2021-11-04 06:15:01 UTC
Permalink
Buonasera a tutti,
sono riuscita ad aggiungere dati in una sotto tabella attraverso una stored procedure e fin qui tutto bene.
Response = MsgBox("Vuoi aggiornare le Note e le Note interne?", Style, Title, Help, Ctxt)
If Response = vbYes Then ' L'utente sceglie il pulsante Sì.
MyString = "Sì"
cnn = "Provider=MSOLEDBSQL;Server=MioSERVER;Database=MioDB;UID=Utente;PWD=pippo;"
cnn.Open
cnn.Execute "exec CaricaRDO_Note '" & Me!ID_Fornitura & "'"
cnn.Close
' Esegue un'azione.
Else ' L'utente sceglie il pulsante No.
MyString = "No" ' Esegue un'azione.
End If
dove CaricaRDO_Note è
ALTER PROCEDURE [dbo].[CaricaRDO_Note]
@ID_Fornitura nvarchar(50)
AS
UPDATE [Ordine a fornitore] SET Note=dbo.[RichiestaOffFornitori].Note, Note1=dbo.[RichiestaOffFornitori].NoteInterne
FROM dbo.[RichiestaOffFornitori],dbo.[Ordine a fornitore]
WHERE dbo.[RichiestaOffFornitori].ID_RichiestaOfferta=[Ordine a fornitore].ID_RichiestaOfferta
Il tutto funziona, ma per vedere i campi Note aggiornati dalla stored procedure devo chiudere la maschera e riaprirla, non ho trovato il modo per rinfrescarla da VBA?!
Grazie per l'aiuto
se parliamo di una maschera associata dovrebbe bastarti il classico
me.requery


però mi sfugge l'utilità di creare una sp solo per aggiornare un campo
note, sempre che la maschera sia associata

BFS
BFS
2021-11-09 14:12:40 UTC
Permalink
BFS
Grazie per la risposta, e scusa il ritardo ma sto lavorando su più
progetti e questo è rimasto indietro.
Quello che sto facendo è l'inserimento delle righe di un ordine
(struttura classica tabella ordini con sottotabella dettaglio ordini)
da un campo della tabella ordini che è ID Richiesta di offerta (RDO).
Quindi carico nella sottotabella dettaglio ordini le righe della
sottotabella dettaglio RDO che l'utente ha inserito nella maschera
ordini.
La struttura delle richieste di offerta è uguale alla struttura degli
ordini (tabella principale RDO + sottotabella dettaglio RDO)
Ora nella maschera RDO ho due dei campi NOTE e NOTE INTERNE che ho
l'esigenza di riportare nei corrispondenti campi della tabella Ordini.
Il tuo suggerimento me.requery funziona però mi sposta al primo
record; mi spiego meglio se sono sull'ordine 32 e carico la RDO numero
3 funziona tutto ma mi sposta sull'ordine 1.
Poi se mi sposto e torno sul 32 ci sono sia le righe nella tabella
dettaglio ordini sia le note nella tabella ordini giuste.
se la riga la aggiungi sempre in coda e non tra altri due record ti
basta mettere dopo un requery il movelast
Me.Requery
DoCmd.GoToRecord acDataForm, "TuaForm", acLast
BFS
oppure ti memorizzi su che record ti trovi quando fai l'inserimento
fai il requery e ti ci riposizioni

Dim n As Integer
n = Me.CurrentRecord
Me.Requery
DoCmd.GoToRecord acDataForm, "TuaForm", acGoTo, n

BFS

Continua a leggere su narkive:
Loading...