Append Query Based On Variable Data

Feb 27, 2006

I am trying to write an append query which is based on a table (PA0041)having muliple columns. The columns are DAR01, DAT01, DAR02, DAT02, etc etc.

The data for DARnn will contain values such as S1, S2, S3 etc. For each of these values, there will be a corresponding date in the corresponding field DATnn.

The table PA0041 looks something like this:

Employe Number, DAR01, DAT01, DAR02, DAT02, DAR03, DAT03 ...
1, S1, 21/02/2006, S2, 13/01/2006, S3, 10/01/2006
2, S1, 15/02/2006, S2, 09/03/2006, S3, 18/02/2006
3, S1, 06/01/2006, S2, 16/02/2006, S3, 01/03/2006
4, S2, 03/03/2006, S3, 26/01/2006

There may be up to 10 columns for each - i.e. DAR01 up to DAR10.

I can append them into 1 append table if I write 10 queries. What I would like to know whether it is possible to do this using 1 query. I need to write both the date type and the date into the table.

In addition I need to know whether any employee is missing any date types. If I have a table called tblDateTypes which holds the date types that I would expect the employee to have as a minimum, how can I check for any employees who do not have a required date type.

If the data contained in tblDateTypes is as follows:

DateType
S1
S2
S3

In the above example I would expect the end result to flag the fact that employee 4 does not have date type S1.

Let us assume in the above example that the employees all exist in the table PA0041 - even if they don't have all the required date types.

Let me know if you need more information.

Thanks,

Evan

View Replies


ADVERTISEMENT

Modules & VBA :: Append Time Value To A Date Data Type Variable

Jun 27, 2013

I have a variable (dtDueDate as Date) showing as 6/28/2013. I want to append a time value to it (dtMaxTime as Date) which is 5:00 PM so dtDueDate reads 6/28/2013 05:00:00 PM. I have been going in circles trying to figure this out. My goal is to append this date to a table field which has a datetime (General Date).

View 6 Replies View Related

Report Based On Query Variable Issue

Jan 31, 2006

I have a report that looks at a query. The base data contains a field called 'functlocation'. Now this data can vary in length and looks something like the following

12080026335PDPV5448-1
12080025507PUMP
12080004003BUILDINGS
12081925507PUMP
12081925507PUMP

Now the first 6 digits represent a particular building no. There are actually 6 buildings. When I run the report I am trying to get the report only to show all tasks against 120819 but with a wildcard at the end. I created a mini table with the 6 building numbers in, but i can't work out how to incorporate the wildcard into a parameter query.

regards

vipa:)

View 5 Replies View Related

Append Query Based On Yes/No

Oct 19, 2004

Hi, greeting, I'm new in the neighborhood...

