+ Rispondi al Thread
Pagina 1 di 4 123 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 39

Discussione: pulsante maschera

  1. #1
    undertaker non è in linea Scolaretto
    Post
    218

    pulsante maschera

    Buona sera,
    ho creato una masche "menu" dove ho messo un pulsante . Tramite questo pulsante vorrei aprire un'altra maschera per in serimento nuovo record ed ho fatto cosi : DoCmd.OpenForm "tabelladaaprire", , , , acFormAdd, quello che non riesco a fare e' leggere il record lottobreve e far in modo che quello nuovo deve assere +1 rispetto al precedente e al massimo di valore 100 per poi ricominciare da 1.
    ho fatto cosi nella maschera menu alla pressione del pulsante

    codice:
    Private Sub Comando2_Click()
    DoCmd.OpenForm "bovino adulto query", , , , acFormAdd
    
    Me!["lottobreve"] = ["lottobreve"] + 1
    If ["lottobreve"] = 100 Then ["lottobreve"] = 1
    End Sub
    ma non va....

  2. #2
    OsvaldoLaviosa non è in linea Topo di biblioteca
    Luogo
    Conversano
    Post
    2,582
    Intanto usa le sintassi corrette, ossia
    Me![lottobreve]
    sempre.
    Poi non so se la logica funziona!!!
    Ditemi i campi di tutte le vostre tabelle.

  3. #3
    L'avatar di muttley005
    muttley005 non è in linea Scribacchino
    Post
    1,579
    dato per scontato che il campo lottobreve non sia un autoincrementale
    quello che puoi fare è gestire nell'evento load della form la cosa
    e con una sintassi corretta, Me!["lottobreve"] non lo è

    e potresti usare la semplice formula
    codice:
    n=(n mod 100) +1

  4. #4
    undertaker non è in linea Scolaretto
    Post
    218
    ho risolto cosi...

    codice:
    Private Sub Form_Open(Cancel As Integer)
      [lottobreve].SetFocus
      Me![lottobreve].Text = [lottobreve] + 1
      If Me![lottobreve] = 101 Then [lottobreve] = 1
    End Sub
    Ultima modifica di AntonioG; 20-03-2017 21:10  Motivo: I tag CODE! Non dimenticarli ...

  5. #5
    L'avatar di muttley005
    muttley005 non è in linea Scribacchino
    Post
    1,579
    codice:
    .Text
    ?? sicuro?

  6. #6
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    14,875
    Quote Originariamente inviato da undertaker Visualizza il messaggio
    ho risolto cosi...

    codice:
    Private Sub Form_Open(Cancel As Integer)
      [lottobreve].SetFocus
      Me![lottobreve].Text = [lottobreve] + 1
      If Me![lottobreve] = 101 Then [lottobreve] = 1
    End Sub
    Quello che fai è tecnicamente errato.
    Quando si gestiscono NUOVI RECORDS... i valori da assegnare in modo AUTOMATIVO, devono essere gestiti con i DEFAULTVALUE e non come fai tu... oltretutto, se sei su NUOVO RECORD, come pensi possa essere VALORIZZATO quel controllo...?

    Devi attribuire alla proprietà DefaultValue una Funzione che recupera il Dato dalla TABELLA e non dalla maschera, solitamente si usa DlookUp(...)
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  7. #7
    undertaker non è in linea Scolaretto
    Post
    218
    quindi se non ho capito male all'evento oper form dovrei utilizzare prima dlookup per trovare l'ultimo dato del campo [lottobreve], poi con l'istruzione if then dovrei contare e aggiungere aggiungere 1 fino a 100 per poi ricomciare, giusto?
    Quello che non capisco e' la funzione DEFAULTVALUE, non l'ho mai utilizzata.

  8. #8
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    14,875
    Quote Originariamente inviato da undertaker Visualizza il messaggio
    quindi se non ho capito male all'evento oper form dovrei utilizzare prima dlookup per trovare l'ultimo dato del campo [lottobreve], poi con l'istruzione if then dovrei contare e aggiungere aggiungere 1 fino a 100 per poi ricomciare, giusto?
    Quello che non capisco e' la funzione DEFAULTVALUE, non l'ho mai utilizzata.
    Ora mi chiedo... se il Numero ricomincia da 1 ogni volta che arriva a 100, come fai a sapere qual'è il numero da INCREMENTARE...?
    Supponi di avere 101 elementi... ne avrai:
    100 con codice 1-100
    1 con codice 1

    Cosa prendi a riferimento per capire quale incrementare...? Il 100 oppure 1...?
    Nella tua testa diresti 1 ma Access è STUPIDO... per lui prendere 1 o 100 non ha una logica se non legata ad un CRITERIO.

    Questa LOGICA è fuori da ogni logica...!!!
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  9. #9
    undertaker non è in linea Scolaretto
    Post
    218
    quello che mi serve e' che ogni volta che inserisco un nuovo record , il campo [lottobreve] deve essere +1 rispetto al precedente fino ad arrivare a 100, una volta che ho inserito un nuovo record dove [lottobreve] = 100 il prossimo che inserisco e' uguale a 1. spero di essere stato chiaro, grazie della pazienza.

  10. #10
    L'avatar di willy55
    willy55 non è in linea Scribacchino
    Post
    569
    Non hai compreso il suggerimento che ti ha indicato Alex, considera ad esempio la sequenza:
    codice:
    1
    2
    ,,,,
    100
    1
    2
    3
    4
    Come fai a determinare l'ultimo (e quindi il nuovo numero di lottobreve, nell'ordinamento) visto che incrementi il valore alla apertura maschera?
    Considera che non può essere il numero più elevato, ma devi avere un criterio (ulteriore) che dia la sequenza in modo che possa essere determinato la progressività per arrivare al termine della serie (e quindi determinare il nuovo valore).
    Willy

+ Rispondi al Thread
Pagina 1 di 4 123 ... ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi