473,322 Members | 1,781 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,322 software developers and data experts.

Form Before Update or Control OnClick

I have probably a very simple query but cannot find the answer on google anywhere. Does the before update of a form fire before or after the OnClick event of a button? It makes sense to me that it would as it should update the record before navigation away which the button is being used for?
Dec 1 '14 #1
22 6281
jforbes
1,107 Expert 1GB
The only time that I could think of that both of these events would be called by a single user action would be by clicking on a button placed on a Continuous Form where the Record has been edited and the Button that is clicked is located on another Record. I believe in this case, the BeforeUpdate for the Form will be called before the OnClick for the Button because the Focus would need to be set to the Button, which is on a different Record, so the current changes would need to be saved before moving the other Record.

This is different than standard Windows Bubbling Event programming where the button click event would fire on click, if it's not handled then the Form would receive the click event, then Access would get it, then Windows. (Tunneling Events are the exact opposite where Windows gets the Event first and the Button last)

If you have a different scenario in mind, please let us know.
Dec 1 '14 #2
I have a data entry form which uses the before update to ensure the data entered into the record will be valid. On the form, I also have some navigation buttons, a return to main switchboard button and an add record button.

Essentially, I don't want the data to be autosaved into the table unless the add record button is pressed or if a navigation button is pressed when the user is prompted that the record has not yet been added.

So I'm trying to work out a way where the validation rules will be implemented before navigating away from the record so I was hoping the before update event would take place then the on click event.
Dec 1 '14 #3
jforbes
1,107 Expert 1GB
Yep, that is the best use of the form BeforeUpdate event. When you are in the BeforeUpdate event and the data fails validation, set Cancel to True.
Expand|Select|Wrap|Line Numbers
  1. Cancel = True
Another way to validate your data is on the Table level. Table Validation isn't as flexible and can be quite frustrating at times.
A third option is to create an Unbound Form and insert records after they are validated. This would allow you to tightly control what gets entered, with the caveat of working best only with Inserts.
Dec 1 '14 #4
I previously had table validation but it didn't work as I needed to allow 1 of 2 fields to be populated for a record to be saved.

Currently the navigation away from an "incomplete" record works fine but the problem is when the user creates a partial record then clicks on my main menu button. I need the message box prompt to come up before navigating away from the form. My code for the Before Update event is below, where validForm is a function I'm using to check whether the validation rules have been fulfilled:

Expand|Select|Wrap|Line Numbers
  1. Private Sub Form_BeforeUpdate(Cancel As Integer)
  2. Dim strMsg As String
  3. Dim strMsg2 As String
  4. Dim intResponse As Integer
  5. Dim intResponse2 As Integer
  6.  
  7. strMsg = "You have not saved this Record. Do you wish to Save this Record " & _
  8.          "with those changes?" & vbCrLf & vbCrLf & "Click Yes to Save changes, No to Discard" & _
  9.          " or Cancel to Return to the Record?"
  10. strMsg2 = "Record is incomplete, continue without saving?"
  11.  
  12. intResponse = MsgBox(strMsg, vbQuestion + vbYesNoCancel, "Prompt to Save Record")
  13.  
  14. If intResponse = vbYes Then
  15.     validForm
  16.     If validForm = True Then
  17.         Exit Sub
  18.     ElseIf validForm = False Then
  19.         intResponse2 = MsgBox(strMsg2, vbYesNo, "Incomplete Record")
  20.         If intResponse2 = vbYes Then
  21.             DoCmd.RunCommand acCmdUndo
  22.             Exit Sub
  23.         ElseIf intResponse2 = vbNo Then
  24.             Cancel = True
  25.         End If
  26.     End If
  27. ElseIf intResponse = vbNo Then
  28.     DoCmd.RunCommand acCmdUndo
  29. ElseIf intResponse = vbCancel Then
  30.     Cancel = True
  31. End If
  32. End Sub
  33.  
And the Main Menu button is:
Expand|Select|Wrap|Line Numbers
  1. Private Sub cmdReturnToMainEdit_Click()
  2. DoCmd.OpenForm "frmSwitchboardAdmin"
  3. DoCmd.Close acForm, "frmAdd"
  4. End Sub
  5.  
