Dynamic form with Spreadsheets and apps-script - google-apps-script

I'm trying to create a volunteer signup form for a special needs program.
Aim of this form is to take a spreadsheet with the schedule information of riders and times for a given week and update the corresponding column for [Day, Student] with volunteer name.
Fields are
Volunteer name
Day
Student
A student has maximum of one class per Day.
Based on the day you select, I would like to give a set of Students for that Day. I want to populate the Student Choices based on the Day Selected.
A lot of the volunteering folks are not very adept at using computers so this seems to be the simplest way of capturing a volunteers interest for a given [Day, Student].
ItemResponse gives me a way of accessing the response to each question, can this be done in realtime while the form is being filled s the question.
Is this possible?
I'am going to test this soon but any pointers would be appreciated. Thanks

Related

google spreadsheet Real time importrange not reliable

I have 2 google spreadsheet
a membership database // with 8 column of data for 1 record. Currently there are around 3000 record in the sheet and it is growing at a rate of around 1500 records per month. New members enter these info via a google form. And then I wrote some apps script to assign membership number to each record in numeric order e.g. KS000001--->KS000002 with onSubmit trigger.
a sales record // which import the entire membership database with function importrange and record sales.
Whenever I enter a sales record, I need to check if he is a registered member in real time and match the sales record with the respective membership number.
Sometimes the importrange just doesnt work and shows #REF
This is the function I use
=ImportRange("xxxxsheetidxxxxxx","Membership DB!A1:I5000")
Is there a more reliable way to do this? I need this in real time for today newly joined member.
The idea I have in mind is to cut the database into two parts and update it everynight.
Method:
Copy the entire membership database to the sales record at 12:00am. e.g. record (KS000001-KS003000). Use importrange to import the newly joined member during the day e.g. record (KS003001 - latest). Both array are in the same column A:I for easier look up.
Is there any better alternatives?
Thank you

Ms Access - project management with employee timesheet

I am working on a solution which will help to track how projects are performing in the sense of spent hours. I have few tables: Employees, Projects, Calendar. I need to open a form which will list all the dates for specific month from a calendar for specific employee at one view. I.e. I have combo box on the top which will search for employee and month for which I want to enter the data. Then next to each date I will be able to assign hours worked per day and assign the project. How to accomplish that? I searched how it can be done but I am stuck. I created cross join table: Calendar with Employees (who are active based on start and end date) but I do not know if this is a good approach and what I should do with this query.

How to find out the last task assigned and its time allowed using appscript & google sheets

I get data like this, wherein tasks are being assigned to employees on a daily basis mostly 2 - 3 tasks every day.
The timestamp column shows when was the last task allotted.
What I need is a summary of the following details:
How many employees were assigned the tasks and their details as in their Ids and Names?
What was the last task assigned to them based on the timestamp.
What is the time allowed as per the standards
Only current date's data should show up there.
Something like this:
Time allowed should come from the time allowed standard sheet.
Please help me in knowing how to do it with appscript...
Thanks in advance

School Detention Tracker in Google Sheets

I am trying to make a spreadsheet for the Deans at my school to track student detentions. They aren't that great with technology so I want to make it as simple for them to use as possible.
Here is a link to the current layout: https://docs.google.com/spreadsheets/d/1FIW0QAWGStgdUmYU0rWAceWI-YvjM1RIIC_KC2OeWWI/edit#gid=0
It would have a row for every student in the school and use different columns to record when students received a detention and whether or not it has been served yet. I created a formula to check how many unserved detentions each student has so that the deans can easily sort for who needs to serve detention that day.
I want some help creating two scripts:
A button that the deans can click to assign a student a detention. It would need to find the next available empty cell on that row, input the current date, then find the next available empty cell and write "Issued"
A button that the deans can click to mark that student's detentions as served. It would need to find and replace all instances of the word "Issued" on that row with "Served"
Ideal dean workflow:
Issuing a detention - Find the student on the list and click the "Issue" detention button
Running detention - Find the student on the list and click the "Served" button
Meeting with a parent/looking over records later in the year - Find student on the list and scroll horizontally to view dates of all detentions earned that year.
Potential snags:
One of our deans already sheared a spreadsheet trying to sort it. Is there a way I can reduce this risk while still giving him the ability to sort by student name and number of unserved detentions as neccesary?
Here are a few workarounds in lieu of a macro:
To input date > ctrl + semicolon, or command + semicolon on macs. This will enter the current date in the cell.
Use the =countif formula to keep an easily sortable tally on number of detentions a student has been assigned and served
An if statement can let you know that, if the total count assigned vs. total count served do not match, then a student still has a pending detention.
I also recommend keeping a "viewer" tab that your dean uses and the actual area where people are recording the data separate. That way the dean can sort and manipulate your data without actually affecting the original entries.

Access 2010 update date field based on another field

I'm relatively new to Access and VBA but I have managed to get some basic VBA tricks working in both Access and Excel. Now I've got a challenge that I can't seem to crack. I'm building a database to track maintenance of a small trucking fleet. I've got most of the tables and forms I need to do the basic tracking and management of equipment and maintenance in place.
One of the things we're tracking is called PM's which stands for preventative maintenance (lube jobs and oil changes). We do those on calendar intervals for trailers and mileage intervals for tractors. Right now, I'm trying to get the calendar tracked equipment working. I've a table called tblEquipmentMaster which is where all the specifics for each piece of equipment is kept (make, model, year, VIN, etc) and that table has a field called LastPMDate. All the maintenance records go in two other tables, tblMaintenance which records the unit number, vendor, invoice date and invoice amount and tblMaintenanceDetails which records the each line item of work that was performed on the unit (i.e. replaced water pump, replaced headlight etc).
The maintenance details table also contains a drop down list of standard maintenance codes to allow for easier searching of certain maintenance items later. One of those codes is PM. I also have several forms built to interact with these tables including a data entry form for adding new maintenance records.
What I'm trying to accomplish is to have the LastPMDate field for any unit number in tblEquipmentMaster automatically update to match the InvoiceDate field in tblMaintenance anytime an invoice is entered for that unit number which has a line item containing the code PM.
I've tried building an update query to do this but in addition to changing the LastPMDate field like I want it to, it also ends up changing the invoice dates for all previous PM invoices to the date of the last invoice which contained a PM. Not good.
So my question is, would an update query be the best way to do this or would I be better off with some sort of VBA solution? I have an add record button on my maintenance invoice data entry form which users use as a save record/clear form button when all the info for an invoice has been entered. I'm thinking some VBA code tied to the on_click of that button which would look at the invoice you just added, determine if it contains the PM maintenance code, then update LastPMDate field for that unit number with invoice date from that invoice would be a good way to do it but I honestly have no idea what functions or methods I'd need to get that to work.
Any insights or suggestions appreciated.
It's very hard to follow the flow of what you are describing, even if I have experience of PM and AM (Autonomous maintenance).
What is lacking is the relations between the three tables.
Nevertheless I prefer VBA solutions (maybe because I started programming when everything had to be written...). With VBA you can finely control your workflow.
If I understood well the 1st table is tblMaintenance in which you have the Invoice data.
Then you should have to scan the tblMaintenanceDetails to find the list of PMs and filter the tblEquipmentMaster with current PM value to update the LastPMDate with the date of the 1st table.
Did I succeed in providing you an idea to solve your problem?
Let me know.