[AccessD] Form Validation

Stuart McLachlan stuart at lexacorp.com.pg
Sat Oct 29 18:28:49 CDT 2022


Doh!

> strFldVal = Me(strFld)

should, of course, be:

> strFldVal = Me(rst.FieldToScrutinize)

(that's what you get when you quickly edit test code to align with the OP)

On 30 Oct 2022 at 9:07, Stuart McLachlan wrote:

> First impression:
>  Colours are 4byte integers (LONGs) (with the top byte unused for RGB
>  colours)
> (And Project and Client keys as varchars() is a bit on the nose too :)
> )
> 
> That said - Eval doesn't recognise "me".
> You'll need to do something like:
> 
> 'Record in table:
> FieldToScrutinize "ExtraFld1"
> FunctiomToEval = "Len(<fldval>) > 0"
> 
> Then in your function 
> 'Create Eval string
> strFldVal = Me(strFld)
> strEval = Replace(rst.FunctionToEval, "<fldval>",
> rst.FieldToScrutinize) If Eval(strEval) ....
> 
> 
> 
> 
> 
> On 29 Oct 2022 at 16:48, Ryan W wrote:
> 
> > I thought I had emailed about this before but I cannot find it. 
> > Maybe it got lost somewhere along the way or I thought about
> > emailing and never did.
> > 
> > I've got a form we use to log in client data, there are some extra
> > fields that are NOT required by every client so I can't put backend
> > constraints on them.
> > 
> > I was wondering if I could write a table such as:
> > 
> > ClientID varchar(100)
> > Project varchar(100)
> > FieldToScrutinize varchar(100)
> > FunctionToEval varchar(255)
> > ForeColor varchar(50)
> > BackColor varchar(50)
> > 
> > 
> > So lets say we have ClientA, Project B, FieldToScrutinize is
> > "ExtraFld1"
> > 
> > FunctionToEval would be something like Len(me!extrafld1) = 0
> > 
> > So then in the form code we have something like
> > 
> > rst = currentdb.openrecordset("SELECT * FROM ValidationRules WHERE
> > ClientID = '" & me.ClientID & "'")
> > 
> > do until rst.eof
> >    if Eval(rst!FunctionToEval) = false then
> >   me(FieldToScrutinize).BackColor = rst!BackColor
> >   me(FieldToSTrutinize).ForeColor = rst!ForeColor
> >    end if
> > rst.MoveNext
> > loop
> > 
> > I guess my question is, will EVAL work in that manner?  That way all
> > my validation rules for these specific clients can be managed in a
> > table rather than adding code and having to distribute a new FE when
> > rules are modified? -- AccessD mailing list
> > AccessD at databaseadvisors.com
> > https://databaseadvisors.com/mailman/listinfo/accessd Website:
> > http://www.databaseadvisors.com
> > 
> 
> 
> -- 
> AccessD mailing list
> AccessD at databaseadvisors.com
> https://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
> 




More information about the AccessD mailing list