So currently when the button is clicked, the switchboard will open, the form will close and then the message box pops up which isn't useful as it won't have any effect.
Dec 2 '14 #5
jforbes
1,107 Expert 1GB
I think I see what you are trying to do.

You'll not want to ask your user if they want to save their record in the BeforUpdate Event. This Event is fired by Access when it determines that it's time to save the record. This could be by record navigation, or someone clicking the save button. So at this point, the record is already half way on it's way to being saved. So I would move the Save Prompt into a function.

The Form_BeforeUpdate Event and the cmdReturnToMainEdit_Click Event are mutually exclusive; one won't fire the other, unless you code it to.

Before you open your Switchboard and close the Form, is when you'll want to prompt to save. That way when the Save is executed, the validation in the BeforeUpdate event will be triggered. Here is a generic function to Prompt the user if they would like to save their changes. You can spruce it up with some of the code you have already written (there maybe a better way of doing this, it is just something I had laying around):
Expand|Select|Wrap|Line Numbers
  1. Private Function promptSave() As Boolean
  2. On Error Resume Next
  3.     If Me.Dirty Then
  4.         If MsgBox("Would you like to save?", vbQuestion + vbYesNo) = vbYes Then
  5.             DoCmd.RunCommand acCmdSaveRecord
  6.         Else
  7.             DoCmd.RunCommand acCmdUndo
  8.         End If
  9.     End If
  10.     promptSave = (Not Me.Dirty)
  11. End Function
Having this function, I would modify cmdReturnToMainEdit like this:
Expand|Select|Wrap|Line Numbers
  1. Private Sub cmdReturnToMainEdit_Click()
  2.     If promptSave() Then
  3.         DoCmd.OpenForm "frmSwitchboardAdmin"
  4.         DoCmd.Close acForm, "frmAdd"
  5.     End If
  6. End Sub
You could then put promptSave() in the OnClose event of the Form just for fun.
Expand|Select|Wrap|Line Numbers
  1. Private Sub Form_Close()
  2.     Call promptSave
  3. End Sub
Dec 2 '14 #6
This works perfectly thank you. The only problem now is how do I get my navigation buttons to run the validation rules that I put in place as I have taken them out of the Form Before Update Event. I have tried saving the code I had in the Before Update event into a public function called validateForm then using this code for one of the buttons:

Expand|Select|Wrap|Line Numbers
  1. Private Sub Command34_Click()
  2. On Error GoTo Err_Command34_Click
  3.  
  4.     validateForm
  5.     DoCmd.GoToRecord , , acNext
  6.  
  7. Exit_Command34_Click:
  8.     Exit Sub
  9.  
  10. Err_Command34_Click:
  11.     Resume Exit_Command34_Click
  12.  
  13. End Sub
  14.  
it returns an error saying "Compile error: Argument not optional".
Dec 2 '14 #7
jforbes
1,107 Expert 1GB
When calling a Function you'll need to either put the return value into a variable, use it in an Expression, or use the Call Statement:
Expand|Select|Wrap|Line Numbers
  1. Dim bReturn As Boolean
  2. bReturn = validateForm()
  3.  
  4. if validateForm() then
  5. endif
  6.  
  7. Call validateForm
Also, I would move the validation call into BeforeUpdate Event and if the validation fails, set Cancel=True. That way no matter how the record is being saved, it gets validated.

Then you can change your navigation buttons to:
Expand|Select|Wrap|Line Numbers
  1. If promptSave() Then
  2.     DoCmd.GoToRecord , , acNext
  3. End If
This way, the Save prompt will be displayed and the validation will be run before the record pointer even tries to move.
Dec 2 '14 #8
Ok, I'm not sure if I follow so can I spell out what I understand and then you correct me where I'm wrong?

So the user clicks a navigation button. This calls promptSave which checks the state of the form. If the form is dirty, then it opens a message box asking whether to save or not. Clicking yes will “save” the data and then navigate as intended. Clicking no removes the data and then navigates as intended.