I've been around basic Access for quite awhile (on an as needed basis), but have never developed anything significant...until now. I've looked through the forums here a little and did not readily find an answer to my question (probably because I'm not sure what I need to enter for a search). So here goes my question...

I'm creating an Access DB that can be use for tracking weekly scores in a league that I belong to. I've got the basic information layout and report generation taken care of (call it pre-beta, but it works). I'm slowly building in other functionality (I still have a ways to go and I'm sure I'll be posting more questions along the way).

As to the specifics, these are a few of the tables. The first table (tblRoster) is fairly static:
Field 1: IDNum (Primary Key)
Field 2: Name
Field 3-n: Other Stuff

Table 2 (tblScores) is added to each week:
Field 1: IDNum
Field 2: WeekNum (int reflecting which week in the league we are in: 1-n)
Field 3-n: Scores

There is a 1-many relationship keyed off of IDNum.

I have created frmScoreInput (using a query as a datasource filtered on WeekNum) that allows me to combobox pick an IDNum from tblRoster and then enter the corresponding scores on the fly (they come in in random order so there is a lot of jumping around). The problem is that I first need to pre-populate tblScores with the IDNum and WeekNum of the individuals that are competing that night. Not everyone competes in one night nor do all compete weekly (for some people are alternates), however all scores entered in the same week are evaluated together.

What I think will work best is to use our roll call procedure from a form (called frmPopScores) generated from tblRoster and if the person is present, place a check mark in a yes/no box which would then do an append query of the current IDNum & static WeekNum value to tblScores. (I was thinking that if I unselected the box, then the record would be deleted as well - but that could be a future mod).

I have run into three issues:
the yes/no box seems to need to be a part of a table which I didn't really need except to populate tblScores,when I click on the first yes/no in the input form ALL the yes/no's become clicked,and lastly, the proper syntax for the actual append placed somewhere under a Yes/No [Event Procedure].I don't have much sql background, but what I've gleened from this forum is I would do something like this:
dim valIDNum, valWeekNum
dim sqlstr
valIDNum = Me.IDNum
valWeekNum = Me.WeekNum
sqlstr = "INSERT INTO [tblScores] (ValIDNum, valWeekNum)
VALUES (valIDNum, valWeekNum)
docmd.runsql sqlstr
I also I know I have issues distinguishing between textbox values and field values as well as general non-sql knowledge, so my code may be hinky. Corrections would be appreciative.

Lastly, what would be a good intro Access book. I'm currently borrowing Access 2002 Inside Out by MS Press. It seems to be a decent reference if you know what you want. Is there a good "beginner" book for getting your hands wrapped around Access?

Thanks for any assists.

-Joat.

View 4 Replies View Related

Modules & VBA :: Export To Excel With Variable Filename Based On Query Result

Jan 30, 2015

My access is 2013.

Suppose there's a simple query which has two fields, "year" and "graduates", where "year" can be grouped by "2012", "2013", etc and "graduates" are individual names.

How can I export the list of graduates to multiple excel files, with the filename based on "year"?

I have tried to set the output file in macro as "c:desktop" & query.year & ".xls"

But it's not working and the output filename is exactly "&query.year&.xls "and the file contains all year and all names.

View 14 Replies View Related

Append Query Based On Existing Info

Oct 6, 2005

Wow, seems like this is my favorite place in the world now.

My problem is that I need to append data from one table to another, on the condition that any of the fields in the record have changed since the last time the query ran.

For example,

tblEmployee has the fields 'EmployeeID', 'Name', 'Position', and 'Office'. We are appending to tblEmployeeHistory with the same fields in addition to a field for a date. When executed, the query should append the records where something has changed and attach today's date to them. This enables us to later use another query to call up old information based on the date.

Once again, this is a hypothetical situation and not my actual database. Any solution or comments are welcome.

View 2 Replies View Related

Modules & VBA :: Append To TXT Document Using Variable File Name

Jan 19, 2014

When I execute the below function I get an error. If I use the commented out "Open" line it works fine. I get Run-time error '52'. Bad file name or number.

Private Sub GenerateSSA_Click()
Dim strRA As Variant, strFileNew As String, strFileBlank As String
Dim intFileOut As Integer
Dim rstWork As DAO.Recordset
Dim dbs As DAO.Database
Dim qdf As DAO.QueryDef

[Code] ....

View 7 Replies View Related

Modules & VBA :: Using Temp Variable To Append Specific Number Of Records To Table

May 29, 2014

I need to extract a specific number of records into a table using a MakeTable or Append command using a temp variable, e.g. TempK&SA. Previously on the forum I was shown how code could be added to the OnOpen function to use a temp variable to select a specific number of records to report. ACCESS does not have the OnOpen function in the design view of a query like in the report. It does allow a SELECT TOP but only with fixed variables or percents (e.g. 25 in the code below).

The beginning code for the make table query (where 25 is the number of records added) is:

INSERT INTO [Output] ( RndNo, PointBiserial, BloomsTax, DateRevised, Exam1, Status, Exam2, Exam3, Exam4, [NCCPAKnowledge&Skills] )
SELECT TOP 25 TestBank.RndNo, TestBank.PointBiserial, TestBank.BloomsTax, TestBank.DateRevised, TestBank.Exam1, TestBank.Status, TestBank.Exam2, TestBank.Exam3, TestBank.Exam4, TestBank.[NCCPAKnowledge&Skills], *
FROM TestBank
WHERE (((TestBank.PointBiserial) Is Null Or (TestBank.PointBiserial) Between [TempVars]![TempPointBiserialLow] And .....

how to modify the code to allow a temp variable to determine the number of records to append to another table would be gratefully received. (This process then is repeated for a total of 7 append tables with different temp variables.)

View 7 Replies View Related

Query Append Data From Another Database

Mar 15, 2012

I have a database X, I want to append data from tables in another database Y, into database X (tables in both databases have the same name: [Y].[Names] into [x].[Names]).

My question is:
How to make this happen by allowing me to search for Database Y (like if i want to save a Word file, a window will open searching for the folder i want to save the Word file in).

View 2 Replies View Related

Using Append Query To Add (overlapping Data) To Table

Sep 16, 2006

I have made several extractions from back ups from our ERP system using maketable querys. Each time when I renamed the table after running the maketable query. I now want to add them to create one big table showing the records which I extracted. I now found that each time when I extracted from my back up tapes there was a little overlap in time which gives me double entries when I use an append query to add them al together.

Is there a way to set parameters which filter our double entries and only adds the unique records to this table?

View 1 Replies View Related

Append Query Pass ID Format And Data

Jul 20, 2007

Hello,

Is it possible to pass a AutoNumber Format variable and data to a new table using an Append Query? If not does anyone know what I can try?

Thanks!

View 1 Replies View Related

Append Query To Add Data From Form To Table

Mar 24, 2008

I understand that I can use an append query to add data to a table from a form and then have it run by using a command button. I want to do this because when I link the form directly to the table I do not want the form to create a new record every time it is invoked. (it does this automatically because I have visual basic code move to acNewRec and fill in some of the fields on load and lock them off, this is neccessary) I also do not want it to create the record immediately because the user might then decide to cancel their actions and leave the form - then I have half a record's worth of data in my tables! :D

I could just use VB and recordsets to do it but SQL is more elegant. The problem is, when I use the append query it appends an extra record to the table for every single record that already exists within it. So a table with 1500 records will have 1500 new entries containing duplicate data!

This is all a mess, so what would be a better approach? The user does not need to navigate through the records on this form or make edits, it's strictly for additions. There is a subform linked to a table that is in a one-to-many relationship with the table that the parent form must update to, but I'm quite happy to leave that one linked directly.

Any suggestions appreciated ;) I've probably done something thick..

View 1 Replies View Related

Queries :: Append Multiple Data With Update Query?

Aug 6, 2013

In access Im working with two tables, this is my setup

tableA.documentnr
tableA.revison

tableB.documentnr
tableB.revision

Both tables are filled with data, Table B contains the same kind of data as table A, But tableA has documentnumbers with different revisions (for example revision a,b,c, for each revision a seperate row). Table B might have an identical document, but just one revision (like revision a).

Now I like to append the data of tableA to tableB, except if a revision is similiar to a revision in table A. (There is more metadata involved, but I will do it step by step)

Im not working with primarykey data, becayse in the end result table B will also have multiple (identical)document numbers with different revisions on different rows.

I tried to use the update query but it doenst append the documentnumbers where the revision is not present in table B I attached a image of the tables.

View 9 Replies View Related

Queries :: Append Query To Insert Data From Excel

Feb 5, 2014

I want to create a append query in access 2003 to insert data into an existing table from Excel workbook.My Table name is TokenDetail in Access 2003.

And Excel File is TokenCreation.i want to create query with msg box and requered file path for data becuase my excel files have various path and name.

View 8 Replies View Related

General :: Get Data From Query And Paste / Append Into A Table

Dec 28, 2012

I am trying to accomplish this in a macro. I know I was able to do this in older versions of access.I want to get data from a query and paste and append into a table. When I started to design the macro this is far as I got:

Qry Name: GetData
Table Name Storedata

Macro:
1st OpenQuery
Query Name: GetData
View: Datasheet

[code]...

The ? marks I cannot find any options in the macro actions catalog.

View 6 Replies View Related

Queries :: Append Query Needs To Add Data From A Field To The Table

Mar 13, 2014

I want to set a table field's default value to whatever is displayed in a certain field on a certain form at the time.In other words, say I have a database with a table called TABLE1, and two fields called NAME and SCHEDULENUMBER. I have a form called CreateSchedule with a SCHEDULE NUMBERCONTROL form and a NAME form, and I can enter names onto it, and it records to the proper SCHEDULENUMBER. So if I pull up SCHEDULENUMBER 4, and add three names, when I go back into TABLE1, I can see those three new names, and each one has the SCHEDULENUMBER set to 4.

What I'm trying to do is write an APPEND QUERY to copy a list of names from a different table, and paste them into TABLE1. The problem is that the other table doesn't have a SCHEDULENUMBER field. What I want to do is put a button on the CreateSchedule form that runs an APPEND QUERY, and sets the SCHEDULENUMBER to whatever value is displayed on CreateSchedule's SCHEDULENUMBERCONTROL field.

I tried setting a default value in TABLE1's field properties for that SCHEDULENUMBERCONTROL field, but I keep getting error messages. I just want TABLE1, whenever I add a new record (regardless of how I add the record: manually typing it or clicking the append query button) to look at the form CreateSchedule, and set it's own SCHEDULENUMBER field to whatever is displayed in CreateSchedule's SCHEDULENUMBERCONTROL form.

View 1 Replies View Related

Queries :: Extract And Replace With Additional Data Append Delete Query

Jul 1, 2015

I have a Table1 served by Form1..It is a list of: UnqID, process, quantity, totaltime(in seconds).I want to click on a record to bring up a filtered Form2 with the chosen record on it.What I want to be able to do is to now split the quantity (and the time) and put these new records back into Table1 and delete the original record

EG

ID1,10,write a report,2400

I want to delete this and replace it with two (or three/four etc) replacements, but still adding up to 10 quantity and 2400 seconds so that the new data could be:

ID2,5,write a report,1200
ID3,5,write a report,1200

My initial thoughts are to create a holding table to:Append filtered data on Form2 to a holding Table1hld (i don't know how to do this) delete data in Table1.then enter the new quantities into a holding Table2 (that I will input myself) and then append (through a series of queries back into Table1).The first problem is how to append (and subsequently delete) the filtered record from Form2 to Table1hld.

View 1 Replies View Related

Queries :: Inventory Transaction Form - Append Query Data Type Mismatch

Dec 8, 2014

I'm receiving an error indicating there is a data type mismatch when running a query named qappInventoryTakeOn.

Data is entered into the Inventory Transaction Form. If the transaction type is "Take On", when the update button is clicked the record will be saved to tblInventoryMovements and then qappInventoryTakeOn should run to update tblInventory, but I keep running into the aforementioned error.

View 2 Replies View Related

Trying To Update Rows Based On A Count Variable

Sep 1, 2006

Apologies if this is a basic question. Here's my situation:

I'm trying to update rows in a table based on a count of items in the same table. The table in question contains order line items. On each line item, I'd like to store the total number of items attached to that order (because it affects how the individual line items are processed).

I have a query that seems like it should do the trick, but Access doesn't like it:

UPDATE sales AS S1 SET S1.EXPC = (select count(*) from sales S2 where S2.order_id = S1.order_id AND S2.product_code = "EXPC");

Here's the error I get:

Operation must use an updateable query.

Thoughts?

View 5 Replies View Related

Modules & VBA :: Opening A Recordset Based Upon A Variable?

Jul 5, 2013

Simple example is I have say 3 recordsets open (they are opened once as they are refered to many times) - they are open early in the form (in this example 3 price lists that are applicable for a customer) (if the syntax of the select is slightly wrong I'm just showing to 'prove' the concept).

Dim db As Database
Dim rs1 As Recordset
Dim rs2 As Recordset
Dim rs3 As Recordset
Set db = CurrentDb()
Set rs1 = db.OpenRecordset("SELECT * FROM Prices WHERE (((Prices.ID)=1));")
Set rs2 = db.OpenRecordset("SELECT * FROM Prices WHERE (((Prices.ID)=2));")
Set rs3 = db.OpenRecordset("SELECT * FROM Prices WHERE (((Prices.ID)=3));")

What I want to do is have a central function that I can pass a list I wish to process/do something with aka. The 3 recordsets are the same except for the where criteria.

private sub GETPRICEFROMLIST(pricelist as long)

dim rs as recordset

set rs = Recordset("rs" & pricelist)
.....

I put the above to show what I'm trying to do but of course that doesn't work There won't be any updates to these recordsets only reading of data.

View 6 Replies View Related

MS Access Can't Append All The Records In The Append Query

Feb 18, 2007

hi Guys,
I have been looking at different post and checking Microsoft help files as well, but still can't seem to fix this problem.

I am having 2 tables. The first table is connected to a form for viewing and entering data, and in the second table i am just copying 3-4 fields from the first table.

I am trying to use the insert statement to insert records in the second table, and everytime i click on the "Add" button to add the records i get the following error "MS access can't append all the records in the append query ... blah blah blah"

However if i close the form and reopen it, and goto the record (as it is saved in the first database) and now click on the add button to add the fields to the second table/database, it works.

What am i doing wrong???

Any inputs will be greatly appreciated.

View 3 Replies View Related

Open Form And Go To Specific Record Based On Variable

Jun 9, 2010

I have two tables and two separate forms. [ID] is the link between them. (I cannot do a subform in this case).

Form1 displays 3 records

Have control button that goes to Form2 where [id] = NumID (NumID is "long" variable)

Have control button on Form2 to go back to Form1. It needs to go to the same record it came from. I don't want use a where clause (e.g., where [id] = [id]). This works, but the form1 is now filtered. I need all records available in Form1, but I want to go to the record it was on when the button was clicked to go to form1

Example:
Form1, record1, ID=30
Form1,record2,ID = 35
Form1,record3,ID = 40

Select record3,ID=40, then click on button to go to form2 (has where clause where ID=40).
Form2 is filtered and is correct.

Click on button to go back to form1. No Filter. It goes to 1st record (record1,ID=30). I need all records displayed, but need to be on record2,ID=35.

View 4 Replies View Related

Tables :: Limiting Table Input Based On Variable Values

Feb 7, 2014

I'm quite new to Access and am just working on a little practice database where I keep track of sales of a product.
Basically I have a table keeping track of the different types of products, a table keeping track of customers, a table for orders and one for replenishments of stock. I have a query that calculates the stock of each type of product based on replenishments and sales.

Now I want to make sure that a customer can't order any more than there is in stock. I know you can restrict what's entered into a table with a validation rule but that's only for static restrictions. After searching the internet for an answer I've pretty much learned that I can't really make this restriction directly in the table, correct? But then how can I achieve this? Do I have to restrict the amount through a form somehow?

View 3 Replies View Related

Reports :: Hiding A Field In Page Header Based On A Variable

Oct 6, 2013

I have a report where I number pages based on the Store (muliple stores in report but page numbering resets when Store changes) I do this by manipulating the page number field on the report by code in the report sections to reset it and to increment it.

Code:

Private Sub GroupHeader0_Format(Cancel As Integer, FormatCount As Integer)
Me!PageNum = 0
End Sub
Private Sub PageFooter_Format(Cancel As Integer, FormatCount As Integer)
Me!PageNum = Me!PageNum + 1
End Sub
Private Sub ReportHeader_Format(Cancel As Integer, FormatCount As Integer)
Me!PageNum = 0
End Sub

The report has a Page Header with various fields and labels and that's been fine however I've had a request to hide a field on subsequent pages (i.e. print it on the 1st page of each store then hide it).

So I added the following code to various sections, but can't get it to work correctly. The fields (label and text box) appear on Page 1 for the first store then get hidden but never return even though when I step through the code it is functioning 'correctly'. The GroupHeader code is performed but the fields don't get displayed on the report. I think is isn't re-painting that section but adding code to the Paint event does nothing, and in fact doesn't actually get run, so not sure when that event is triggered.

Code:

Private Sub GroupHeader0_Format(Cancel As Integer, FormatCount As Integer)
Me!PageNum = 0
lblMemberNo.Visible = True
MemberNo.Visible = True

[Code] ....

View 3 Replies View Related

Pre-Define Query Based On Input Data?

Apr 21, 2014

I am looking to find out if I can build a "on the fly" pass-through query based on user predefined data.

Basically I am linking to a massive database. Access link to DB2 table. In order to make the system useable for the users they need to edit the query before it's ran. If not the query over the network takes around 5 minutes every time it's accessed and options such as filters and sorting are chosen. So if a user sorts one column and filters on another the query has now ran 3 times. Once to open, once to filter, and once to sort. That just took 15 minutes.

So If there is a way to build macro or form that asks them for specific information first and then modify's the query so that it only gets ran once that would be fantastic.

Example:Table has 7 fields/columns. Usually they will do 3 things. Pull back data from either a month or quarter. Then filter a column by it's content. Then sort by date of another date/timestamp column.

View 1 Replies View Related

Using RecordSet To Insert New Data Into A Query Based On Two Forms

Feb 25, 2007

This forum has been so useful to me so far... but having searched through a load of topics for a few hours now I just cannot find a correct method of having the ability to update two tables from a form.

I firstly created a query that selected the nessary fields I wish to update from the two tables.

And its apparent that I need to use RecordSet to insert the information from the form into the query.

I have found a few different ways of doing this - none of which work for me :( HELP!

Method 1
Private Sub Save_Record_Click()
'Save all entered information to tblprocess request and tblBackupRequest

Dim db As DAO.Database
Dim rs As DAO.Recordset


messageusr = MsgBox("Save this infomation?", vbYesNo + vbExclamation, "Warning you are about to Save this information")
If messageusr = vbYes Then

Set db = CurrentDb()
Set rs = db.OpenRecordset("SELECT .Server, [Backup Request].Location, [Backup Request].BackupType, [Process General].Type, [Backup Request].[Size(GB)], [Process General].Group, [Process General].[Date required by], [Process General].[Requested by], [Process General].[Date/Time of request], [Process General].Notes FROM [Process General] INNER JOIN [Backup Request] ON [Process General].ProcessID = [Backup Request].ProcessID;")

Me.txtserver = rs!Server
Me.cmblocation = rs!Location
Me.cmbtype = rs!BackupType
Me.cmbtype = rs!Type
Me.cmbsize = rs!Size(GB)
Me.cmbassign = rs!Group
Me.txtrequiredby = rs!Date_required_by
Me.txtrequestedby = rs!Requested_by
Me.txtrequest = rs!Date_Time_Request
Me.txtnotes = rs!Notes

'Clear fields on form to indicate write has occurred
txtserver = ""
cmblocation = ""
cmbtype = ""
cmbsize = ""
cmbassign = ""
txtrequiredby = ""
txtrequestedby = ""
txtrequest = ""
txtnotes = ""

'Close recordset and database
rs.Close
db.Close
MsgBox "This information has been succesfully saved"
End 'return user back to form
End If

End Sub

[B]Method 2
Private Sub Save_Record_Click()
'Save all entered information to tblprocess request and tblBackupRequest

Dim db As DAO.Database
Dim sqlStatement As String
Dim saverecord As DAO.Recordset

messageusr = MsgBox("Save this infomation?", vbYesNo + vbExclamation, "Warning you are about to Save this information")
If messageusr = vbYes Then

sqlStatement = "SELECT .Server, [Backup Request].Location, [Backup Request].BackupType, [Process General].Type, [Backup Request].[Size(GB)], [Process General].Group, [Process General].[Date required by], [Process General].[Requested by], [Process General].[Date/Time of request], [Process General].Notes FROM [Process General] INNER JOIN [Backup Request] ON [Process General].ProcessID = [Backup Request].ProcessID;"

Set db = CurrentDb()
Set saverecord = db.OpenRecordset(sqlStatement)


saverecord.AddNew
saverecord(0) = txtserver
saverecord(1) = cmblocation
saverecord(2) = cmbtype
saverecord(3) = cmbtype
saverecord(4) = cmbsize
saverecord(5) = cmbassign
saverecord(6) = txtrequiredby
saverecord(7) = txtrequestedby
saverecord(8) = txtrequest
saverecord(9) = txtnotes
saverecord.Update 'Write new record to database

'Clear fields on form to indicate write has occurred
txtserver = ""
cmblocation = ""
cmbtype = ""
cmbsize = ""
cmbassign = ""
txtrequiredby = ""
txtrequestedby = ""
txtrequest = ""
txtnotes = ""

'Close recordset and database
saverecord.Close
db.Close
MsgBox "This information has been succesfully saved"
End 'return user back to form
End If

End Sub

and I have even looked into an insert sql statement
[B]Method 3
Dim SQL_Text As String
SQL_Text = "INSERT INTO Backup Request (Server, Location, Type , Size(GB)) VALUES ('#Backup Request.txtserver#','#Backup Request.txtserver#','#Backup Request.txtserver#','#Backup Request.txtserver#') &"
INSERT INTO Process General (Group, Date required by, Requested by, Date/Time of request, General_Type, Notes;"
Docmd.RunSQL (SQL_Text, false)

Method 1 seems to be popular but its returning the message
Run time error '3061'
Too few parameters. Expected 3.
:confused:

View 14 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved