Bom dia amigos,
É o seguinte: No meu formulário pelo evento Form_Open, gostaria que o usuário modificasse a máscara de entrada de um determinado campo a seu gosto antes da inserção de registros, mas que padronizasse sua máscara na tabela também, porque se fecho o formulário a máscara criada desaparece. Não entendo o porquê da propriedade InputMask não funcionar no sentido de gravar também na tabela. Pesquisei aqui e em outros fóruns e descobri alguns códigos. O primeiro tentei e não funcionou, o segundo não sei como modificá-lo para me atender para o meu propósito. Alguém pode me ajudar?
(1)
Private Sub Form_Open(Cancel As Integer)
On Error Resume Next
If IsNull(ORDEMDESERVICO) Or IsNull(CODIGOCLIENTE) Then
Dim mascEntrada As String
Dim sMascara As String
mascEntrada = InputBox("Defina a máscara de entrada para este campo(ORDEM DE SERVIÇO).Ex.: 000.0000-0 : ", "Controle de OS")
ORDEMDESERVICO.InputMask = "" & mascEntrada & ""
ORDEMDESERVICO = Format(ORDEMDESERVICO, "" & mascEntrada & "")
sMascara = InputBox("Defina a máscara de entrada para este campo(CODIGOCLIENTE).Ex: 000000-0: ", "Controle de OS")
CODIGOCLIENTE.InputMask = "" & sMascara & ""
CODIGOCLIENTE = Format(CODIGOCLIENTE, "" & sMascara & "")
Else
ORDEMDESERVICO.InputMask = "" & mascEntrada & ""
ORDEMDESERVICO = Format(ORDEMDESERVICO, "" & mascEntrada & "")
CODIGOCLIENTE.InputMask = "" & sMascara & ""
CODIGOCLIENTE = Format(CODIGOCLIENTE, "" & sMascara & "")
End If
End Sub
(2)
Dim Entrada As String
Dim StrSQLCriaCampo As String
Dim db As DAO.Database
Entrada = InputBox("Insira o nome do Campo", "Aviso")
StrSQLCriaCampo = "ALTER TABLE TABELA ADD COLUMN [" & Entrada & "] DOUBLE;"
Set db = CurrentDb
db.Execute StrSQLCriaCampo
Dim tdef As DAO.TableDef
Dim fdef As DAO.Field
Dim pdef As DAO.Property
Set db = CurrentDb()
Set tdef = db.TableDefs("TABELA")
Set fdef = tdef.Fields(Entrada)
DoCmd.RunSQL "ALTER TABLE TABELA ALTER COLUMN [" & Entrada & "] DOUBLE"
Set pdef = fdef.CreateProperty("Format", dbText, "Fixed")
fdef.Properties.Append pdef
db.TableDefs("TABELA").Fields(Entrada).Properties("Format") = "Fixed"
db.Close
Set db = Nothing
End Sub
É o seguinte: No meu formulário pelo evento Form_Open, gostaria que o usuário modificasse a máscara de entrada de um determinado campo a seu gosto antes da inserção de registros, mas que padronizasse sua máscara na tabela também, porque se fecho o formulário a máscara criada desaparece. Não entendo o porquê da propriedade InputMask não funcionar no sentido de gravar também na tabela. Pesquisei aqui e em outros fóruns e descobri alguns códigos. O primeiro tentei e não funcionou, o segundo não sei como modificá-lo para me atender para o meu propósito. Alguém pode me ajudar?
(1)
Private Sub Form_Open(Cancel As Integer)
On Error Resume Next
If IsNull(ORDEMDESERVICO) Or IsNull(CODIGOCLIENTE) Then
Dim mascEntrada As String
Dim sMascara As String
mascEntrada = InputBox("Defina a máscara de entrada para este campo(ORDEM DE SERVIÇO).Ex.: 000.0000-0 : ", "Controle de OS")
ORDEMDESERVICO.InputMask = "" & mascEntrada & ""
ORDEMDESERVICO = Format(ORDEMDESERVICO, "" & mascEntrada & "")
sMascara = InputBox("Defina a máscara de entrada para este campo(CODIGOCLIENTE).Ex: 000000-0: ", "Controle de OS")
CODIGOCLIENTE.InputMask = "" & sMascara & ""
CODIGOCLIENTE = Format(CODIGOCLIENTE, "" & sMascara & "")
Else
ORDEMDESERVICO.InputMask = "" & mascEntrada & ""
ORDEMDESERVICO = Format(ORDEMDESERVICO, "" & mascEntrada & "")
CODIGOCLIENTE.InputMask = "" & sMascara & ""
CODIGOCLIENTE = Format(CODIGOCLIENTE, "" & sMascara & "")
End If
End Sub
(2)
Dim Entrada As String
Dim StrSQLCriaCampo As String
Dim db As DAO.Database
Entrada = InputBox("Insira o nome do Campo", "Aviso")
StrSQLCriaCampo = "ALTER TABLE TABELA ADD COLUMN [" & Entrada & "] DOUBLE;"
Set db = CurrentDb
db.Execute StrSQLCriaCampo
Dim tdef As DAO.TableDef
Dim fdef As DAO.Field
Dim pdef As DAO.Property
Set db = CurrentDb()
Set tdef = db.TableDefs("TABELA")
Set fdef = tdef.Fields(Entrada)
DoCmd.RunSQL "ALTER TABLE TABELA ALTER COLUMN [" & Entrada & "] DOUBLE"
Set pdef = fdef.CreateProperty("Format", dbText, "Fixed")
fdef.Properties.Append pdef
db.TableDefs("TABELA").Fields(Entrada).Properties("Format") = "Fixed"
db.Close
Set db = Nothing
End Sub