I say “save” the data, because this should trigger the before update event of the form to check whether the data is valid. If it is valid then saving and navigation occurs as normal. If invalid, another message box triggers asking whether the user would like to navigate without saving or return to the form to 'complete' the record. Clicking yes will again remove the data then navigate. Clicking no will activate the cancel = True event of the Before Update and will return to the form.
Dec 3 '14 #9
jforbes
1,107 Expert 1GB
You've got it.
The validation is in a place that it will be called on the Record update no matter how the save is being called. Also, calling promptSave() when you can foresee that the current record may need to be saved will manage your users expectations and minimize their surprises.
Dec 3 '14 #10
So I have put my validation code in the Before Update, and updated the navigation controls to for example:

Expand|Select|Wrap|Line Numbers
  1. Private Sub Command34_Click()
  2. On Error GoTo Err_Command34_Click
  3.  
  4.     If promptSave() Then
  5.         DoCmd.GoToRecord , , acNext
  6.     End If
  7.  
  8. Exit_Command34_Click:
  9.     Exit Sub
  10.  
  11. Err_Command34_Click:
  12.     Resume Exit_Command34_Click
  13.  
  14. End Sub 
  15.  
But now on my form whenever I do anything I get the error of "The expression On Dirty you entered as the event property setting produced the following error: Procedure declaration does not match description of event or procedure having the same name"
Dec 3 '14 #11
jforbes
1,107 Expert 1GB
That error comes from having a standard method or procedure declaration with the wrong signature. For example Access expects:
Expand|Select|Wrap|Line Numbers
  1. Private Sub Form_BeforeUpdate(Cancel As Integer)
for the BeforeUpdate event, but it's easy enough when copy and pasting to remove the arguments and end up with:
Expand|Select|Wrap|Line Numbers
  1. Private Sub Form_BeforeUpdate()
The signature isn't what Access (Visual Basic) is expecting, it is expecting the Cancel argurment, so you get that error.

To find out what line is giving you trouble, go into the Visual Basic Code Editor and from the Debug Menu, select Compile. This should take you to the offending line. Once you know which procedure is giving you trouble, you can rename it and then use Access to recreate it the way you would normally create it to find out what it should look like so you can fix it.
Dec 3 '14 #12
Ah that solved it! I had put cancel instead of Cancel...

This has now solved my issues so thanks for your help jforbes!
Dec 3 '14 #13
Sorry to revive an old thread but this question is directly related to all of this stuff!

When a user opens the form, if they click on the return to main menu button before typing anything the promptSave function automatically fires even though they haven't changed anything on the form. Does this mean the form is automatically dirty upon open because I can't work out why else the function should fire!

This also only happens before the first record is added. E.g. it works fine if the user adds a record then clicks the button to return to the menu as the message box doesn't appear.
Jan 7 '15 #14
jforbes
1,107 Expert 1GB
Rereading the post, it looks like we explicitly put the PromptSave() call in the Form's Exit function, so it should be called on Exit no matter how the Form is opened. But since the function is written to only stir up trouble when the Form is Dirty, it should pass through it unless some data has changed.

But I wouldn't expect the Form to be Dirty initially on open. So you users should be able to Open your Form and then turn right around and Close it even though the SavePrompt function fires. If this can't be done, I would look in to reasons why the Form is Dirty.
Jan 7 '15 #15
This is what I thought also. The users open the form, click the return to menu button, the function fires but the message box appears. This also happens if the user were to press the previous record button but not the first, next or last record buttons.

How can the form be dirty if nothing has been changed on it? Does clicking the button make it dirty (which makes no sense as no record has been changed!)?
Jan 7 '15 #16
I've just had another look at it and my last post is wrong. When the form is opened, when a user tries to press any of the navigation buttons or the return to main menu button the prompt message box appears.

What reasons could there be for the form to be dirty?
Jan 8 '15 #17
jforbes
1,107 Expert 1GB
I wouldn't expect it to be Dirty unless a value in one of your bound controls is changed. This shouldn't happen just by navigating records natively. I remember that you have some custom navigation buttons, possibly there is something in the code there that changes a value. I would also check the OnCurrent event as this is a common place to put code.

