I am very inexperienced in databases and I am currently attempting to design a database and there is one part of the schema where I am unsure how to proceed.
I need to model schools, pupils and teams. Schools have a number of pupils as do teams.
I rushed in with the following design but it just seems wrong to me. I don't know much about database design but I don't like the idea of having a kind of loop/triangle in the schema like this.
I would like to add to my VB6 app the ability to build an array of what tables are in my Access database, and the fields that are in each of those tables.
I am working with this database using ADODB, but it doesn't give properties like Tables and Fields, for example.
I am happy to open this database some other way, grab this info, close that connection, and proceed using ADODB.
Is there a way to print the schema of a table right out of Access?? Basically I just want to print out all the field names, data types and descriptions. When looking at the table in design view MS Access 2000 does not give you the option to 'Print'.
We have added new columns to a table in our developer db. Now we need to get these columns into the client's system.
Their computer is running on Access runtime, so if we change our existing Access db into a Mde would it be possible to upgrade their database with the changes without corrupting any of the client's data? We're quite happy to overwrite the forms, queries etc. but what happens to the client's data? especially when we have made some changes to the database schema e.g added new columns to the table?
I have some questions about a schema design I am working on. After much trial, it appears to me that a particular table is not and probably does not need to be related to any other table in the schema. So my questions are:
1. Is it right or quite typical for schemas to have some tables which are orphan (i.e. unattached to any other tables)?
2. If tables can exist in isolation, then what are the primary purpose they provide? I have a suspicion that if fields from an orphan table are used in query etc, then the possibility of Cartesian joins will arise. If so, how does one take care of avoiding such a problem?
I have taken over exisiting databases and the names for the tables,forms,queries,reports are not technically named correctly.. What would be the easiest way to rename everything accordingly:
tbl for table qry for query rpt for report mcr for macro bas for module frm for form.
Of Course they have names but it is hard to tell when viewing a query for instance if you are looking at a table or a query.... in the SQL View.
I have a xml schema which defines all things necessary (tables, field names, relationships, etc) to build a database in access. The question is whether Access could decode xml schema and build the database (create all tables, fields and relationships) automatically by macro or something else. I have tried to load xml schema by using external data in Access. However Access can only recognize some tables, not everything.
I have a couple of elementar level questions on Form creation process and standards invloving a schema with several M-M relationships. I have a highly normalized design (thereby producing several junction tables). I have attached a picture of my schema to give an ideal of the schema I am talking about.
1. What is typcially the process of creating Forms on such a schema for the purpose of data-entry. Meaning, should there be several Forms (on the order of # of tables) or should there be a few that enables simulataneous data entry to many tables through one Form. What is typically the practise?
2. If there are 3 tables (A, B, C) so that A and C have a M-M relationship and B is a junction table that makes A &B and A & C have a 1 - M relationship, then how does one enter data for A, B, and C so that all the three get populated?
3. Can someone provide a copy or link to a sample database that has a similar normalized schema and Forms built into it that takes care of the data entry to the various tables?
I hopeing that someone could help me with a Loop problem. I am trying to create a directory on each name change. My code works for the first name, however, when I am trying to Loop through the table, it isn't working.
Here is my code
'MkDir "H:NewPrivateFolder"
On Error GoTo Err_cmbMkDir_Click
Dim DirName As String Dim response As String Dim folder As String
If MsgBox("OK to create folder!", vbOKCancel) = vbOK Then
MkDir DirName
Else MsgBox "Create folder cancelled. Folder not created." Exit Sub End If Else MsgBox "The folder already exists..." & Chr(10) & "Please check the directories using Windows Explorer.", vbOKOnly Exit Sub End If 'response = MsgBox(DirName, vbOKOnly)
Let's say I have 10 variables (ID1, ID2, .........,ID10) In java, I can use a while loop as follows to go through each variable
For example: i=1 j=1 while (j<=10) { ID+i = 0 //this is some type of initialization of each var to 0 i = i + 1 j = J + 1 } What would be the equivalent code in VBA, especially for "ID+i" ?? I use the '&' symbol but it concatenates everything meaning in the first loop goes to ID1 (which is correct), the second loop goes to ID12 (which is NOT correct), the third loop goes to ID13 (which is NOT correct either), and so on.
I have a form that has a command button that requeries to the next days events. I want to skip days where there are no events. I created the Do Loop below but need it to stop after 10 days and return a MsgBox that says there are no further events.
I tried Do Until EOF but since the query is empty is fails. I have searched and read some other sources and did not find anything on limiting a loop the way that I need it. Or at least the way I understand it.
Any Ideas?
Forms!frmmain!txtSortdate = Forms!frmmain!txtSortdate + 1 If DCount("*", "qryflypages_old") <= 0 Then Do Forms!frmmain!txtSortdate = Forms!frmmain!txtSortdate + 1 Requery Repaint Loop Else Requery Repaint End If
I'm having a problem with my form where everytime I try importing a file into my database, I received an "overflow" message. It appears the problem is somewhere in my Do loop. The following shows what my code looks like right now:
Open txtCSVFileToUse For Input As #1 lvRandNum = Int((1000000 * Rnd) + 1) lvINTERNAL_ID = lvRandNum lpCntr = 1 Do While Not (EOF(1))
I am runnig a query via VBA where I have a variable defined for the criteria value. However I do want to run this query several times for several values for the the variable. These values are stored in a table.
Is it now possible to make sort of loop function in VBA that picks the first value in the table as criteria value, runs the query and then picks the second value in the table as criteria value, runs the query, etc, until all values have been picked?
I have created a recordset and what i want to do is check the field value "SiteRAG" to see if it matches some criteria and if so do some action where the field "SiteID" = the same as a label on a form.
Please see CAPS in middle of code:
Dim db As Object Dim rs As Object Dim intCount As Integer, intRecordCount As Integer, intID As Integer Dim strSQL As String Dim strRAG As Long Dim fldItem As Field
strSQL = "SELECT tblSite.SiteID, tblSite.SiteRAG, tblSite.Active " _ & " FROM tblSite " _ & " WHERE (((tblSite.Active)=Yes));"
Set db = CurrentDb Set rs = db.OpenRecordset(strSQL)
intRecordCount = 0 rs.MoveFirst
CHECK THE FIRST ROW FIELD SiteRAG & IF = TO CRITERIA THEN DO SOMETHING BASED ON A LABEL MATCHING THE SiteID ELSE MOVE TO NEXT ROW
I have another problem. I am waiting for a barcode scanner to give me info about a projectnummer. I do this with a do loop untill. When this loop is open and I close the form I get an error. I have to close the loop. Any one have a sugestion.
Thanks
Snakebite
Here is the code
Do DoEvents Buffer = Buffer & Me.MSComm1.Input Loop Until InStr(Buffer, Chr$(10))
I want to have a label "Flash" when a command button is clicked, but I'm confused about the loop statement that is required in the code. Here's what I have so far:
Code: Private Sub Command11_Click()Do[Label13].Visible = TrueTimerInterval = 500[Label13].Visible = FalseLoopEnd Sub
Could someone please tell me what's missing. Thanks.
In this I have come up with a loop function that should loop until there is a blank record, but it dosnt The problem im having is that the code goes in an unterminating loop on the 1st record and dosnt move on to the next one.
the fault lies in the line, it keep's saying "the field 'item stock quantity can not contain a null value as the requiered property is set to true'"
the thing is the form goes blank when the code is ran, but returns when the error is terminated
DoCmd.GoToRecord acDataForm, "purchase", acNext
here is all of the code, command 10 is a button on the main form
Private Sub Command10_Click()
Dim Counter As Integer Counter = DCount("*", "Qry check amo")
If Counter <> 0 Then If [Forms]![Purchase].[Form]![item purchase subform]![Purchase Quantity] > [Forms]![Purchase].[Form]![item purchase subform]![Stock Quantity] Or [Forms]![Purchase].[Form]![ammunition purchase subform]![Purchase Quantity] > [Forms]![Purchase].[Form]![ammunition purchase subform]![Stock Quantity] Then MsgBox "Not enough stock" Else
Below is all the code I have entered so far and for some reason the sub routine TripGT_Exit is staying in a loop until another field is selected. The problem is this is the last field in the record before a new one. Tab control involves only 3 fields: cmbICAO, TripETE, TripGT.
I comment out both fields populating TripDepartTZ and TripDepartDZ and it works fine but of course the fields aren't populated.
Code:Option Compare Database Public datArr As Date Public datDepart As Date Option ExplicitPrivate Sub cmbICAO_Click() Dim datDepartHomeTime As Date 'Variable from MSN Plan input form Dim datDepartHomeDate As Date 'Variable from MSN Plan input form Dim datFullDateTime As Date 'Sets initial date and times of the trip, used for testing only datDepartHomeTime = #10:00:00 PM# datDepartHomeDate = #1/2/2008# 'Takes the time and date and puts them together datFullDateTime = datDepartHomeTime & datDepartHomeDate datDepart = datFullDateTime If Me.cmbICAO = "ICAO" Or Me.LegNo <> 0 Then 'No new leg number needed if a leg is inserted into 'an exisiting trip Else Me.LegNo = NewControlID() 'Gets a new leg number for a new record of the trip End If If Me.LegNo = 0 Then 'For first leg of trip and assigns departure values Me.TripDepartTZ = datDepart Me.TripDepartDZ = (DatePart("d", datDepart)) End IfEnd SubPrivate Sub TripETE_Exit(Cancel As Integer)'Used for calculating arrival times Dim sinETE As Single Dim intAir As Integer If Me.LegNo <> 0 Then 'Calculates the air time after the initial leg (0) and updates "datArr" which is then 'used in calculating the ground departure time of the next leg sinETE = Me.TripETE intAir = sinETE * 60 datArr = DateAdd("n", intAir, datDepart) Me.TripArrvTZ = datArr Me.TripArrvDZ = (DatePart("d", datArr)) End IfEnd SubPrivate Sub TripGT_Exit(Cancel As Integer) 'Used for calculating departure times Dim sinGT As Single Dim intGround As Integer If Me.LegNo <> 0 Then 'Calculates the ground time after the initial leg (0) and updates "datDepart" whic is then 'used in calculting the air time of the next leg sinGT = Me.TripGT intGround = sinGT * 60 datDepart = DateAdd("n", intGround, datArr) Me.TripDepartTZ = datDepart Me.TripDepartDZ = (DatePart("d", datDepart)) End IfEnd Sub
I understand for normalization I should not be putting calculated fields into a table but use a quey instead; however, I'm not sure how to make this into a query whose calculations continue throughout as new legs added.
I am using MS Access 2010. I have a query that will return 3 values (ZZZ070113,ZZZ070213,ZZZ090713) here is the query (SELECT DISTINCT RUN_ID FROM CUSTOMER where customerID = 1567). These variables will change from time to time. Some times there will be 2 or 4 ID's returned...I want to take the results and loop through a series of commands to extract records from another table and write the results to a new table.So based on some research I have done I figure I need to use a For Each loop statement
First is how do I assign the values from the query to a variable?Then how do I pass these results into a loop so I can see the results?The code would take ZZZ070113 and query table Customer_Details to retrieve ProcessDate and ProcessCount. These value would be written to a new table called Customer Details...Then the code would take ZZZ070213 and do the same etc.
Need to loop .wav file three times. (See "Sound") (Not tagged in origional code.)
Private Sub Address_Exit(Cancel As Integer) Address.BackColor = 16777215 On Error Resume Next
'If there is no matching record in communications do nothing. If IsNull(DLookup("[address]", "communications", "[address]='" & replacequote(Me![Address]) & "'")) Then Exit Sub End If
'Make button visable and activate alert beep. Command1796.Visible = True
PlaySound "H:GeneraldmediaBEEP_FM.wav", ByVal 0&, SND_FILENAME Or SND_ASYNC
Is it possible to loop through all forms within a project and look at its controls? I was requested to change some object names to a more generic name, but I would like to find all references of the form within the Access application. Is there an easy way to do this?
I know that the MSysObjects contains the listing of all forms, but I don't know how to generically type cast a local variable to the form name listed in the table.
Does this make sense? There has to be a way to do this, but I haven't found anything in searching this forum.
Hi I am creating a stock database and I have come across this problem:
I have a stock table, and I have successfully creted a query to insert a record with values selected in a form:
EG. In the form you can input a part no, comments and the quantity you want to add. I have created the stock system so that each individual item of stock is one record in the stock table.
What I can't seem to do is use the quantity field in the form to dictate how many times the form details is entered into the stock table.??
I've got 20 checkboxes which i need to do the same thing but individually.
If IsNull(DLookup("[question 1]", "qryQuestions")) Then chkQuestion1.Visible = False Else chkQuestion1.Visible = True End If
I tried this:
Dim loopy As Integer Dim tmpquest As String
For loopy = 1 To 20 tmpquest = "question " & loopy tmpCheck = "chkQuestion" & loopy If IsNull(DLookup(tmpquest, "qryQuestions")) Then tmpCheck.Visible = False Else tmpCheck.Visible = True End If Next loopy
tmpquest works. tmpcheck doesn't.
I tried dimming tmpcheck as lots of things but no luck.