Things you can do:
  • Put some Breakpoints through out your code and use ?Me.Dirty in the Immediate Window or add a watch to Me.Dirty to see its value.
  • You can try adding a watch for Me.Dirty with the "break when value changes" option, but it probably wont work. I don't know why, it's just not reliable.
  • If you want to post your code, we can take a look and see if we can spot it.
Jan 8 '15 #18
I'll post it here and see what you can find.

Expand|Select|Wrap|Line Numbers
  1. Option Compare Database
  2.  
  3. Private Sub AddNewRecordButton_Click()
  4.     Dim strPrompt As String
  5.     strPrompt = ""
  6.  
  7. 'Check if there is a forename
  8.     If IsNull(Forms!frmAdd!txtForename) Then
  9.         strPrompt = "- Forename"
  10.     End If
  11.  
  12. 'Check if there is a surname
  13.     If IsNull(Forms!frmAdd!txtSurname) Then
  14.         If strPrompt = "" Then
  15.             strPrompt = "- Surname"
  16.         Else
  17.             strPrompt = strPrompt & vbCrLf & "- Surname"
  18.         End If
  19.     End If
  20.  
  21. 'The record must contain at least a DoB or a NHS
  22. 'Case 1 - when there is no DoB or NHS
  23.     If IsNull(Forms!frmAdd!txtDoB) And IsNull(Forms!frmAdd!txtNHS) Then
  24.         If strPrompt = "" Then
  25.             strPrompt = "- Either Date of Birth or NHS Number"
  26.         Else
  27.             strPrompt = strPrompt & vbCrLf & _
  28.             "- Either Date of Birth or NHS Number"
  29.         End If
  30.     End If
  31.  
  32. 'Case 2 - is a NHS but no DoB
  33.     If IsNull(Forms!frmAdd!txtDoB) = True And IsNull(Forms!frmAdd!txtNHS) = False Then
  34.         If Len(Forms!frmAdd!txtNHS) <> 10 Then
  35.             If strPrompt = "" Then
  36.                 strPrompt = "- A valid NHS Number"
  37.             Else
  38.                 strPrompt = strPrompt & vbCrLf & _
  39.                 "- A valid NHS Number"
  40.             End If
  41.         End If
  42.     End If
  43.  
  44. 'Case 3 - is a DoB but no NHS
  45.     If IsNull(Forms!frmAdd!txtDoB) = False And IsNull(Forms!frmAdd!txtNHS) = True Then
  46.         If Forms!frmAdd!txtDoB >= Date Then
  47.             If strPrompt = "" Then
  48.                 strPrompt = "- A valid Date of Birth"
  49.             Else
  50.                 strPrompt = strPrompt & vbCrLf & _
  51.                 "- A valid Date of Birth"
  52.             End If
  53.         End If
  54.     End If
  55.  
  56. 'Case 4 - when there is both a DoB and a NHS - check for valid
  57.     If IsNull(Forms!frmAdd!txtDoB) = False And IsNull(Forms!frmAdd!txtNHS) = False Then
  58.         If Forms!frmAdd!txtDoB >= Date Then
  59.             If strPrompt = "" Then
  60.                 strPrompt = "- A valid Date of Birth"
  61.             Else
  62.                 strPrompt = strPrompt & vbCrLf & _
  63.                 "- A valid Date of Birth"
  64.             End If
  65.         End If
  66.  
  67.         If Len(Forms!frmAdd!txtNHS) <> 10 Then
  68.             If strPrompt = "" Then
  69.                 strPrompt = "- A valid NHS Number"
  70.             Else
  71.                 strPrompt = strPrompt & vbCrLf & _
  72.                 "- A valid NHS Number"
  73.             End If
  74.         End If
  75.     End If
  76.  
  77. 'Check if there is a KMN number
  78.     If IsNull(Forms!frmAdd!txtKMN) Then
  79.         If strPrompt = "" Then
  80.             strPrompt = "- KMN Number"
  81.         Else
  82.             strPrompt = strPrompt & vbCrLf & _
  83.             "- KMN Number"
  84.         End If
  85.     End If
  86.  
  87. 'Compare variable string and determine if record is complete
  88.     If strPrompt = "" Then
  89.         DoCmd.GoToRecord , , acNewRec
  90.     Else
  91.         MsgBox "This record is incomplete." & vbCrLf & "You have not included:" & vbCrLf & strPrompt, vbExclamation + vbOKOnly, "Adding Record: Incomplete"
  92.     End If
  93. End Sub
  94.  
  95. Private Sub cmdReturnToMainEdit_Click()
  96.     If promptSave() Then
  97.         DoCmd.OpenForm "frmSwitchboardAdmin"
  98.         DoCmd.Close acForm, "frmAdd"
  99.     End If
  100. End Sub
  101.  
  102. Private Sub Command31_Click()
  103. On Error GoTo Err_Command31_Click
  104.  
  105.     If promptSave() Then
  106.         DoCmd.GoToRecord , , acFirst
  107.     End If
  108.  
  109. Exit_Command31_Click:
  110.     Exit Sub
  111.  
  112. Err_Command31_Click:
  113.     Resume Exit_Command31_Click
  114.  
  115. End Sub
  116. Private Sub Command32_Click()
  117. On Error GoTo Err_Command32_Click
  118.  
  119.     If promptSave() Then
  120.         DoCmd.GoToRecord , , acLast
  121.     End If
  122.  
  123. Exit_Command32_Click:
  124.     Exit Sub
  125.  
  126. Err_Command32_Click:
  127.     Resume Exit_Command32_Click
  128.  
  129. End Sub
  130. Private Sub Command33_Click()
  131. On Error GoTo Err_Command33_Click
  132.  
  133.     If promptSave() Then
  134.         DoCmd.GoToRecord , , acPrevious
  135.     End If
  136.  
  137. Exit_Command33_Click:
  138.     Exit Sub
  139.  
  140. Err_Command33_Click:
  141.     Resume Exit_Command33_Click
  142.  
  143. End Sub
  144. Private Sub Command34_Click()
  145. On Error GoTo Err_Command34_Click
  146.  
  147.     If promptSave() Then
  148.         DoCmd.GoToRecord , , acNext
  149.     End If
  150.  
  151. Exit_Command34_Click:
  152.     Exit Sub
  153.  
  154. Err_Command34_Click:
  155.     Resume Exit_Command34_Click
  156.  
  157. End Sub
  158.  
  159. Private Function promptSave() As Boolean
  160. On Error Resume Next
  161.  
  162. Dim strMsgPrompt As String
  163. Dim intMsgResponse As Integer
  164.  
  165. strMsgPrompt = "You are about to navigate away from this page but the record has not been saved." & vbCrLf & "Would you like to save the record?"
  166.  
  167.     If Me.Dirty Then
  168.         intMsgResponse = MsgBox(strMsgPrompt, vbQuestion + vbYesNoCancel, "Navigation: Unsaved Record")
  169.         If intMsgResponse = vbYes Then
  170.             DoCmd.RunCommand acCmdSaveRecord
  171.         ElseIf intMsgResponse = vbNo Then
  172.             DoCmd.RunCommand acCmdUndo
  173.         ElseIf intMsgResponse = vbCancel Then
  174.             DoCmd.CancelEvent
  175.         End If
  176.     End If
  177.     promptSave = (Not Me.Dirty)
  178. End Function
  179.  
  180. Private Sub Form_BeforeUpdate(Cancel As Integer)
  181. Dim strMsg As String
  182. Dim strMsg2 As String
  183. Dim intResponse As Integer
  184. Dim intResponse2 As Integer
  185.  
  186.     If validForm = True Then
  187.         Exit Sub
  188.     ElseIf validForm = False Then
  189.         strMsg2 = "This record is incomplete." & vbCrLf & "You have not included:" & vbCrLf & strInvalid & vbCrLf & "Continue navigating without saving?"
  190.         intResponse2 = MsgBox(strMsg2, vbQuestion + vbYesNo, "Navigation: Incomplete Record")
  191.         If intResponse2 = vbYes Then
  192.             DoCmd.RunCommand acCmdUndo
  193.             Exit Sub
  194.         ElseIf intResponse2 = vbNo Then
  195.             Cancel = True
  196.         End If
  197.     End If
  198. End Sub
  199.  
  200. Private Sub Form_Current()
  201.     If Me.NewRecord Then
  202.         Me.AddNewRecordButton.Caption = "Add Record"
  203.     Else
  204.         Me.AddNewRecordButton.Caption = "Save Record"
  205.     End If
  206. End Sub
  207.  
  208. Private Sub txtForename_LostFocus()
  209.     Me.txtForename = UCase(Left(Me.txtForename, 1)) & Mid(Me.txtForename, 2)
  210. End Sub
  211.  
  212. Private Sub txtSurname_LostFocus()
  213.     Me.txtSurname = UCase(Left(Me.txtSurname, 1)) & Mid(Me.txtSurname, 2)
  214. End Sub
  215.  
Jan 8 '15 #19
jforbes
1,107 Expert 1GB
First thing I would try is to change the LostFocus Events to AfterUpdate Events, that way data isn't being changed just by the fields getting focus. I would also change them to test to see if they need to modify data. This is the long way around and it isn't such a big deal, but it is a good practice in a case like this and it might make a difference here:
Expand|Select|Wrap|Line Numbers
  1. Private Sub txtForename_AfterUpdate()
  2.     If Me.txtForename <> UCase(Left(Me.txtForename, 1)) Then Me.txtForename = UCase(Left(Me.txtForename, 1))
  3. End Sub
  4.  
  5. Private Sub txtSurname_AfterUpdate()
  6.     If Me.txtSurname <> UCase(Left(Me.txtSurname, 1)) & Mid(Me.txtSurname, 2) Then Me.txtSurname = UCase(Left(Me.txtSurname, 1)) & Mid(Me.txtSurname, 2)
  7. End Sub
  8.  
Jan 8 '15 #20
This has solved the message box problem... but the Upper case stuff didn't work XD

So instead I moved it into the validation procedure so that if the strPrompt was "", then it would update them to upper case then return the function as true and it seems to work ok! Thanks for all the help again!
Jan 9 '15 #21
Rabbit
12,516 Expert Mod 8TB
String comparisons in code are not case sensitive by default. You have to use Option Compare Binary to do that or the StrComp() function with the binary flag set.
Jan 9 '15 #22
jforbes
1,107 Expert 1GB
Nice one Rabbit! I didn't really pay attention to what was being compared. Shame on me.
Jan 9 '15 #23

Sign in to post your reply or Sign up for a free account.

Similar topics

6
by: Lauren Quantrell | last post by:
The Access form's control box has available an "X" to close and the min/max buttons. Is it possible to customize the control box to include other options and to isnert my own icons/command...
1
by: Mullin Yu | last post by:
i have created a windows application, but i didn't use any form and control indeed (like console application). by default, there's a Form1 at the project, can i remove it or hide it so that it...
0
by: Not Available | last post by:
I have windows form user control which I load into the browser via this ascx web user control and it works. The process is explained at this link:...
1
by: Richard | last post by:
Hello MyMainWebPage.aspx contains MyUserControl.ascx MyUserControl.ascx has a DataTable Property MyDataTable
0
by: Don | last post by:
I have a custom control with a custom designer. This designer allows me to open a dialog to define custom properties the way 'Property Builder' works for the datagrid. After I set the properties...
1
by: Trint Smith | last post by:
I know that this may belong in the asp group, but I want to programatically control the web form image control. For example, I want to let the program choose the image url at load time and the...
4
by: Lisa Jones | last post by:
Hi Can someone tell me How do you get selected date form MonthCalendar control Thanks so muc Lisa
1
by: Rajesh Kumar Choudhary | last post by:
Hi, I want to use the system.windows.form.datagrid control present in .net 2005 or 2003. Is it possible to use this? Please let me know if it is not supported. I have seen and used the classes...
4
by: arunbalait | last post by:
Hi all Another childhood doubt Is VB form a control? Can we use form as object? If so how form acts as object?
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
1
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
1
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.